Pull to refresh
-1
0
Send message

Руководство по работе с Redux

Reading time80 min
Views285K
Сегодня Redux — это одно из наиболее интересных явлений мира JavaScript. Он выделяется из сотни библиотек и фреймворков тем, что грамотно решает множество разных вопросов путем введения простой и предсказуемой модели состояний, уклоне на функциональное программирование и неизменяемые данные, предоставления компактного API. Что ещё нужно для счастья? Redux — библиотека очень маленькая, и выучить её API не сложно. Но у многих людей происходит своеобразный разрыв шаблона — небольшое количество компонентов и добровольные ограничения чистых функций и неизменяемых данных могут показаться неоправданным принуждением. Каким именно образом работать в таких условиях?

В этом руководстве мы рассмотрим создание с нуля full-stack приложения с использованием Redux и Immutable-js. Применив подход TDD, пройдём все этапы конструирования Node+Redux бэкенда и React+Redux фронтенда приложения. Помимо этого мы будем использовать такие инструменты, как ES6, Babel, Socket.io, Webpack и Mocha. Набор весьма любопытный, и вы мигом его освоите!
Читать дальше →
Total votes 65: ↑59 and ↓6+53
Comments51

Книга «Хороший интерфейс — невидимый интерфейс»

Reading time5 min
Views27K
Всем привет! У нас вышла новая книга неординарного человека — Голдена Кришны, в данный момент работающего в Google.

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

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

Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments11

Пишем текстовую игру на Python/Ren'Py

Reading time8 min
Views131K
Как сделать текстовую игру? Да как угодно. Как сделать кроссплатформенную текстовую игру на русском с иллюстрациями, звуком, работающими сохранениями, без проблем с кириллицей, и с каким-никаким геймплеем? Да ещё и в свободное время, не отрываясь от основной работы? Вот это уже интересней и на самом деле — довольно несложно. Заинтересовавшихся прошу под кат.

image
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments32

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

Reading time15 min
Views41K
Не так давно на одном из проектов во время инвентаризации была выявлена очень большая недостача. Как результат, одно из важнейших требований клиента по проекту было: разобраться с тем, что у него происходит в системе, и привести остатки, как он выразился, «в адекватное состояние».

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

И в первом, и во втором случае вину за возникновение проблемы представители заказчика попытались возложить на людей, которые занимались внедрением новой системы. И только после долгих и, надо признаться, довольно неприятных и очень эмоциональных разбирательств, удалось доказать клиенту, что система работает правильно, а виноваты в случившемся сотрудники компании, которые намеренно или ненамеренно создали фактическую недостачу товара и денег.
Читать дальше →
Total votes 40: ↑28 and ↓12+16
Comments46

Первые 10 минут на сервере

Reading time8 min
Views61K

Азбука безопасности Ubuntu


«Мои первые 5 минут на сервере» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше полное руководство. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.

Каждое утро я проверяю почтовые уведомления logwatch и получаю основательное удовольствие, наблюдая несколько сотен (иногда тысяч) безуспешных попыток получить доступ. (Многие довольно прозаичны — попытки авторизоваться как root с паролем 1234 снова и снова). Приведённая здесь общая методика подходит для серверов Debian/Ubuntu, которые лично мы предпочитаем всем остальным. Они обычно служат только хостами для контейнеров Docker, но принципы те же.

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

Примечание: Эта справка создана как базовая азбука. Её следует расширить и дополнить в соответствие с вашими потребностями.
Читать дальше →
Total votes 54: ↑40 and ↓14+26
Comments55

Как создавать визуально эффективные призывы к действию

Reading time4 min
Views22K


Как сделать призыв к действию деликатным, но эффективным? Это статья раскрывает несколько простых секретов. Мы постарались воспользоваться ими при создании нового дизайна для нашего сайта «Я люблю ИП». И заодно решили её перевести. Надеемся, эта статья также будет вам полезна.

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

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

Хорошая новость состоит в том, что поведение людей достаточно предсказуемо, и мы можем это использовать.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments26

Некачественный мир открытых госфинансов

Reading time6 min
Views7K
image
Источник картинки: indianexpress.com/article/business/budget/budget-2016-rs-25k-cr-falls-short-of-psu-banks-hopes

Открытые данные (как и все остальные направления) развиваются в России своеобразно: сложно понять и привыкнуть к тому, что о доходах и расходах государства узнать намного проще, чем об экологии, образовании, здравоохранении. При этом федеральные и региональные ведомства публикуют в основном реестры подведомственных учреждений, списки актуальных вакансий и адреса культурных учреждений и аптек (весьма “заезженные” массивы данных с ограниченными областями применения).
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments13

Работа с API Яндекс.Метрика на Python

Reading time2 min
Views15K
Всем любителям Python и Яндекс.Метрики доброго дня!

Некоторые знают, что с некоторых пор я заделался Web-разработчиком, впрочем это громко сказано. Мой сайт с занимательными задачками, кстати, если кому интересно, попасть туда можно вот по этой ссылке, медленно, но верно, катится в топы поисковиков, благо альтернатив не так много. О посещаемости на сайте я узнаю из отчетов уже полюбившейся мне яндекс.метрики. В принципе, там есть большинство из того, что мне нужно. Но каждый раз ходить на из сайт для того, чтобы посмотреть количество визитеров как-то не фонтан. И вот тут я снова, как нельзя кстати, вспомнил, что в общем-то я программист и учу питон. «Ладно», — подумал я — «заодно и в работе с сетью попрактикуюсь». Сказано-сделано. Через протокол oAuth регистрируем приложение и получаем для него отладочный токен (живет он бессрочно и каждый раз запрашивать его не надо. Так что под наши нужды — самое то!). Для всех интересующихся, под катом привожу код библиотеки, которую можно привязать к любому GUI — интерфейсу:
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments7

Создание арканоида на чистом JavaScript с нуля. CANVAS

Reading time1 min
Views21K
Началось все с небольших уроков на тему того, как сделать игровой цикл, как организовать отрисовку, как заставить работать клавиатуру и т.д. И на фоне этих небольших уроков пришла мысль сделать полноценную (почти) игру, так же, с нуля.
Желание воплотилось в виде 7 уроков, которые я бы и хотел представить ниже.
Читать дальше →
Total votes 29: ↑20 and ↓9+11
Comments14

Front-end шаблонизатор

Reading time18 min
Views40K
Прошлую свою статью я посветил описанию «велосипеда» (загрузчика и шаблонизатора в рамках «легкого» framework’а). Волею судеб, для пары проектов я был вынужден выделить шаблонизатор и сделать его standalone версию, обогатив при этом рядом новых возможностей. Именно об front-end шаблонизаторе и пойдет речь.

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

  • Вы front-end разработчик, и вам интересно использование шаблонов.
  • Вы back-end разработчик, и вам интересно использование шаблонов на front-end’е.
  • Вы давно ищете какой-нибудь инструмент для систематизации своей коллекции UI-control'ов, накопившуюся за несколько лет.
  • Вы интересуетесь разработкой web-компонентов.
  • Вам хочется высказать критические замечания и порекомендовать angularJS.
  • У вас есть свободное время и вам интересно почитать об очередном велосипеде.
  • У вас нет свободного времени, но вам интересно.
  • Вы хороший и любознательный человек.

Читать дальше →
Total votes 25: ↑15 and ↓10+5
Comments44

Наивный Байесовский классификатор в 25 строк кода

Reading time3 min
Views89K
Наивный Байесовский классификатор один из самых простых из алгоритмов классификации. Тем не менее, очень часто он работает не хуже, а то и лучше более сложных алгоритмов. Здесь я хочу поделиться кодом и описанием того, как это все работает.

И так, для примера возьму задачу определения пола по имени. Конечно, чтобы определить пол можно создать большой список имен с метками пола. Но этот список в любом случае будет неполон. Для того чтобы решить эту проблему, можно «натренировать» модель по маркированным именам.
Если интересует, прошу
под кат
Total votes 37: ↑37 and ↓0+37
Comments24

Учимся писать многопоточные и многопроцессные приложения на Python

Reading time6 min
Views416K
Эта статья не для матёрых укротителей Python’а, для которых распутать этот клубок змей — детская забава, а скорее поверхностный обзор многопоточных возможностей для недавно подсевших на питон.

К сожалению по теме многопоточности в Python не так уж много материала на русском языке, а питонеры, которые ничего не слышали, например, про GIL, мне стали попадаться с завидной регулярностью. В этой статье я постараюсь описать самые основные возможности многопоточного питона, расскажу что же такое GIL и как с ним (или без него) жить и многое другое.
Читать дальше →
Total votes 94: ↑88 and ↓6+82
Comments93

Генетическое программирование («Yet Another Велосипед» Edition)

Reading time16 min
Views31K

Давайте на время отвлечемся от очередного "языка-убийцы C++", ошеломляющих синтетических тестов производительности какой-нибудь NoSQL-ой СУБД, хайпа вокруг нового JS-фреймворка, и окунемся в мир "программирования ради программирования".

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments42

Пример создания простой 2D игры для Android с использованием игрового движка Unity

Reading time6 min
Views163K

Введение




Прежде всего, хочу сразу отметить, что я не являюсь профессиональным разработчиком. В этой статье я постараюсь изложить свой опыт создания игры «Feel Speed Racing». Данный материал, скорее всего не будет интересен тем, кто уже имеет большой опыт в разработке игр, но начинающим разработчикам, которые хоть немного работали с Unity думаю, будет интересно.
Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments15

ИТ в современном архитектурном и интерьерном освещении: разные инженерные плюшки

Reading time5 min
Views17K


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

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

Суть в том, что если заложить параметры помещения в расчёты, а потом метко применить высшую математику и пачку линз, то можно получить источники света, которых вообще не видно. Обычные потолочные плитки (штук 10–15 на потолке среди обычных), но дающие равномерный свет.

За два дня до сдачи владелец отеля зашёл в почти готовый конференц-зал, огляделся и побагровел:
— Какого чёрта ещё нет освещения? Послезавтра открываться! Гости приедут…
Монтажники молча слушали и прятали улыбку в рукавах. Администратор распинался, начал кричать, побагровел ещё сильнее… и тут его кое-кто ласково приобнял за плечо и спросил:
— А вы не замечаете, что окна закрыты, а зал освещён?
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments13

Hub 2.0: связующее звено для командных продуктов JetBrains

Reading time5 min
Views9.3K
Привет, Хабр!

Недавно мы выпустили вторую версию серверного продукта Hub. Hub — это система управления пользовательскими аккаунтами, группами и правами доступа, а также лицензиями для командных инструментов JetBrains: YouTrack, Upsource и TeamCity. Hub также является единой точкой входа (single sign-on) во все наши командные инструменты. Hub абсолютно бесплатен для неограниченного количества пользователей.



Если вы уже используете YouTrack 6.0+ или Upsource, вы заочно знакомы с Hub, так как он встроен в оба этих продукта. Для TeamCity мы недавно выпустили Hub-плагин, позволяющий авторизовывать и синхронизировать пользователей в Hub и TeamCity, а также добавлять виджеты из TeamCity на единую панель управления (Dashboard) в Hub. Управление правами доступа и лицензиями пока остается на стороне TeamCity.

Подробнее о Hub можно почитать здесь.

Кому пригодится Hub 2.0?


  1. Всем, кто использует несколько командных продуктов JetBrains. Например, YouTrack и Upsource, YouTrack и TeamCity, или все три инструмента одновременно.
  2. Всем, кто использует хотя бы один из командных продуктов и хочет использовать Hub для аутентификации во все приложения, которые поддерживают SAML 2.0.


В чем преимущества Hub?


  1. Технология единого входа в YouTrack, TeamCity и Upsource.
  2. Поддержка SAML, что позволяет использовать Hub для входа во внешние сервисы, например Zendesk, Google Apps for Work или Artifactory.
  3. Общее управление пользователями во всех командных продуктах.
  4. Единое администрирование прав доступа в YouTrack и Upsource, а также управление лицензиями для этих продуктов на уровне отдельных пользователей.
  5. Общая панель управления с виджетами из YouTrack (отчеты, списки задач), Upsource (коммиты, код ревью) и TeamCity (статус проекта, билд артефакты, исследования (investigations)).
  6. Возможность подключить несколько серверов YouTrack и Upsource к одному Hub.


А теперь расскажем подробнее о том, что добавлено в новой версии Hub 2.0.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments13

Как вы можете использовать отзывчивые веб-компоненты сегодня

Reading time7 min
Views20K

Пару лет назад я впервые услышал про веб-компоненты (Web Components). Сперва меня это действительно заинтересовало, но как только шумиха вокруг них приутихла, они тут же вылетели у меня из головы. Но, как оказалось, в последнее время прошло интересное движение и поддержка этой технологии значительно выросла. Отзывчивые веб-компоненты, в частности, призваны упростить наш подход к адаптивному дизайну. Как многообещающе звучит!
Вот четыре пункта, с которыми стоит ознакомиться любому разработчику перед началом использования данной технологии:
  • Поддержка технологии;
  • Кроссбраузерная работа;
  • Возможность адаптации в среде удельного проекта;
  • Модульный подход.

В этой статье мы рассмотрим каждый из этих пунктов в отдельности…
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments57

Почему в MIT больше не изучают SICP

Reading time3 min
Views93K
На днях широкое внимание привлекло состоявшееся в начале года на митапе NYC Lisp выступление Джеральда Джей Сассмана, — одного из авторов великого и могучего SICP, а также крестного отца Scheme. Всему виной — ответ на вопрос, почему в MIT прекратили преподавать ставший легендарным курс 6.001, построенный на основе книги Сассмана и Абельсона «Структура и интерпретация компьютерных программ» (вопрос задан на 59 минуте).



Сассман назвал две причины; впрочем, сразу замечу, что в первой из них нет ничего особенного. К 1997 году Абельсон и Сассман уже устали рассказывать практически одно и то же с 80-ых, поэтому решили оставить преподавание и предложили главе кафедры самостоятельно решить, как поступить с самим курсом. Здесь удивляться действительно нечему — что угодно может осточертерть, если заниматься им достаточно долго.

Впрочем, вторая причина гораздо серьезнее. По мнению Сассмана, они с Абельсоном осознали, что учебный план SICP больше не в силах подготовить инженеров к тому, что представляет собой «инжиниринг» сегодня. В 80-ых и 90-ых инженеры строили сложные системы, комбинируя простые и хорошо изученные «части». Целью SICP было предоставить язык абстракций для рассуждений о таких системах.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments37

Список книг по наступательной информационной безопасности

Reading time14 min
Views173K

Grimoire ensorcele by naiiade

Любую достаточно развитую технологию можно сравнить с оружием: когда у врага есть ружье, а у тебя нет, поневоле хочется изменить баланс сил в свою пользу. В области IT-безопасности знания, передаваемые различными способами, и есть то самое оружие, использование которого ограничивается не столько нормами УК, сколько этическим выбором.

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

Хинты планера в PostgreSQL

Reading time8 min
Views54K
Известно, что SQL — декларативный язык, который указывает, «что» мы хотим выбрать из базы, а «как» это сделать — СУБД решает сама. Задачу выбора для SQL-запроса конкретного способа его выполнения(плана) решает планировщик запросов, который есть практически в любой СУБД. Но иногда он выбирает не самый лучший план. Многие коммерческие СУБД предоставляют на этот случай «хинты», которые позволяют в ручном режиме подсказывать базе, как лучше выполнить запрос. В Open Source СУБД PostgreSQL такого механизма не было.

И вот, наконец, случилось то, о чем многие мечтали и чего уже устали ждать, а другие боялись. Японские разработчики из NTT реализовали хинты планера PostgreSQL. Причем, им удалось это сделать, не меняя ядро, в виде отдельного модуля pg_hint_plan, поддерживающего версии PostgreSQL 9.1 и 9.2. Модуль реализует хинты, позволяющие устанавливать методы сканирования и соединения таблиц, установку значений GUC. За деталями установки и использования добро пожаловать под кат.

Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments28

Information

Rating
Does not participate
Date of birth
Registered
Activity