Одна из главных проблем в разработке программного обеспечения – борьба с возрастающей сложностью системы. Решением этой проблемы занимаются с времен появления первых программ. Результатами являются языки, всё более упрощающие взаимодействие с машиной, парадигмы программирования вроде ООП, паттерны. В этой статье будут рассмотрены принципы программирования, позволяющие уменьшить сложность и облегчить сопровождение системы.
Смирнов Сергей @smirnov_sergey
разработчик
Коллекция паттернов и антипаттернов JavaScript
1 мин
5.5KТуториал
Несколько месяцев назад на Гитхабе появилась очень неплохая коллекция паттернов и антипаттернов JavaScript и jQuery на все случаи жизни. Автор проекта Shi Chuan проделал отличную работу, собрав десятки примеров кода из книг и других источников. Репозиторий уже набрал почти полторы тысячи подписчиков и активно пополняется. Всё очень удобно разложено по категориям и откомментировано. Наслаждайтесь!
+40
Sync vs Async на примере Firebird
8 мин
7.1KВ этой публикации я поставил перед собой несколько целей:
- Сравнить разные стили программирования работы с БД Firebird в NodeJS;
- Найти наиболее производительный вариант;
- Получить в результате руководство к действию тем, кто начинает использовать Firebird в NodeJS.
Дальше много кода…
+3
Честная генерация DOCX на PHP. Часть 1
4 мин
71K Здравствуйте, уважаемое хабрасообщество! Как-то раз был на хабре интересный материал про генерацию doc-файлов средствами PHP. К сожалению, больше на хабре ничего на эту тему я не нашел. На тот момент я разработал собственное решение.
Оно состояло в том, чтобы генерировать .docx файлы. Аргументы были следующие:
Подробности под катом.
Оно состояло в том, чтобы генерировать .docx файлы. Аргументы были следующие:
- На дворе 2012 год, а этот формат появился аж в 2007-м
- Генерить .docx несомненно проще, чем .doc, поскольку .docx = .zip, а .doc — бинарный файл
- Костыль с генерацией HTML и переименованием в doc не подойдет для более-менее уважающих себя проектов
- С помощью приведенного ниже метода мы с легкостью сгенерируем Excel, и вообще всё что угодно.
Подробности под катом.
+49
Создание пользовательского фильтра для списка в SharePoint 2010
6 мин
8KВ данной статье будут последовательно описаны все шаги, необходимые для написания универсального фильтра, позволяющего производить отбор из стандартных списков SharePoint (наследников от XsltListWebPart или ListWebPart).
Разработка велась на VisualStudio 2010, которая умеет работать только с SharePoint 2010, поэтому всё описанное ниже проверялось на платформе SharePoint Foundation 2010, однако, скорее всего, всё будет справедливо и для SharePoint 2007 (WSS 3.0).
Разработка велась на VisualStudio 2010, которая умеет работать только с SharePoint 2010, поэтому всё описанное ниже проверялось на платформе SharePoint Foundation 2010, однако, скорее всего, всё будет справедливо и для SharePoint 2007 (WSS 3.0).
+7
Как я делал самый популярный сайт о выборах
10 мин
15K Друзья, я хочу вам рассказать историю развития проекта president2012.ru. Сайт является лидером по тематике выборов президента России, за 3 месяца его посетило около 2 млн. человек, в пике имел до 20 тыс. посетителей онлайн и более 1 млн. хитов в сутки, задействовано было 3 сервера облака.
Интересных моментов в процессе работы над проектом набралось столько, что держать в себе эти знания я не могу, и хочу поделится с вами. Я понимаю, что многое, о чем я сейчас собираюсь рассказать, уже описано качественнее в специализированных разделах, и ничего нового я не открою. Моя задача скорее в том, чтобы через отдельные нюансы передать ту атмосферу, в которой проходила работа над проектом. А так же в миллионный раз с помощью success story показать таким же как я людям, что всё возможно и всё в их руках.
Кому это может быть интересно? Всем, кто так или иначе занимается созданием тематичных веб-сайтов и рассчитывает работать с высоконагруженными проектами.
Интересных моментов в процессе работы над проектом набралось столько, что держать в себе эти знания я не могу, и хочу поделится с вами. Я понимаю, что многое, о чем я сейчас собираюсь рассказать, уже описано качественнее в специализированных разделах, и ничего нового я не открою. Моя задача скорее в том, чтобы через отдельные нюансы передать ту атмосферу, в которой проходила работа над проектом. А так же в миллионный раз с помощью success story показать таким же как я людям, что всё возможно и всё в их руках.
Кому это может быть интересно? Всем, кто так или иначе занимается созданием тематичных веб-сайтов и рассчитывает работать с высоконагруженными проектами.
+232
Вышел SQL Server 2012 RTM
1 мин
8.1KКаким-то странным образом хабр обошла стороной новость о выходе SQL Server 2012 RTM. Также стали известны сроки выхода общедоступной версии — она выйдет 1 Апреля 2012. Скачать RTM можно, например, вот тут (там же можно найти ссылку для скачивания Feature Pack): www.microsoft.com/sqlserver/en/us/get-sql-server/try-it.aspx
Сссылка на launch event: www.sqlserverlaunch.com/ww/Home
Список нововведений достаточно обширен, но я бы хотел отметить следующие:
1) Изменения в лицензировании (отныне SQL Server будет лицензироваться в зависимости от количества процессорных ядер)
2) AlwaysOn Availability Groups (кластеризация + зеркалирование + репликация)
3) LocalDB — standalone версия SQL Server
Сссылка на launch event: www.sqlserverlaunch.com/ww/Home
Список нововведений достаточно обширен, но я бы хотел отметить следующие:
1) Изменения в лицензировании (отныне SQL Server будет лицензироваться в зависимости от количества процессорных ядер)
2) AlwaysOn Availability Groups (кластеризация + зеркалирование + репликация)
3) LocalDB — standalone версия SQL Server
+6
C# 5 — об async/await с начала
5 мин
257KВ недавно вышедшей Visual Studio 11 Beta встроена новая и главная фишка будущего C# 5 — асинхронное программирование с помощью async/await. Про нее уже написано достаточно много статей в том, числе на хабре — например, эта серия статей. Однако, я для себя так и не понял в чем суть нового синтаксиса, пока сам не попробовал его в деле. Данная статья — попытка самому структурировать и до конца разобраться с этим достаточно интересным инструментом и поделиться результатами с сообществом, рассказав про него немного иначе. Итак, поехали…
+67
Документация jQuery UI на русском
1 мин
54KВ справочнике jquery.page2page.ru появилась документация jQuery UI. Помимо подробного описания каждого плагина, она содержит статьи о фабрике виджетов, с помощью которой можно создавать собственные подобные плагины, правилах темизации (оформления) виджетов UI, собственной системе позиционирования UI, а так же о расширенных анимационных эффектах, доступных при подключении jQuery UI к сайту. Ну и конечно же есть вводная статья с которой можно начать изучение jQuery UI.
Кроме этого, обновлена карта функций, в которую были добавлены методы с двух последних обновлений jQuery, а так же все плагины jQuery UI.
Кроме этого, обновлена карта функций, в которую были добавлены методы с двух последних обновлений jQuery, а так же все плагины jQuery UI.
+46
Что нового в IIS 8?
7 мин
25KПеревод
С выходом бета-версии Windows 8, сервер Internet Information Services (IIS) 8 стал доступен для публичного тестирования и тестирования в промышленной среде. Многим системным администратором не терпится узнать, какие изменения были внесены и что нового появилось.
В этой статье приводится поверхностное описание того, что мы увидим в релизе IIS 8. Основное внимание в этой версии сервера было уделено сценариям высокомасштабируемого хостинга. Новая версия содержит значительные улучшения в производительности для того, чтобы иметь возможность (и с легкостью) обслуживать тысячи сайтов на одной единственной серверной ферме. Все о чем написано в этой статье уже сегодня может использоваться и доступно для загрузки.
Полноценное регулирование нагрузки CPU (CPU Throttling)
Предыдущие версии IIS уже содержали в себе функцию регулирования нагрузки CPU, однако они работали не так, как вам бы хотелось. Когда сайт достигает лимита использования CPU, то он выключается на определенный период времени. Такое поведение защищает другие сайты на сервере, но не является предпочтительным, так как вместо того, чтобы сайт просто замедлить он выводится из строя.
+16
Маленькие чудеса C#/.NET – структура DateTimeOffset
4 мин
39KРассмотрим некоторые части .Net Framework'a, выглядящие тривиальными, но вполне способными сделать ваш код более простым как в написании, так и в сопровождении.
Пишущие на .NET (а если вы этого не делаете, то зря читаете этот пост) наверняка время от времени используют для своих нужд структуру DateTime. Эта структура удобна для хранения дат, времени или даты/времени, относящихся к локальной временной зоне (или же к UTC).
Однако, бывают случаи, когда вам необходимо сохранить время в виде смещения, а не конвертировать его в локальное время. И вот здесь вам на помощь придёт структура, впервые появившаяся в .NET 3.5 — DateTimeOffset.
Пишущие на .NET (а если вы этого не делаете, то зря читаете этот пост) наверняка время от времени используют для своих нужд структуру DateTime. Эта структура удобна для хранения дат, времени или даты/времени, относящихся к локальной временной зоне (или же к UTC).
Однако, бывают случаи, когда вам необходимо сохранить время в виде смещения, а не конвертировать его в локальное время. И вот здесь вам на помощь придёт структура, впервые появившаяся в .NET 3.5 — DateTimeOffset.
+51
Автомобильная спутниковая сигнализация на STM32F1
33 мин
120KТеория создания самодельной автомобильной спутниковой сигнализации с web-интерфейсом и поддержкой eCall / ЭРА-ГЛОНАСС на базе микроконтроллеров STM32 как основа концепции «Умный автомобиль», и её использование в системах «Умный дом». Реализация аналога технологии Volvo On Call и автомобильной социальной сети Toyota Friends.
+103
STM32F1хх — продолжаем лечение от ардуинозависимости при помощи LCD
14 мин
126KДобрый день, уважаемые хабровчане. В своей прошлой статье я рассмотрел применение замечательных микроконтроллеров STM32F1xx на примере управления сервоприводами. В этой статье мы обратимся к более интересному вопросу – управлению цветным графическим LCD-дисплеем. Помимо стандартной работы с дисплеем я постараюсь осветить вопросы использования особенностей микроконтроллеров STM32F для эффективного решения данного вопроса. Итак, начнем.
+59
Секундомер на CSS3 без картинок, скриптов и SMS
5 мин
17KПривет, Хабраюзер!
Я даже не знаю что хуже, что код для этого секундомера занимает ~ 1100 строк, или то что он работает только в половине браузеров.
Но если же тебе интересно как это работает, прошу под кат.
+97
Реализация RGB-алгоритма изменения контраста изображения
3 мин
39KВо время работы над программой, предназначенной для обработки видео-потока, возникла необходимость реализовать алгоритм изменения контраста изображения.
Так как программа была предназначена для обработки видео, то от реализации требовалась высокая производительность, в том числе способность обрабатывать видео разрешения Full HD. Код был написан на С++ с использованием библиотеки OpenMP.
+16
Insurgent Games делает все игры бесплатными и переводит в Open Source
2 мин
3KКомпания Insurgent Games опубликовала исходный код всех игр под Android и iOS на Github, и теперь любой разработчик может использовать этот код в своих собственных проектах. Cами игры в Android Market и iOS App Store стали бесплатными.
Студия Insurgent Games основана в 2009 году двумя разработчиками из Сан-Франциско. Несколько лет они с удовольствием занимались любимым делом и создавали замечательные игры. Но за прошедшее время ребята поняли: чтобы хорошо зарабатывать на продаже мобильных приложений, нужен не только талант, но и большая удача. Им так и не удалось выйти на уровень заработка, достаточный для оплаты съёмной квартиры в Сан-Франциско.
Так что друзья решили заняться другими проектами: один пошёл на работу в EFF, а второй ушёл во фриланс как дизайнер. Чтобы окончательно порвать с прошлым, они отдают двухлетнюю работу в общественное достояние, под лицензией GNU GPL. Наверное, это решение было принято не без влияния того, который ушёл в EFF.
Студия Insurgent Games основана в 2009 году двумя разработчиками из Сан-Франциско. Несколько лет они с удовольствием занимались любимым делом и создавали замечательные игры. Но за прошедшее время ребята поняли: чтобы хорошо зарабатывать на продаже мобильных приложений, нужен не только талант, но и большая удача. Им так и не удалось выйти на уровень заработка, достаточный для оплаты съёмной квартиры в Сан-Франциско.
Так что друзья решили заняться другими проектами: один пошёл на работу в EFF, а второй ушёл во фриланс как дизайнер. Чтобы окончательно порвать с прошлым, они отдают двухлетнюю работу в общественное достояние, под лицензией GNU GPL. Наверное, это решение было принято не без влияния того, который ушёл в EFF.
+53
Cocos2D вода на основе SPH
2 мин
7.9K+10
Обзор конференции Going Native'2012
7 мин
3.6KНедавно завершилась конференция GoingNative’2012, организованная компанией Microsoft. Она проходила 2 и 3 февраля в Редмонде, и главной темой был C++11. Мне показалось, что это замечательное событие недостаточно полно освящено, и захотел исправить ситуацию.
Герб Саттер во вступительном слове посвятил конференцию Деннису Ритчи, создателю языка C, и ключевому разработчику операционной системы UNIX.
Это очень важное событие для сообщества С++, где выступали и отвечали на вопросы люди, ставшие легендами в мире C++, во многом определяющие его развитие. Доклады очень интересные, и я вынес для себя много нового. Дальше идёт обзор всех докладов и сессий вопросов и ответов.
«C++11 feels like a new language» Bjarne Stroustrup
«We’re all learning C++11» Herb Sutter
«We broke every single book on the planet, and we broke every single programmer on the planet» Herb Sutter
Герб Саттер во вступительном слове посвятил конференцию Деннису Ритчи, создателю языка C, и ключевому разработчику операционной системы UNIX.
Это очень важное событие для сообщества С++, где выступали и отвечали на вопросы люди, ставшие легендами в мире C++, во многом определяющие его развитие. Доклады очень интересные, и я вынес для себя много нового. Дальше идёт обзор всех докладов и сессий вопросов и ответов.
+66
Инструменты прототипирования и создания wireframes
2 мин
90KНавеяно долгими поисками различных систем прототипирования и желанием поделиться этим опытом. В данном посте отсутсвуют сложные системы типа iRise или IBM Rational Rose, ввиду того что они являются не столько и далеко не только системами простого прототипирования, да и стоимость этих решений подходит предприятиям немалого маштаба. Этот пост о чем-то более земном.
+39
Конфигурация приложения в Android: быстрая разработка
12 мин
13KПри разработке мобильных приложений зачастую возникает необходимость хранить настройки приложения (выбранную пользователем цветовую тему, пароль доступа к приложению, параметры синхронизации с сервером и т.д.). Поскольку такие задачи возникают довольно часто, в Google позаботились о разработчиках и создали механизм для быстрой и легкой реализации данного функционала. Этот механизм позволяет легко создавать, сохранять, отображать и производить разные манипуляции с настройками приложения. Мало того он позволяет автоматически создавать пользовательский интерфейс. При описании типа параметра настроек — автоматически генерируется часть пользовательского интерфейса в зависимости от типа параметра (boolean — чекбокс, String — поле ввода, ...) без написания кода. Звучит неплохо для быстрой разработки, не так ли?
+14
Информация
- В рейтинге
- Не участвует
- Откуда
- Кострома, Костромская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность