Search
Write a publication
Pull to refresh
-20
@apanasenkoread⁠-⁠only

Пользователь

Send message

Архитектурный дизайн мобильных приложений: часть 2

Reading time7 min
Views48K
Чтобы направить всю энергию системы в необходимом направлении, нужно эту систему ограничить правилами.


Привет, Хабр! Продолжаем серию статей об архитектурном дизайне мобильных приложений. Под катом поговорим о проектировании слоёв UI. Добро пожаловать!
Читать дальше →

Автоматическая конфигурация: практика применения CFEngine в реальном мире

Reading time10 min
Views11K

CFEngine


Продолжим начатый пользователем alex_www в двух предыдущих статьях рассказ о CFEngine. В этой речь пойдёт о практике применения CFEngine и некоторых нюансах его настройки в условиях реального мира. Для уменьшения объёма текста я предполагаю, что основными понятиями из мира CFEngine вы владеете, возможно даже пробовали его где-то использовать. В качестве букваря могу посоветовать книгу Диего Замбони (Diego Zamboni) "Learning CFEngine 3", она небольшая, очень понятная и читается на одном дыхании.
Читать дальше →

Как мы готовим React, Require и Backbone

Reading time5 min
Views35K
Как следует из официальной документации, React.js — V из MVC, и, как правило, вместе с ним применяются другие решения, в данном случае — Backbone.js и Require.js. А еще Jasmine, Karma и Grunt. Сегодня я поделюсь наброском проекта с применением этих инструментов.

Ссылка для нетерпеливых.

Хотелки


  • Прозрачная структура проекта;
  • Автоматизация всей рутинной работы;
  • Автоматизация тестирования;
  • Модульность;
  • Повторное использования кода;
  • Производительность.

Интересно что из этого получилось?

Интервальное повторение на LinguaLeo

Reading time3 min
Views42K
image

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

Хорошая новость: для того, чтобы поддерживать словарный запас уровня Upper-intermediate (4000 слов) на протяжении 73 лет, достаточно уделить повторению всего лишь 29 часов. Если разделить это время на количество дней за 73 года, то получится 3 секунды в день. Цифры могут показаться нереалистичными, но в модели интервального повторения такое возможно.

В этой статье мы расскажем:
  1. О методе интервального повторения, который позволяет помнить слова при сокращении общего количества повторений до минимума;
  2. О специальной тренировке для интервального повторения, с которой можно повторить до 100 слов за три минуты.

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

О том, как устроены открытые данные в России

Reading time9 min
Views30K
Не секрет, что в России за последние годы, с одной стороны, стало больше открытых данных, с другой — накопилось немало критики.

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

Поэтому, вместо предисловия, я представлюсь.

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

Кроме всего прочего я вхожу в Совет по открытым данным при Правительственной комиссии по координации Открытого Правительства и ряд общественных и экспертных советов при органах власти и в курсе многих успешных (и провальных) государственных инициатив в этой области.

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


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

Краткое руководство по React JS

Reading time5 min
Views412K
Статья даст вам краткий обзор того, как строятся интерфейсы с помощью React JS.
Вы можете параллельно писать код с помощью starter kit, или просто продолжать читать.
Читать дальше →

Введение в топологические пространства. Программирование конечных топологий на Java

Reading time10 min
Views33K

Введение


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

Этим объектом стали так называемые топологические пространства. Естественно, конечный объём представления объектов в памяти компьютера не позволяет с абсолютной точностью смоделировать имеющиеся в математике топологические пространства, а значит, остаётся довольствоваться конечными топологиями.

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

Но обо всём по порядку.
Читать дальше →

Подходы к контролю доступа: RBAC vs. ABAC

Reading time5 min
Views189K
В этой теме хотелось бы познакомить читателей с относительно новым подходом к контролю доступа под названием Attribute-based access control. Знакомство будет происходить на примере сравнения с популярным нынче Role-based access control.
Читать дальше →

Город из 200 человек в одном доме

Reading time1 min
Views53K

Лодки на мели и следы северного оленя перед главным входом в Begich Towers

Уиттиер, Аляска — город с населением около 200 человек, почти все из которых живут в 14-этажной бывшей армейской казарме, построенной в 1956 году. Здание под названием Begich Towers вмещает полицейский участок, медицинскую клинику, церковь и прачечную. Его коридоры напоминают школу или исправительное учреждение. Жителей часто можно увидеть снующими туда-сюда в тапках и пижамах. Единственный въезд в Уиттиер по суше проходит через четырёхкилометровый тоннель с одной полосой движения, который закрывается на ночь.
Читать дальше →

Ещё раз (надеюсь, последний) про double-checked locking

Reading time4 min
Views53K
Статей про double-checked locking на Хабре было столько, что казалось бы ещё одна — и Хабр лопнет. Вот только по Java неплохие публикации: Реализация Singleton в JAVA, Правильный Singleton в Java, А как же всё-таки работает многопоточность? Часть II: memory ordering или вот замечательный пост от TheShade (слава web-archive!). В наши дни, наверно, каждый Java-разработчик слышал, что если используешь DCL, будь добр объявить переменную volatile. Найти сегодня в коде известных опенсорсных проектов DCL без volatile довольно трудно, но оказалось, что проблемы ещё не полностью решены. Поэтому я добавлю небольшую заметку по теме с примерами из реальных проектов.

Иногда складывается ощущение, что программисты не включают мозги и не пытаются понять, как что работает, а просто следуют простым и понятным правилам вроде «объяви переменную volatile, используй DCL, и всё будет хорошо». К сожалению, такой подход в программировании не всегда работает.
Читать дальше →

Вопросы про индексы, которые вам не надо будет задавать

Reading time11 min
Views47K


После ответов на 14 вопросов об индексах, которые вы стеснялись задать, у меня возникло гораздо больше комментариев, уточнений и исправлений. Скомпилировать из всего этого статью выглядело затеей с минимумом пользы. И это заставило меня призадумался, а почему вообще мы должны «стесняться задавать» подобные вопросы? Стыдно не знать? А есть ли способ разобраться, не вгоняя себя в краску? Есть. Причем он избавит от многочисленных неточностей, которыми изобилуют многие «ответы». Вы будете чувствовать буквально каждый байт вашей базы кончиками своих пальцев.

Для этого, я предлагаю «поднять капот» у SQL Server и окунуться в сладостный мир шестнадцатеричных дампов. Может статься, что внутри все гораздо проще, чем вам казалось.
Читать дальше →

Отчёты для NORD POS. Часть 1

Reading time14 min
Views10K

Берём данные, JasperReports и заполняем шаблон в iReport





Эта статья посвящена не столько, как это сделать красиво с точки зрения дизайна, а как с помощью имеющихся средств JasperReports сделать отчёты чёткими для восприятия пользователем и удобными для дальнейшего использования интегратором. Так как JasperReports, это в первую очередь не самостоятельное приложение, а библиотека расширения для программ написанных на Java, то в качестве источника информации для построения отчётов будем использовать базу данных от NORD POS(подробнее об этом моём проекте в отдельной статье). При этом изложенный «под катом» материал, я надеюсь, будет интересен не только пользователям моей POS, но и всем тем, кто хочет больше узнать о мощном инструменте формирования отчётов для своего приложения, а на русском языке материалов посвящённых JasperReports не так и много.
Читать дальше →

Разбираемся с Flux, реактивной архитектурой от facebook

Reading time7 min
Views118K


Введение


Добро пожаловать в третью часть серии статей «Изучаем React». Сегодня мы будем изучать, как устроена архитектура Facebook Flux, и как использовать ее в своих проектах.
Ррреактивно!

Функциональное программирование в Swift. Начало

Reading time15 min
Views26K


Предисловие переводчика.


Отмечая окончание 2014 года, известная Swift группа SLUG из Сан-Франциско выбрала 5 наиболее популярных Swift видео за 2014 с организованных ею встреч. И среди них оказалось выступление Chris Eidhof «Функциональное программирование в Swift».
Сейчас Chris Eidhof — известная личность в Swift сообществе, он — автор недавно вышедшей книги «Functional programming in Swift», один из создателей журнала objc.io, организатор конференции «Functional Swift Conference», прошедшей 6-го декабря в Бруклине и будущей конференции UIKonf.
Но я открыла его, когда он, один из первых, опубликовал очень простую элегантную статью об эффективности функционального подхода в Swift к JSON парсингу.
В этой статье нет недоступных для понимания концепций, никаких мистических математических «химер» типа «Монада, Функтор, Аппликативный функтор», на которых Haskell программисты клянутся перед оставшимся миром, закатывая глаза.
Там нет и таких нововведений Swift, как дженерики (generics) и «вывод типа» (type inference).
Если вы хотите плавно «въехать» в функциональное программирование в Swift, то вы должны познакомиться с его статьей «Parsing JSON in Swift» и выступлением на SLUG «Functional Programming in Swift».
Читать дальше →

Дайджест полезных статьей для начинающих предпринимателей

Reading time2 min
Views40K


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

Обзор алгоритмов сжатия графов

Reading time7 min
Views17K
Данная работа описывает способы сжатия прежде всего социальных(графы связей между пользователями в социальных сетях) и Web-графов(графы ссылок между сайтами).

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

а) получить список ребер для определенной вершины
б) узнать соединяются ли 2 вершины.
Читать дальше →

Учебник по языку программирования D. Часть 5

Reading time9 min
Views8.9K
Пятая часть перевода D Programming Language Tutorial от Ali Çehreli. В этой части переведена глава Logical Expressions. Материал главы рассчитан на новичков.
  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4
Читать дальше →

Обработка данных NBA за 30 лет с помощью MongoDB Aggregation

Reading time7 min
Views24K
Прим. перев.: Американский писатель Майкл Льюис известен не только своими историями о трейдерах с Уолл Стрит, но и (в первую очередь) книгой Moneyball, по которой впоследствии был снят одноименный фильм («Человек, который изменил все»). Главный ее герой – Билли Бин, генеральный менеджер бейсбольной команды «Oakland Athleticks», создает конкурентоспособную команду исключительно на основе анализа статистических показателей игроков.

Памятуя об этом, мы решили опубликовать один любопытный материал о том, к каким интересным и нетривиальным выводам можно прийти, анализируя публично доступную статистику игр NBA за последние 30 лет с помощью фреймворка MongoDB Aggregation. Несмотря на то, что в данном примере автор анализирует показатели команд в целом, а не статистику по отдельным игрокам (она также находится в открытом доступе), он приходит к весьма занимательным выводам – руководствуясь его выкладками вполне реально провести самостоятельный анализ, подобно тому, как в свое время поступили герои Moneyball.


image

При поиске средства анализа массивов данных больших объемов и сложной структуры вы можете инстинктивно обратиться к Hadoop. С другой стороны, если вы храните свои данные в MongoDB, использование Hadoop Connector кажется излишним, особенно если все ваши данные помещаются на ноутбук. К счастью, встроенный фреймворк MongoDB Aggregation предлагает быстрое решение для проведения комплексной аналитики прямо с экземпляра MongoDB без установки дополнительного ПО.
Читать дальше →

Ага!-моменты: как приходит озарение

Reading time1 min
Views19K
Жизнь можно разделить на две части: до того момента, когда вы поймете свое предназначение, и после. Между ними есть лишь мгновение – момент озарения. Одна-единственная идея, благодаря которой просто человек превращается в человека с предназначением.

Мы в Alconost перевели для вас статью и инфографику об известных людях, отыскавших свое предназначение. И хотя они прошли целый путь к своему озарению, наступил день, когда они поняли: «Ага, вот оно!».


Подробнее - под катом

Пилотный выпуск видео курса «Параллельное Программирование и Оптимизация для Intel Xeon Phi копроцессоров»

Reading time3 min
Views6K
Привет, Хабр!

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

В текущем модуле на примере построения гистограммы будут показаны две оптимизационные техники для улучшения автоматической векторизации кода компилятором и приведены результаты производительности для Intel Xeon CPU и Intel Xeon Phi копроцессора.



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

Information

Rating
Does not participate
Location
Fremont, California, США
Registered
Activity