Search
Write a publication
Pull to refresh
0
0
Send message

VarDumper — новый компонент в Symfony 2.6

Reading time2 min
Views14K
Несколько дней назад состоялся релиз Symfony 2.6.0, который содержит множество интересных нововведений. Одним из наиболее важных является компонент VarDumper.

VarDumper призван заменить всем известную функцию var_dump() более современной и функциональной альтернативой — функцией dump().
Читать дальше →

Пример написания функциональных требований к Enterprise-системе

Reading time16 min
Views380K
Недавно мой друг, программист, рассказал, что он не читает требования, а вместо этого приглашает аналитика на чашку чая, они вместе садятся, и аналитик рассказывает, что должно быть реализовано. Мой друг — умный человек и хороший программист, и причина, почему он получает знания о требованиях именно так, не в том, что ему лень читать документацию, а в том, что, даже прочитав ее, он до конца не разберется, что же надо сделать. В данной статье я хочу рассказать, как можно написать требования к программному продукту так, что программисты не просто используют требования, но и участвуют в их написании; на основе собственно опыта я хочу показать, каким образом можно описать требования, чтобы эти описания были достаточными для реализации системы.

Целью нашей разработки было создание с нуля учетной системы для одной из крупных российских компаний. Система была призвана заменить текущую, написанную в конце 90-х. В результате были реализованы платформа и один из бизнес-модулей. В реализованной части было порядка 120 объектов, 180 таблиц, около 30 печатных форм.

Хочу оговориться, что подход, описанный ниже, не универсален для написания любого ПО. Он подходит для систем уровня предприятия, которые строятся на основе объектно-ориентированного подхода: учетных, CRM-, ERP-систем, систем документооборота и т.п.

Вся документация на наш программный продукт состояла из следующих разделов:
  • Общая часть
    • Список терминов и определений
    • Описание бизнес-ролей
  • Требования
    • Бизнес-требования
    • Общие сценарии
    • Сценарии использования
    • Алгоритмы и проверки
    • Системные требования
    • Нефункциональные требования
    • Требования к интеграции
    • Требования к пользовательскому интерфейсу
  • Реализация
  • Тестирование
  • Руководства
  • Управление

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

Генератор отчетов ActivityManager. Очередной велосипед, но в профиль

Reading time46 min
Views9.7K
ActivityManager — это менеджер формирования отчетов, базирующийся на замене шаблонных строк.
Основными особенностями ActivityManager являются:

  • Независимость от источника данных: поддерживаются все СУБД, для которых существуют провайдеры .Net, и не только;
  • Формирование шаблонов без использования COM: все отчеты формируются непосредственно в XML;
  • Поддержка форматов отчетов ods, odt, docx, xlsx. Независимость от наличия текстового процессора на конечном компьютере пользователя: эта особенность вытекает из предыдущей;
  • Наличие механизмов пред-обработки данных: изменение формата представления ФИО, денежных сумм, целых, вещественных чисел и дат, в том числе и возможность изменения падежа, в котором должны быть представлены конечные данные;
  • Наличие механизмов пост-форматирования данных;
  • Простота использования и расширения благодаря наличию редактора конфигурации отчетов и простой плагинной архитектуре.

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

Детекторы углов

Reading time18 min
Views114K
Мне интересна обработка изображений, в особенности работа с особыми точками. Ища информацию по детекторам углов, я не нашел достаточно большого обзора этих алгоритмов на русском языке. Поэтому я решил исправить ситуацию, написав эту статью. План статьи следующий:

  • Введение
  • Свойства особых точек
  • Детекторы углов
    • Moravec
    • Harris
    • Shi-Tomasi
    • Förstner
    • SUSAN
    • Trajkovic
    • FAST
    • CSS
    • Детектор, основанный на глобальных и локальных свойствах кривизны
    • CPDA
  • Выводы



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

Одностраничный магазин с корзиной на Phalcon + AngularJS + Zurb Foundation

Reading time7 min
Views37K

Введение


Всем привет! Завтра у меня дедлайн по проекту, который я делаю для местной Камчатской компании по доставки еды. И поэтому у меня есть две причины написать эту статью, первая — прокрастинация перед дедлайном, а вторая — я не нашёл на Хабре какого-либо обучающего мануала по написанию корзины товаров на AngularJS.

Я нашёл статью на стороннем блоге, которая частично помогла мне решить пару задач, которые стояли передо мной. Но оформление статьи оставляло желать лучшего, да и за 5 лет я уже отвык от кода в блокноте, без подсветки синтаксиса, поэтому нужно было как-то структурировать и сделать более читабельной эту полезную информацию.



Почему был выбран формат одностраничного магазина?


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

Прозрачная аутентификация в Redmine

Reading time3 min
Views25K
Сегодняшний пост будет про удобство использования Redmine в корпоративной среде, а если быть точнее, про прозрачную авторизацию пользователей Redmine в домене Microsoft Active Directory.

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



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

Перенос ОС Windows на другой компьютер средствами ОС Linux

Reading time9 min
Views51K
После прочтения статьи «Фривольное клонирование ОС MS Windows XP / Server 2003 своими руками, средствами GNU/Linux» возникло естественное желание дополнить ее в соответствии с реалиями конца 2014 года.

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

MBR, таблица разделов и сигнатура диска


Начнем с копирования данных. Какие же данные нам нужно скопировать? Для Windows XP это MBR (446 байт в начале диска, основная таблица разделов и завершающая сигнатура 55AAh), данные о расширенных разделах и собственно данные системного раздела Windows. Для Vista и Windows 7 добавляется еще и 100-мегабайтный системный раздел (GPT не рассматриваем). При этом нужно помнить, что первый раздел в Windows XP по-умолчанию начинается с сектора 63, а в Windows Vista/7 — с сектора 2048. Естественно, все операции мы будем проводить на незапущенной Windows, загрузившись с System Resque CD.
Читать дальше →

Unity3d. Уроки от Unity 3D Student (B00-B03)

Reading time5 min
Views246K
Добрый день. Предлагаю свой вариант перевода уроков по Unity3d от www.unity3dstudent.com

Введение.


Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.

PS: А хорошо это или плохо — вопрос достаточно сложный.

В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.

Перейти к урокам

Путь разработчика: истории о моих фееричных провалах, часть 2

Reading time6 min
Views35K
Всем привет, с вами снова Delfuego FM, и я наконец-таки созрел, чтобы выложить вторую часть статьи! Вследствие неоднозначной реакции на первую часть, была предпринята попытка выложить вторую на geek times, и… она успешно провалилась. Поэтому придётся совершить небольшой хабрасуицид и выложить её прямо тут! Итак, поехали!..

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

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


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

Выразительный JavaScript: HTTP

Reading time19 min
Views125K

Содержание




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

Тим Бернес-Ли, Всемирная паутина: Очень короткая личная история

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

Пересмотренное руководство по Grunt для начинающих

Reading time6 min
Views51K
Еще в марте 2013 года я написал статью руководство по Grunt для начинающих и она стала самой посещаемой статьей на моем сайте. Я написал ее в то время, когда сам только начинал своё знакомство с Grunt, и это было скорее руководство для себя, чем для кого-то ещё. Теперь, спустя 18 месяцев, я почувствовал, что пришло время пересмотреть как я использую Grunt потому что сейчас я знаю гораздо больше, чем в то время.

Если вам не терпится просто увидеть код, то весь он есть на Github.
Читать дальше →

Хакер нашел способ читать файлы на серверах Facebook

Reading time1 min
Views74K
image


Bug Bounty программы приносят плоды различным фирмам, в том числе и крупнейшим. Чаще всего, хакеры находят достаточно простые в эксплуатации уязвимости вроде XSS и CSRF, но бывают и интересные, которые встречаются достаточно редко. Одним из таковых, является недавний пример чтения файлов на серверах Facebook, найденный Йосипом Франковичем (Josip Franjković).
Читать дальше →

Проблемы даты и времени в JS

Reading time3 min
Views88K


Редкому программисту случается избежать работы с датой и временем. Вообще, дата/время — базовое понятие и в основной массе языков существуют встроенные механизмы работы с этим типом данных. Казалось бы, JS не исключение, есть встроенный тип Date, есть куча функций в прототипе, однако…
Читать дальше →

Формализм Лагранжа в задачах с сухим трением

Reading time9 min
Views21K

Введение


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



Тонкий однородный стержень массы m = 2 кг, длины AB = 2l = 1 м в точке A шарнирно прикреплен к невесомому ползуну, перемещающемуся в горизонтальных шероховатых направляющих. В начальный момент времени стержень расположен вертикально, затем его отклоняют от вертикали на ничтожно малый угол и отпускают без начальной скорости. Необходимо составить уравнения движения данной механической системы и найти закон её движения. Коэффициент трения между ползуном и направляющими равен f = 0,1.


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

Обработка и оформление отчетов в Excel на PHP

Reading time16 min
Views259K

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.


PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами. Только необходимо учитывать, что вся работа (чтение и запись) должна вестись в кодировке utf-8.

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

Несколько интересностей и полезностей для веб-разработчика #34

Reading time4 min
Views37K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Firefox для iOS


Пока это еще только наработки, но затея просто великолепная.

SVG Edit




Отличный инструмент для редактирования SVG прямо в браузере. Вообще с распространением дисплеев с высоким разрешением, сообщество веб-разработчики все чаще и чаще обсуждает всевозможные способы взаимодействия с SVG. Идея еще одного простого и открытого редактора очень даже уместна, а функционал способен удовлетворить все потребности фронтендеров. Исходники тут. Также хочу добавить, что проект не стоит на месте и постоянно развивается.
Читать дальше →

Сергей Чернышев: «С каждым годом Веб становится только медленнее»

Reading time6 min
Views13K
Представляем третий выпуск подкаста о технологиях, процессах, инфраструктуре и людях в IT-компаниях. Сегодня в гостях у “CTOcast” — Сергей Чернышев, один из лидеров Web Performance Optimization сообщества (Нью-Йорк).
Читать дальше →

Функциональное программирование на CoffeeScript с библиотекой f_context

Reading time5 min
Views4.5K
Тем, кто сталкивался с функциональными языками программирования наверняка знакома такая конструкция:
  fact(0) -> 1
  fact(N) -> N * fact(N - 1)

Это один из классических примеров ФП — вычисление факториала.
Теперь это можно делать и на CoffeeScript с библиотекой f_context, просто оборачивая код в f_context ->, например:
  f_context ->
    fact(0) -> 1
    fact(N) -> N * fact(N - 1)

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

Самые умные в мире маркетологи. Учимся у Amazon

Reading time7 min
Views48K
image

Ранее мы переводили и публиковали статью, в которой попытались раскрыть секреты успеха Dropbox. Судя по количеству просмотров, тема оказалась востребованной. Поэтому мы решили перевести еще одну статью о компании, которая для многих, и для нас в том числе, является эталоном в определенных сферах. Итак, у Amazon 237 миллионов активных клиентов. Если бы все они жили в одной стране, то она была бы четвертой в мире по населению. В США, например, Amazon владеет 30% рынка электронной коммерции, – такой рынок, даже при всем желании, не назовешь нишевым.

За счет чего данная компания стала настолько большой? Ведь у нее есть доступ ровно ко всем тем же инструментам, людям, программному обеспечению и инфраструктуре, что и у любого другого розничного торговца.Ответ на этот вопрос хоть и прост, но охватывает каждую маленькую деталь в бизнесе: Amazon зиждется на инновационной культуре. Попробуем разобраться в этом? Если вы поделитесь своими мыслями по этому поводу — будем благодарны.
Читать дальше →

Что мешает веб-студиям масштабировать бизнес, и как в этом могут помочь внутренние проекты

Reading time14 min
Views32K


Что представляет собой российский рынок веб-разработки? Большая часть самых высокооплачиваемых проектов для крупнейших компаний России в основном поделены между примерно сотней веб-студий, а среди этой сотни около 40% проектов приходится на 25 агентств. Как на этом рынке выжить молодой веб-студии? Расти веб-студиям довольно сложно, и тому есть несколько причин. В этой статье на примерах нескольких веб-студий будет рассказано о том, чем «болеют» веб-студии, а участники рынка расскажут, как им удалось победить болезнь и решить все основные проблемы.

У каждой маленькой веб-студии есть несколько условных путей развития: она может превратиться в большое интернет-агентство, может работать над уникальными проектами на заказ, может «запилить» свой продукт/веб-сервис или наладить конвейерное производство типовых продуктов. Нюанс с «рождением» своего продукта заключается в том, что внутренний стартап, как и настоящий ребенок, требует больших временных и денежных затрат. Именно этот сценарий развития студии представляет наибольший интерес для ФРИИ как венчурного фонда, потому что в этом случае веб-студия может задуматься над привлечением стороннего инвестора. У веб-студий гораздо больше шансов создать качественный продукт, чем у отдельных фрилансеров или сотрудников крупных компаний, но на практике эти проекты не всегда отвечают ожиданиям фондов. В данном материале участники рынка расскажут каждый свою историю о том, как им удалось создать отдельный продукт в рамках веб-студии, и развивать его с инвестициями или без, а последняя часть статьи поможет разобраться, на что обращает внимание инвестор при принятии решения.

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

Information

Rating
Does not participate
Date of birth
Registered
Activity