Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения

Автор: admin от 18-08-2014, 18:15, посмотрело: 566

Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения
В свете последних топиков, в том числе «Autodesk не будет продавать ПО попавшим под санкции компаниям», появляется ощущение, что маховик абсурда все сильнее раскручивается. Мы не будем осуждать в этом топике политические причины всего этого безобразия, а подумаем немного о том, что произойдет, если внезапно «выключат Google», причем неважно с какой стороны. Также предлагаю рассмотреть один из вариантов забрать себе накопленный контент, используя открытое ПО.

Для начала давайте подумаем, что является наиболее ценным для большинства пользователей сервисов Google? В первую очередь, это личный контент, который хранится в облаке, почта и другие материалы. Во вторую очередь, это сервисы, которым нужно найти замену в кратчайшие сроки. Мы не будем рассматривать нужды профессиональных разработчиков под Android и корпоративные нужды.
Создаем резервную копию

Категория: Компании » Google

 

Луковая архитектура. Часть 1

Автор: admin от 18-08-2014, 18:15, посмотрело: 731

Ранее, я несколько раз упоминал об особом типе архитектуры, которую я называю луковой (onion architecture). Эта архитектура идеально подходит для приложений с длительным жизненным циклом и сложной бизнес логикой. Я считаю, что ее использование в подобных проектах приводит к превосходным результатам, в следствии изначально заложенного в архитектуру акцента на разделение различных аспектов приложения. В луковой архитектуре уделяется особое внимание к описанию поведения системы в терминах контрактного программирования и выносу инфраструктурного кода во внешние модули. На диаграмме ниже, вы можете видеть графическое представление традиционной “многослойной” архитектуры. Это очень популярный подход, использующийся в различных вариациях во множестве виденных мной проектов.

Луковая архитектура. Часть 1

Категория: Программирование, Веб-разработка

 

Малоиспользуемые, но от этого не менее прекрасные возможности LESS

Автор: admin от 18-08-2014, 14:11, посмотрело: 558

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

Примечание: некоторые примеры «из жизни» в данной статье предоставлены для тех людей, кто по каким-то причинам (вплоть до религиозных) не использует Autoprefixer.

Примечание 2: для всего, что написано ниже используется последняя версия LESS, потому что нет вообще ни одной причины её не использовать.

Малоиспользуемые, но от этого не менее прекрасные возможности LESS

Слияния


Они же объединения, они же мерджи (Merge). Используются, если вам нужно что-нибудь присоединить через пробел или через запятую. Транзишны, трасформы, множественные бэкграунды, тени (простите за русское слово: бокс-шадоуы звучит как-то неласково) ликуют. Лучше всего за меня скажут примеры.
Смотреть примеры

Категория: Программирование » Веб-разработка

 

Memcached в PHP Kohana и его тестировние

Автор: admin от 18-08-2014, 13:25, посмотрело: 924

Уже много описано про memcache, однако я помучался прежде чем нашел оптимальный вариант для одного проекта на PHP, достаточно ресурсоемкого с большим объемом расчетов в Kohana.

Memcache пришлось отфутболить сразу же, так как когда ключей набегает пару сотен, нереально отследить, когда и какой ключ нужно убить. Смотрел в сторону MemcacheTag, где применено использование тэгов для объединения нескольких ключей, однако он оказался слишком сырым и весьма неудобным для работы. В конце концов был найден самый, на мой взгляд, оптимальный вариант работы с memcached.

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

Я же напишу как подключать и использовать в фреймворке Kohana, каким образом отследить ключи кэшей и собственно протестировать как работает кэширование в проекте.

Итак, начнем:

Категория: Программирование

 

Видео докладов с конференции CodeFest 2014

Автор: admin от 18-08-2014, 12:25, посмотрело: 527

Мы рады поделиться с вами записью наших выступлений и видео с уникальной секции по высоким нагрузкам с конференции CodeFest. Вы можете задавать ваши вопросы к докладам в комментариях и мы на них обязательно ответим.

1. «Панель: Тренды разработки в высоконагруженных интернет-проектах».
Алексей fisher Рыбак (Badoo) собрал вместе лучших экспертов из Яндекса, Mail.ru, 2ГИС и Communico и обсудил с ними современные тенденции в разработке и поддержке больших высоконагруженных проектов. Плюс эксперты рассказали об интересных решениях и поделились личным опытом.
Темы:

  • инфраструктурные проекты;

  • clouds / paas;

  • modern databases / sql;

  • real-time web (push, comet, spdy) и другие.


Категория: Программирование » Веб-разработка

 

Распродажа книг по Linux

Автор: admin от 18-08-2014, 11:20, посмотрело: 433

Распродажа книг по Linux

Издательство Питер решило освободить полки от компьютерных книг. Объединили последние актуальные книги по Linux в серию, добавили epub версии и, конечно же, специально для Хабры сделали скидку от прайсовых цен.

Категория: Программирование, Linux

 

Принципы работы одного Python-разработчика

Автор: admin от 18-08-2014, 11:20, посмотрело: 310

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

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

Принципы условно сгруппированы в три группы: принципы принятия решений; принципы, направленные на повышение качества кода; принципы, направленные на повышение производительности кода.


  • Принятие решений

    • Любое техническое решение должно быть обосновано

    • Ответственность за принятое решение всегда лежит на том или тех, кто принял данное решение

    • При принятии технических решений необходимо учитывать их действие во времени и их соответствие потребностям бизнеса

    • Одним из основных критериев при принятии технических и иных решений должна быть их наибольшая эффективность

    • Смело отступать от правил, методологий, шаблонов и прочих ограничений, если эффект от такого отступления превышает возможные потери (Special cases aren't special enough to break the rules, although practicality beats purity)

    • При необходимости сделать работающее, но, возможно, не наилучшее, решение сразу, а позднее улучшить его (Now is better than never, although never is often better than *right* now)

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

    • Гибкость технических решений крайне желательна, а универсальность не обязательна


  • Качество исходного кода

    • Качество кода следует оптимизировать на базе сформированной системы критериев, сбалансированной по отношению к затратам в краткосрочном и долгосрочном периодах

    • Писать оптимальный код сразу, если это не увеличивает его сложность и сроки разработки (Beautiful is better than ugly)

    • Самодокументируемый код имеет приоритет над хорошо прокомментированным (Beautiful is better than ugly)

    • Писать TODO и FIXME в коде

    • Давать переменным, функциям, методам, классам и другим объектам исходного кода имена точно отражающие их назначение, несмотря на увеличение длины названий (Explicit is better than implicit)

    • Меньшее число строк и объем кода предпочтительнее, при сохранении прежней читабельности кода (Simple is better than complex)

    • Применять инспекцию кода (code review) как инструмент обнаружения ошибок, выравнивания стиля разработки, знакомства с чужим кодом и обучения в команде

    • Применять повторное использование своего и чужого кода

    • Использовать специализированные библиотеки для решения конкретных задач, вместо разработки своего аналогичного кода


  • Производительность

    • Производительность разработки кода имеет приоритет над производительностью исполнения кода

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

    • Оптимизация производительности исполнения кода должна выполняться за счет устранения наиболее серьезных узких мест

    • В первую очередь должны быть использованы наиболее эффективные методы оптимизации производительности исполнения кода



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

Категория: Программирование » Веб-разработка

 

Analysis Services, Oracle и желание заказчиков

Автор: admin от 18-08-2014, 11:20, посмотрело: 472

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

Категория: Программирование, Microsoft

 

Реализация системы тегов в админке с бандлом SonataAdminBundle

Автор: admin от 18-08-2014, 10:15, посмотрело: 593

Многие пользуются бандлом SonataAdminBundle при разработке на Symfony2. Этот бандл позволяет в кратчайшие сроки создать CRUD-админку для сущностей Doctrine и Mongo. В частности, позволяет быстро и легко сделать странички для добавления сущностей, в том числе включающими связи Один-ко-Многим и Многие-ко-Многим. Вот с последним пунктом у меня и возникли проблемы. В статье я покажу решение, как можно организовать установку тегов для нескольких сущностей, задействуя всего одну промежуточную таблицу, с помощью бандла FPNTagBundle, и что пришлось сделать, чтобы этот бандл заработал в SonataAdmin. А вначале рассмотрим, как реализовать редактирование сущностей (в том числе с тегами) на простой SonataAdmin

Категория: Программирование

 

Инструмент Autodesk для отображения 3d-моделей в вебе

Автор: admin от 18-08-2014, 10:15, посмотрело: 518

В данной статье мы расскажем о том, как можно осуществить показ 3D моделей на сайте с помощью наших новых инструментов. В галерее пользовательских проектов Autodesk Fusion 360 появилось интересное нововведение – возможность просматривать 3D-модели проектов непосредственно в браузере с поддержкой WebGL (Google Chrome, Mozilla Firefox, IE11). Эта возможность стала доступной благодаря новому веб-сервису Autodesk View and Data API, который в настоящее время проходит бета-тестирование и вскоре станет доступным разработчикам прикладных программ. Разумеется, в галерее Autodesk Fusion 360 просмотр модели в 3D доступен лишь в том случае, если автор проекта загрузил в хранилище не только картинки и/или видео, но и саму 3D-модель Autodesk Fusion 360 или Autodesk Inventor. Проекты с 3D-моделями помечены характерным оранжевым маркером «3D model».

Инструмент Autodesk для отображения 3d-моделей в вебе

Категория: Программирование » Веб-разработка

 
Назад Вперед