Search
Write a publication
Pull to refresh
-16
0
Send message

Redux: попытка избавиться от потребности думать во время запросов к API, часть 2

Reading time5 min
Views9.9K

Мы хотим создать пакет, который позволит нам избавиться от постоянного создания однотипных reducer'ов и action creator'ов для каждой модели, получаемой по API.


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

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

Идиоматичный Redux: Дао Redux'а, Часть 1 — Реализация и Замысел

Reading time20 min
Views20K

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


Введение


Я потратил много времени, обсуждая онлайн паттерны использования Redux, была ли это помощь тем, кто изучает Redux в Reactiflux каналах, дискуссии о возможных изменениях в API библиотеки Redux на Github'е, или обсуждение различных аспектов Redux'а в комментариях к тредам на Reddit'е или HN (HackerNews). С течением времени, я выработал свое собственное мнение о том, что представляет собой хороший, идиоматичный Redux код, и я хотел бы поделиться некоторыми из этих мыслей. Несмотря на мой статус мейнтейнера Redux'а, это всего лишь мнения, но я предпочитаю думать, что они являются достаточно хорошими подходами.


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


Несмотря на эту простоту, или, возможно, вследствие ее, существует широкий спектр походов, мнений и взглядов о том, как использовать Redux. Многие из этих подходов широко расходятся с концепциями и примерами из документации.


В то же время, продолжаются жалобы на то, как Redux «заставляет» вас делать вещи определенными способами. Многие из этих жалоб на самом деле включают концепции связанные с тем, как Redux обычно используется, а не фактическими ограничениями наложенными самой библиотекой Redux. (Например, только в одном недавнем HN треде я видел жалобы: «слишком много шаблонного кода», «константы action'ов и action creator'ы не нужны», «я вынужден редактировать слишком много файлов чтобы добавить одну фичу», «почему я должен переключаться между файлами чтобы добраться до своей логики?», «термины и названия слишком сложны для изучения или запутанны», и слишком много других.)

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

ТОП-11 бесплатных ресурсов для изучения английской грамматики

Reading time3 min
Views330K
Мы уже говорили о том, как быстро и эффективно учить английские слова. Время узнать о подводных камнях английской грамматики. Опираясь на свой опыт, мы собрали список сайтов, на которых классно ее практиковать.

/* здесь могла быть картинка про грамматику, но мы решили не нагружать ваш браузер */
Читать дальше →

Wannacry — икс-команда, на выезд

Reading time6 min
Views34K


Мы тут немного поработали ассенизаторами.

Около 66% атак первой волны пришлось на российские сети. И здесь есть огромное заблуждение: почему-то все называют механизм поиска определённого домена killswitch'ем. Так вот, возможно, нет. В случае российских сетей госкомпаний, финансов и производств — это механика обхода песочниц. Основные песочницы на входе в защитный периметр имеют множество тестов. В частности, при запросе определённых сайтов изнутри песочницы они умеют отдавать, например, 200 ОК или 404. Если приходит подобный ответ, зловред мгновенно деактивируется — и таким образом проходит динамический анализатор кода. От статического анализа он защищён несколькими свертками сжатия-шифрования. Таким образом, это не killswitch, а одна из новых механик обхода песочниц.

Об этом я тоже расскажу, но куда интереснее другой практический вопрос: какого чёрта полегло столько машин от троянца? Точнее, почему все вовремя не запатчились или не отключили SMB 1.0? Это же просто как два байта переслать, правда же?
Читать дальше →

Ubuntu + XRDP + x11RDP терминальный сервер, с поддержкой звука, для серфинга в интернете — пошаговое руководство

Reading time10 min
Views130K
Особенно нетерпеливых отсылаю сразу в конец статьи где будет ссылка на готовый .deb-пакет для установки.

А для всех остальных…

Что это такое и для чего это нужно


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

История номер один. (основано на реальных событиях)


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

Легальный вывод средств с Upwork в РФ

Reading time8 min
Views66K
На Хабре уже написано достаточно много статьей по теме, в частности:


В ответ на повторяющиеся просьбы написать статью, в которой:

  • разбросанные по разным статьям крупицы будут собранны в единое целое
  • всевозможные противоречия будут устранены
  • все сведения будут иметь актуальный характер
  • будут учтены пожелания такие как «а можно с картинками? :)»

родилось следующее руководство.

Масштабируя TLS

Reading time17 min
Views15K


Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

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

Добавили возможность встраивать JS-скрипты в доски. Как мы делаем свою систему управления проектами

Reading time5 min
Views9.8K
Первого апреля системе YouGile исполнился год. Нешуточный срок для проекта, который начался с мысли — «А давайте на выходных сделаем себе удобную систему управления проектами». Сейчас несколько тысяч пользователей, в основном переходят с BaseCamp и Trello, все открыто для тестирований и присылания нам обратной связи.

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

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

Работает просто — по комбинации клавиш Ctrl+~ вызывается встроенный редактор JavaScript.



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

N причин, чтобы использовать Create React App

Reading time10 min
Views78K


Create React App — отличный инструмент для быстрого старта React-приложений. Вы не тратите время на настройку Webpack, Babel и других привычных инструментов. Они заранее настроены и спрятаны, так что разработчики могут сфокусироваться на коде и бизнес-логике приложения.
Читать дальше →

Windows 10 Creators Update: что нового в Bash/WSL и Windows Console

Reading time8 min
Views44K
Когда вышел Windows 10 Anniversary Update (AU), подсистема Windows Subsystem for Linux (WSL) была ещё далека от завершения и страдала от многих несовместимостей, особенно с популярными средствами разработки вроде node.js, Java и др.

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

И сообщество ответило!

Таким образом, этот новый релиз подсистемы Windows для Linux и консоли Bash создан вами и для вас!
Читать дальше →

Отслеживаем ресайзинг элемента без setTimeout и фреймов

Reading time3 min
Views18K
image
Наверно каждый WEB-разработчик когда-либо сталкивался с проблемой отслеживания события resize на странице. И если для window это сделать сможет любой новичок, то для остальных элементов эта задача принесет немало головной боли. Если вы относитесь к этой категории людей, то добро пожаловать под кат.
Читать дальше →

101 бесплатный сервис для дизайнера

Reading time10 min
Views212K
Представляем вам подборку бесплатных сервисов для дизайнера. Это первый вариант, в дальнейшем планируем расширять, добавляя новые разделы и инструменты.


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

Топ инструментов разработки для PostgreSQL

Reading time6 min
Views209K

Конференция PG Day Russia растет и масштабируется: этим летом мы готовим для вас доклады и тренинги по всем наиболее популярным базам данных, а также по администрированию и хранению данных. в рамках подготовки мы запустили корпоративный блог, где планируем делиться ценной информацией о происходящем в мире баз данных. Первый пост посвящен инструментам разработки для PostgreSQL, его автор varanio будет рад ответить на ваши вопросы и комментарии!


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


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


Если вашего инструмента нет в списке, или у вас просто есть что сказать, добро пожаловать в комментарии.


Итак, вот неформальный топ и субъективное описание.

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

GTK3-приложения в браузере с https и basic auth

Reading time3 min
Views5.2K
Тема моей сегодняшней заметки странная. Начну с предисловия. Как-то один знакомый задал в нашем небольшом телеграм-чате вопрос: «Коллеги, а вы не знаете каких-нибудь веб-терминалов? А то порой нужно зайти на свой сервер с работы, а тут все порезано по самые гланды», ну задал и задал, все сказали «Да вроде сходу ничего не знаем», но у меня, в силу специфики мышления, вопрос его в голове отложился. Однажды ночью я читал документацию по GTK3 и натолкнулся на GDK_BACKEND=broadway. Бэкэнд использующий HTML5 и websockets для отображения GTK3 приложений. Что-то щелкнуло в мозгу, но щелкнуло странно, что вроде кому-то зачем-то нужно было, на зачем не помню и кому тоже.
Читать дальше →

Docker и определение доступных ресурсов внутри контейнера

Reading time2 min
Views28K

Как объяснить контейнеру docker-а сколько у него есть ресурсов?


К написанию этой небольшой заметки меня подтолкнула статья-перевод Java и Docker: это должен знать каждый и скудный на результаты поиск информации по теме. Я давно использую LXC, который тоже ограничивает ресурсы контейнеров средствами cgroup, и там эта проблема уже решена.


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

В чем польза ZooKeeper для админов и разработчиков. Семинар в Яндексе

Reading time7 min
Views95K

Привет! Меня зовут Андрей Степачев. В конце прошлого года я выступил перед коллегами с небольшим рассказом о том, что такое ZooKeeper, и как его можно использовать. Доклад изначально был рассчитан на широкий круг аудитории и может быть полезен и разработчикам, и админам, желающим разобраться, как все это примерно работает.





Начнем, пожалуй, с истории появления ZooKeeper. Сначала, как известно, в Google написали сервис Chubby для управления своими серверами и их конфигурацией. Заодно решили задачу с распределенными блокировками. Но у Chubby была одна особенность: для захвата локов необходимо открывать объект, потом закрывать. От этого страдала производительность. В Yahoo посчитали, что им нужен инструмент, при помощи которого они могли бы строить различные системы для конфигураций своих кластеров. Именно в этом основная цель ZooKeeper — хранение и управление конфигурациями определенных систем, а локи получились как побочный продукт. В итоге вся эта система была создана для построения различных примитивных синхронизаций клиентским кодом. В самом ZooKeeper явных понятий подобных очередям нет, все это реализуется на стороне клиентских библиотек.


Стоит отметить, что протокол, используемый Zookeeper называется ZAB, ссылки на описания протокола приведены в конце статьи.



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

Отслеживание js-ошибок с помощью Метрики

Reading time3 min
Views14K

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

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

Большой обзор лучших конструкторов мобильных приложений в 2017 году

Reading time14 min
Views86K


Перед вами наша выборка лучших конструкторов приложений, с краткой информацией о том, как ее проводили. В этом обзоре только зарубежные (в основном с рынка США) решения, а для жителей России (и стран СНГ) мы предлагаем воспользоваться нашим конструктором appropio.com, который делается с учетом специфики нашего рынка. Если чуть отвлечься, то в России совсем плохо приживаются конструкторы. На нашей памяти закрылись два — myapps & getshopapp, хотя наш опыт разработки под заказ показывает — мало кто из среднего и малого бизнеса может позволить себе сделать приложение за 500 000+ рублей, держа в уме не проверенные для многих гипотезы по возврату вложенных средств (хотя мы наблюдали продажи в размере 5 000 000 р. в сутки из мобильных приложений сегмента fashion). Мы напишем отдельную статью для Хабра с попытками ответить на вопрос: почему лучшие зарубежные конструкторы так и не «взлетели» на нашем рынке позже, что мы планируем сделать для обратного :) и т.п. Кажется, что основную роль здесь играет наша ментальность…
Читать дальше →

Загрузка доверенной среды или лёгкий путь к паранойе в IT

Reading time8 min
Views13K


Несмотря на несколько академичное название, тема носит вполне себе практичный характер.
Когда мы видим заголовки новостей об очередном успешном взломе чатов Telegram или WhatsApp (ЦРУ, Иранскими спецслужбами, Zimperium – нужное подчеркнуть), людям достаточно часто приходится объяснять, что компрометация операционной системы или аккаунта пользователя не является синонимом слабости защиты самого приложения, и это не является поводом отказаться от пользования своим любимым мессенджером, т.к. на его месте может оказаться без принципиальной разницы любой другой.


А если вы, например, загрузившись с флэшки «перезабиваете» пароли администратора любой своей Windows-машины, это отнюдь не говорит о чудовищных дырах в «мастдае», а о вас – как о супер-хакере, взломавшем детище Microsoft.


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


Итак, начнём с практики, есть следующий кейс:

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

NodeJS фреймворк с синтаксисом Laravel

 (и без лапши в коде)

Reading time3 min
Views33K

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

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

Information

Rating
Does not participate
Registered
Activity