Skip to Content

Бизнес-аналитик, системный аналитик: в чем разница?

Продолжаем рассуждать на тему такой важной в IT профессии как аналитик. В нашем блоге уже есть статья «Аналитик в IT — кем быть?»; постараемся ее дополнить и осветить некоторые новые аспекты данной темы.

Итак, бизнес-аналитик и системный аналитик в IT — в чем разница между этими терминами? Это роли или должности? Может ли один человек их совмещать? В чем разница между плохим и хорошим аналитиком?

Читать далее

Логирование запросов Mondrian (в том числе в JasperServer)

Логирование запросов в Mondrian

Mondrian преобразует MDX-запросы в SQL. Если во время отладки стоит целью проверить правильно ли строится запрос, то самым быстрым решением будет включить логирование MDX- и SQL- запросов в самом mondrian.

Читать далее

Проксирование вызовов функций без побочных эффектов в JavaScript

Иногда требуется изменить поведение библиотечного объекта. К примеру, мы хотим, чтобы даты, которые мы получаем с сервера в формате ISO, выводились в интерфейсе в определенном формате. Хорошей идеей будет инкапсулировать эту логику, чтобы каждый раз не заглядывать в таблицу форматов и не писать moment().format('DD.MM.YYYY'). Во первых, тут правильно будет включить локаль moment.locale('ru') , но даже в этом случае нужно будет писать moment().format('L'). Естественно, форматов вывода в проекте будет много. Мне не нравится так называемый паттерн «хелпер», потому что он рано или поздно превратится в свалку всего и вся с кучей зависимостей. Мы сделаем обертку, но не простую, а в точности повторяющую API moment.js и добавляющую в него свои фишки. Делается это просто:  (надеюсь, вы используете underscore?)

App.moment = _.wrap(moment, function (moment) {
    var internalMoment = moment.apply(window, _.toArray(arguments).slice(1));
    internalMoment.formatLocal = _.partial(internalMoment.format, 'L');
    return internalMoment;
});

Вуаля. Теперь можно делать так:

var formatted = App.moment('2005-08-09T18:31:42').formatLocal();
console.log(formatted); // 09.08.2005

Как это работает

Сам moment является фабричным методом, который создает объект даты (но не типа Date, а собственный). Метод _.wrap создает новую функцию, в которой первым аргументом является оборачиваемая функция. Это позволяет нам писать код либо до, либо после ее собственного вызова. Таким образом сначала создается нормальный объект moment, а потом он расширяется. _.toArray(arguments).slice(1)  нужно для того, чтобы пользователь мог работать с методом, как если бы он работал с ним без обертки, мы просто выкидываем лишний аргумент, а остальные передаются моменту. Кстати, о методе _.partial. В нашем примере он создает новый метод formatLocale, замыкая в нем параметр ‘L’ и вызывая стандартный метод format. То есть, вызов App.moment().formatLocal()  эквивалентен moment().format(‘L’. Это называется частичное применение.

Генерация паролей для ASP.NET Membership

Для аутентификации пользователей и хранения пользовательских данных на проектах .NET часто используется технология ASP.NET Membership. Наконец, дошли руки до написания утилиты для хэширования паролей.

На данный момент утилита может хэшировать только по алгоритму HMAC SHA256 (этот алгоритм используется в SimpleMembershipProvider). В планах SqlMembershipProvider.

Скачать установщик можно с Sourceforge.
Репозиторий проекта на Github.

Однотипные операции с большим количеством строк в Sublime Text

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

В данных примерах мы рассмотрим многострочное выделение и выполнение однотипных операций в редакторе Sublime Text. Для выделения нескольких строк используются клавиатурные сокращения:
Windows: Ctrl+Alt+↑↓
Linux: Alt+Shift+↑↓

Пример № 1: Генерация unit-теста


Читать далее

Краткое руководство по созданию отчётов в JasperReports

JasperReports — это система построения отчётов для платформы Java от компании JasperSoft. Достоинства этой системы состоят, в частности, в возможности экспорта построенных отчётов во многие популярные форматы: HTML, PDF, RTF и др.

Эта статья является очень кратким руководством по составлению отчётов в системе JasperReports и работе с ними. Цель статьи в том, чтобы в нескольких словах дать ключ к пониманию основных возможностей системы и структуры отчётов.

Читать далее

Введение в NPM, Grunt и Bower для ASP.NET разработчиков

Visual Studio 2015 получила встроенную поддержку npm, grunt и bower, к тому же ASP.NET vNext проект использует именно эти технологии для управления зависимостями и сборкой фронтенда, что и послужило мотивацией для написания этой статьиНедостаток существующих статей на данную тематику — углубление в примеры использования Grunt и Bower и отсутствие информации по тому как это работает и почему, а главное при чем тут Node.js.

Введение

Мы рассмотрим все три новых инструмента, поддержка которых появилась в Visual Studio 2015. Если вы следите за тем что творит MS в последнее время с .NET, вы наверняка слышали об ASP.NET vNext. Новая студия хорошо с ним интегрирована и позволяет:

  •         Управлять frontend зависимостями через Bower
  •         Управлять сторонними инструментами через npm
  •         Запускать различные задачи через Grunt

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

Читать далее

Перенос истории скайпа на другой компьютер

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

Сохранение истории

  1. Нажмите сочетание клавиш win+R, в открывшемся окне введите %appdata%\Skype и нажмите Enter.
  2. Перейдите в папку с именем вашей учётной записи Skype.
  3. Найдите там файл main.db и скопируйте его на внешний носитель.

Восстановление истории

  1. Установите скайп, авторизуйтесь под вашей учётной записью и закройте его (при этом создастся папка с именем вашей учётной записи).
  2. Скопируйте сохранённый файл main.db в ту же папку, из которой он был скопирован.
  3. Запустите скайп, ваша история должна отобразится.

Взаимное влияние SCM и других средств организации разработки

Конспект моего выступления на конференции Go# Moscow 2014 (TEAM LEADERS DAY):

Читать далее

Заметки по разработке сайтов с DocPad

DocPad — это система разработки статических веб-сайтов, основанная на Node.js [1].

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

На статической основе может быть создан, например, блог. Каждый раз, когда в блог добавляется новая запись, html-страницы веб-сайта создаются заново (например, из шаблонов), и их новые версии размещаются на сервере. Пример — блог Артёма Сапегина.

Читать далее