Рубрика «разработка» - 302

image

Сделать удаленное парное программирование удобным — задача не из простых, но у Floobits все может получиться.

Floobits позволяет использовать свой любимый редактор для совместной работы над кодом в реальном времени — сейчас поддерживаются только Sublime Text, Vim и Emacs; кроме того, есть и традиционный для подобных сервисов веб-редактор кода, работающий прямо в браузере.

Поскольку обойтись только редактором было сложно, со временем выяснилось, что парная разработка — это не только распространение кода, но и «расшаривание» терминалов (для этого был разработан Flootty), а еще и реал-тайм обновление кода на тестовом сервере (для этого был разработан несложный diff-shipper). Кроме того, для голосового чата и обмена видео в веб-редактор была добавлена поддержка Google+ Hangouts
Читать полностью »

Что это действительно значит быть «младшим программистом»
Вечер пятницы, я получил имэйл от моего приятеля, который только что закончил колледж (Рочестерский Технологический Институт) и работает в весьма многообещающем стартапе, занимающемся программированием C++ систем и обучением искуственных интелектов. Ниже небольшой фрагмент его письма.

Чувак, одна вещь на работе не дает мне покоя – хотя мои коллеги по большей части приятные люди, я чувствую, как будто мою работу совершенно не ценят. Я работаю с шестью инженерами (вместе мы составляем команду из семи инженеров). Из шести, один — Platform Architect (Архитектор платформ), двое – Старших Инженеров-Прикладников, еще один – Software Architect (Программный Архитектор), остальные два отвечают за Обеспечение Качества. Если честно, и я не хочу, чтобы это прозвучало надменно, но за исключением одного Старшего Инженера-Прикладника, я понял, что знаю намного больше чем все эти «старшие» парни. Не пойми меня неправильно… они занимаются этим уже много лет, работают над важными системами и все такое, но я более образован чем они. Чаще всего, из-за того, что я Младший Системный Инженер, мои идеи просто отметаются и моя напряженная работа совершенно не ценится… откровенно говоря, это меня ужасно бесит. Иногда я подумываю о том, чтобы вернуться к фрилансу (особенно учитывая, что я уже закончил колледж).Читать полностью »

Решил внедрить АОП логирование на проект и не внедрил. Как и почему, собственно и хочу поделиться.

Я не буду описывать суть и принципы АОП, а опишу только те проблемы, с которыми я столкнулся, и решения которых заняло много времени.
У меня было в распоряжении Spring, WebLogic, google.com и проект, куда я хотел внедрить АОП логирование. Скажу сразу, до этого я никогда не работал с АОП.

Проблема № 1

Spring AOP – использует proxy-based подход.

Если у нас есть класс (СlassA) с методами (methodA, methodB), при этом methodB() вызывает methodA() и аспект (допустим after) который должен выполняться при вызове methodA():

Читать полностью »

Встречайте Intel Integrated Performance Primitives 8.0Многим разработчикам ПО хорошо известна библиотека Intel Integrated Performance Primitives (Intel IPP) — набор функций для оптимизированной обработки данных и мультимедиа. Активно используя особенности микроархитектуры процессоров, в частности, возможности векторизации, функции Intel IPP значительно увеличивают скорость работы приложения; кроме того, ускоряется и непосредственно разработка приложений, ведь под рукой у программиста есть готовые «кирпичики» и нет нужды изобретать велосипед. В Intel IPP реализованы сотни широко используемых функций для преобразований изображений, статистики, компьютерного зрения и еще десятка областей, все они оптимизированы, отлажены и не обременены роялти.
А теперь функционалость продукта еще более расширилась — вышла новая версия Intel IPP 8.0.
Читать полностью »

Тех из вас, кто занимается поддержкой 1С, ERP или сами пишут учетные системы, знают о проблеме нагрузки IT отдела. Если же вы не занимаетесь поддержкой таких систем, то просто поверьте на слово – такая проблема есть.

Постоянное желание развивать систему и изменения законодательства приводят к частым релизам и, как следствие, большому потоку задач в поддержку. Значительная часть потока – задачи по доработке (разработке) отчетов системы.

Проблема в корпоративном секторе на столько актуальна, что есть специальный термин Self-service BI, смысл которого что-то вроде «чудо-система, в которой пользователи не бегают за отчетами в ИТ».

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

Свой опыт в этом вопросе сформулировал в выступлении на XI Форуме Business Intelligence. За 10 лет разработки я сформулировал 10 правил, которые попробовал донести за 20 минут.

Читать полностью »

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

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

image

Для начала рассмотрим архитектуру сервиса в целом. В основе сервиса лежит mpfs – Магическая проксирующая файловая система. Это бэкэнд, который содержит в себе всю бизнес-логику по работе с файлами, папками, каталогами: все операции по копированию или созданию новых файлов идут через эту систему. Эта же система отвечает и за хранение метаданных.
Читать полностью »

Beacon Mountain — теперь и для MacOS X
Месяц назад мы рассказали о наборе программных средств для проектирования, разработки, отладки и оптимизации приложений под Android — Beacon Mountain. В сообщении в том числе говорилось, что готовится к выходу версия Beacon Mountain для MacOS. С чуством глубокого удовлетворения сообщаем, что данная версия официально доступна для скачивания на странице продукта.

Еще раз приглашаем всех разработчиков залезть на Маячную Гору.

Читать полностью »

Существует много модных современных концепций: Agile, Lean Startup, Customer Development, Worse is Better, TDD, SaaS. Все они хороши. Вникание, а тем более использование, сильно расширяет горизонты. Но надо понимать, что это всё довольно общие вещи. Нужно не забывать использовать голову и чётко осознавать применимость в собственном проекте.

Фанатичное следование методологии напоминает восторг от осознания какой-то возможности в языке программирования. Я сам поддавался такому не раз: «Круто, в Python есть метаклассы — срочно используем в проекте» — несмотря на то, что того же самого можно было добиться обычными атрибутами класса. «Вау, макросы Lisp — это супер, накодим их побольше» — хотя можно было обойтись функциями высшего порядка. Сначала делаешь так, а со временем свыкаешься и уже не суёшь эту мощную возможность куда попало, а используешь, только если она действительно нужна.

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

Где тот момент, когда они устаревают? Где те условия, в которых они работают, и в которых уже нет? Может быть, новый тренд уже стал устойчивым стереотипом и необходимо движение дальше? Эти вопросы нужно всегда задавать себе и пользоваться/не пользоваться концепцией не потому что она прогрессивна/устарела, а потому что она подходит/не подходит лично вам в конкретном деле.
Читать полностью »

Справочный API 2ГИС разрабатывается уже 4 года. Появилось около 40 методов, которые возвращают достаточно крупные и иерархически сложные структуры в формате JSON и XML. Совсем недавно я решил поделиться накопленным опытом и выступить на конференции DevConf.
Одна из тем доклада вызвала наибольший интерес у участников — это использование JSON-Schema при тестировании формата выдачи API. В этой статье я расскажу, какие задачи решает этот подход, какие имеет ограничения, что вы получаете из коробки, а что идёт бонусом. Поехали!

Применение JSON Schema в тестировании и документировании API
Читать полностью »

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

Предметная область

  • имеется веб-ресурс — каталог некоторых сущностей
  • сущности разделены на группы/каталоги
  • у каждый сущности могут быть фото, видео, отзывы, контактные данные
  • в разных категориях сущностей разные средние посещения и просмотры, последние обозначим "k"

Требования

Необходимо внедрить алгоритм сортировки внутри категорий сущностей, который зависит следующих переменных:

  • визиты сущности. Составной ключ: день + ip + id + дополнительное_поле:= «index»
  • визиты страницы с видео. Составной ключ: день + ip + id + дополнительное_поле:= «video»
  • визиты страницы с аудио. Составной ключ аналогично визиту для видео
  • визиты страницы с фото. Составной ключ аналогично визиту для видео
  • просмотры по аналогичным параметрам
  • "k" — среднее количество просмотр в каталоге за единицу времени

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js