Search
Write a publication
Pull to refresh
0
0
brook @brook

User

Send message

Управление рисками

Reading time4 min
Views127K
В Deadline, Том Демарко пишет о том, что для управления проектом, достаточно управлять его рисками. Действительно, всю работу ПМа можно свести к одному — борьба с рисками, которые могут помешать проекту завершиться в срок, в бюджет и с необходимым уровнем качества. Если, по какой-то причине, рисков в проекте нет, то нет и предмета работы ПМа.

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

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

Доступны материалы для обучения VS 2010 и .NET 4.0

Reading time1 min
Views973
image

Выпущен Visual Studio 2010 and .NET Framework 4 Training Kit — October Preview, который представляет собой набор обучающих материалов для закрепления знаний о новых технологиях, которые появились в .NET 4.0. В том числе материалы по следующим новым или обновленным технологиям:

* C# 4.0
* Visual Basic 10
* F#
* Parallel Extensions
* Windows Communication Foundation (WCF)
* Windows Workflow
* Windows Presentation Foundation (WPF)
* ASP.NET 4
* Windows 7
* Entity Framework
* ADO.NET Data Services
* Managed Extensibility Framework (MEF)
* Visual Studio Team System

В комплекте презентации, исходные коды, видеоматериалы и документация. Скачивать отсюда (93.3 MB).

PS: более подробное описание содержания доступно здесь (англ.)

Используем SQL Server Dynamic Management Views and Functions (DMV and DMF)

Reading time6 min
Views17K
MS SQL Dynamic Management Views and Functions (DMV and DMF)
Microsoft SQL 2005/2008 предоставляет доступ к динамическим административным представлениям и функциям (Dynamic Management Views and Functions, DMV and DMF). Эти данные мы можем использовать для диагностики проблем и оптимизации производительности баз данных.
Вот неполный перечень доступной информации:
  • Причины задержек выполнения запросов.
  • Работа с индексами (отсутствующие, неиспользуемые, требующие больше всех операций ввода/вывода, часто используемые).
  • Запросы с высокими издержками на ввод-вывод, с высоким использованием процессора.
  • Запросы, выполняющиеся чаще всего.
  • Запросы, страдающие от блокировок.
Полное описание всех функций можно найти в MSDN — Динамические административные представления и функции (Transact-SQL). Для тех, кто еще не сталкивался с запросами к DMV – рекомендую ознакомиться со статьей из журнала MSDN за январь 2008-ого года: "Открытие скрытых данных для оптимизации производительности приложений". Она довольно обширна, содержит общую информацию и большое количество готовых часто используемых запросов к DMV.
Далее, я хочу рассказать о том, как можно сохранять и анализировать данные запросов к DMV.
Читать дальше →

HTTP сервер за 15 минут

Reading time2 min
Views203K

Задача


За минимальное время написать HTTP сервер, который после запуска сможет корректно ответить браузеру и отдать простую HTML страничку (минимальное время, чтобы кода было мало, чтобы новичку вникать было проще).
У меня это заняло около 15 минут. Сервер вроде справляется с поставленной задачей.

Суть примера — показать что такое Socket, ServerSocket, InputStream, OutputStream, и Thread.

смотреть исходники

phpFastCGI: настоящий FastCGI для PHP

Reading time2 min
Views10K
— Добрый день. Вы наверняка уже наслышаны о протоколе FastCGI, он связывает Веб-сервер и сервер приложений, его реализации есть во множестве языков. Однако, в PHP реализация FastCGI до недавних пор была представлена лишь патчем PHP-FPM, который фактически не давал прироста производительности перед mod_php, поскольку он, вопреки идеологии FastCGI, перезапускает скрипт каждый раз заново. Идеология FastCGI подразумевает единовременную инициализацию приложения при запуске (подгрузку нужных классов, соединение с базой данных, и т.д.), и выполнение запросов один за другим.
phpFastCGI — правильная реализация FastCGI, которая позволяет добиться немыслимой производительности.
Разработка идёт очень активно, и новые фичи появляются очень быстро.
Страничка проекта — phpfastcgi.googlecode.com
Пример простого приложения — code.google.com/p/phpfastcgi/source/browse/trunk/example.php
В действии пример можно увидеть здесь — ya-tv.ru/phpfastcgid (может переодически лежать, это нормально, идёт тестирование). Страничка-пример легко выдерживает 5,000 запросов в секунду всего на 20-ти воркерах.
Проект пока в стадии тестирования и живёт только в SVN.
Приглашаю всех заинтересовавшихся принять в нем посильное участие!
$ svn checkout phpfastcgi.googlecode.com/svn/trunk phpfastcgi

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

Домашний Linux-кластер из 20-ти серверов, всего за 1000$

Reading time2 min
Views15K
Недавно появился миниатюрный Linux-сервер — «Linux сервер в виде блока питания», изготовленный на system-on-chip (SoC) Marvell Sheeva CPU 1.2GHz с ARM-архитектурой.
Этот сервер вроде бы предназначен не для конечных (домашних) пользователей, и тогда возникает вопрос: зачем было этот сервер делать в виде блока питания под обычную домашнюю розетку?
Неужто нельзя было бы сделать его в виде маленького «Лезвия» — «Blade-сервера» для серверной стойки!
Вы только представьте как вы у своего хостера, разместите в стойку маленький Marvell`овский сервер, стоимостью всего 50$. Или же сам Хостер предложит вам новый сервис — размещения вашего сайта на таком маленьком и дешевеньком, но полноценном и независимым от всех соседей, сервере!
Для не очень больших сайтов (наверно до 10 — 20 одновременных сессий, а это ~ до 10 тысяч посетителей в день) его мощности должно вполне хватать (ну может только Flash-диск хотелось бы расширить, хотя бы до 2 — 4 Gb).
А для больших сайтов, надо объединять 100-ни и 1000-чи такие маленьких Blade`ов в единый кластер (чем например Google, обычно у себя занимается).
И каждый ваш сайт тогда от ныне будет иметь «не виртуальный», а свой полноценный — сервер!!!
Читать дальше →

Создание демон-процесса на Java

Reading time6 min
Views36K
Доброго всем времени суток.

Недавно, по долгу службы, появилась необходимость написать background process для IBM AIX 5.2 на Java с контролирующим shell скриптом.

Раз работа проделана, документация поднята, код написан, почему бы не поделиться с общественностью? По сему, переходим к делу.

читать дальше ...

Python 3. Соображения.

Reading time1 min
Views3K
Вот пайтон и становится нормальным зрелым языком.
  • избавились от большинства мусора в стандартной библиотеке
  • перестали дифференцировать классы на new-style и old-style
  • перебороли путаницу между юникодом и не-юникодом
  • прилизали синтаксис, в том числе, в отрасли исключений
  • причесали перегружаемые операторы
  • со своей перегрузкой операторов, множественным наследованием, метаклассами и еще какими-то крутыми фичами пайтон — довольно мощный язык. По выразительности, я б сказал, на уровне С++.
А ведь я уж подумывал перейти на руби. Теперь не буду, когда 3.0 не за горами. Однако есть и то, что мне не нравится в Python, даже в третьем:
  • куча мусора, особенно в top-level scope. Многое стоило б рассовать по пакетам да по классам
  • со своей перегрузкой операторов, множественным наследованием, метаклассами и еще какими-то странными фичами пайтон — довольно сложный язык. По запутанности, я б сказал, на уровне C++
  • отсутствет встроенная xslt-библиотека. В библиотеке валяется все вплоть до работы со звуком и даже готовый вебсервер целиком, но не xslt
  • и теперь интересно, когда Джанго подружится с пайтон 3.0.
Ссылки по теме:

Интервально-ассоциативный массив

Reading time2 min
Views4.8K
Замечательная вещь — ассоциативный массив. Самые разные задачи решаются с его помощью легко, приятно и быстро. А как быть когда значение должно принадлежать не одному ключу, а быть «размазанным» на некоторый интервал?
Представьте, что вам нужно сделать программу для составления расписания дежурства менеджеров интернет-магазина. Работа с ним должна была максимально простой, примерно так:
# легко назначить
>>> timetable['08:00' : '12:00'] = 'Иванов'
>>> timetable['12:00' : '16:00'] = 'Петров'

# как узнать кто дежурил в 13:51 ?
>>> print timetable['13:51']
Петров

# легко просмотреть поэлементо полный список
>>> for interval, person in timetable.items(): print interval, person
('08:00', '12:00') Иванов
('12:00', '16:00') Петров

# ...или одной строкой
>>> print timetable
{['08:00', '12:00'] => 'Иванов', ['12:00', '16:00'] => 'Петров'}


Дальше - больше!
12 ...
8

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity