четверг, 19 февраля 2009 г.

Денис Войханский - Социальные аспекты разработки

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

Ключевые мысли:
Нацеливание команды на успех
Закон Листера
Закон Паркинсона
Good ожидания от человека
Больше доверия
Хорошие условия работы
Команда равных
Самоуправляемые команды
Daily Meetings
Iterations

UPD.
И в догонку - Социальные аспекты руководства, или как же всё таки «пинать» сотрудников. 2 года спустя.

четверг, 29 января 2009 г.

Как сделать скриншот программы?

How to take ScreenShot in C# or Visual Basic?

C#
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

private string TakeScreenShotFileName()
    {
      string screenshot = null;

      if (Application.OpenForms.Count > 0)
      {
        Bitmap bmp;
        Graphics gr;
        Rectangle bounds = Application.OpenForms[0].Bounds;

        screenshot = System.IO.Path.GetTempFileName();

        bmp = new Bitmap(bounds.Width, bounds.Height);

        gr = Graphics.FromImage(bmp);
        gr.CopyFromScreen(Application.OpenForms[0].Location, Point.Empty, bounds.Size);

        bmp.Save(screenshot, ImageFormat.Jpeg);
      }

      return screenshot ?? "";
    }


* This source code was highlighted with Source Code Highlighter.


VB
Imports System.Drawing
    Private Function TakeScreenshotFileName() As String
      Dim bounds As Rectangle = My.Application.MainForm.Bounds
      Dim fileNAme As String = Nothing

      Using b As New Bitmap(bounds.Width, bounds.Height)
        Using g = Graphics.FromImage(b)
          g.CopyFromScreen(My.Application.MainForm.Location, Point.Empty, bounds.Size)
        End Using
        fileNAme = System.IO.Path.GetTempFileName()
        b.Save(fileNAme, Imaging.ImageFormat.Jpeg)
      End Using
      Return fileName
    End Function


* This source code was highlighted with Source Code Highlighter.

вторник, 16 декабря 2008 г.

Получил Боекомплект разработчика

Нашел для себя очень полезными 6 книг из 8. Теперь осталось найти место у себя в голове и на книжной полке, с первым проблем никаких, а вот со второй проблемой придется повозится ;-)
В состав боекомплекта вошли следующие книги:

  1. Рихтер Дж. - CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. Мастер-класс. / Пер. с англ. - 2-е изд., исправ. - М. : Издательство "Русская редакция"; СПб.: Питер, 2008. - 656 стр. : ил. ISBN 978-5-7502-0348-2

  2. Рихтер Дж. - Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows / пер. с англ. - 4-е изд. - СПб.: Питер; М.: Издательство "Русская редакция"; 2008. - 720 стр.: ил. ISBN 978-5-7502-0360-4

  3. Роббинс Джон - Отладка приложений Microsoft .NET И Microsoft Windows /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2004. - 736 стр.: ил. ISBN 5-7502-0243-7

  4. Руссинович М., Соломон Д. - Внутреннее устройство Microsoft Windows.Windows Server 2003, Windows XP и Windows 2000. Мастер-класс. / Пер. с англ. - 4-е изд. - М.: Издательство "Русская редакция"; СПб.: Питер; 2008. - 992 стр.: ил. ISBN 978-5-7502-0085-6

  5. Станек Уильям Р. - Microsoft SQL Server 2005. Справочник администратора / Пер. с англ. - М.: Издательство "Русская редакция", 2008. - 544 с.: ил. ISBN 978-5-7502-0281-2

  6. Ховард М., Лебланк Д. - Защищенный код \ Пер. с англ. - 2-е изд., испр. - М.: Издательско-торговый дом "Русская Редакция", 2005. - 704 стр.: ил. ISBN 978-5-7502-0238-6
  7. Эспозито Д. - Знакомство с технологией Microsoft ASP.NET2.0 AJAX. - М.: "Русская Редакция"; Спб.: Питер, 2008. - 320 с.: ил. ISBN 978-5-7502-0307-9

  8. Эспозито Д. - Microsoft ASP.NET 2.0. Углубленное изучение / Пер. с англ. - М. : Издательство "Русская редакция"; Спб. : Питер, 2007. - 592 с.: ил. ISBN 978-5-7502-0286-7


Боекомплект разработчика

четверг, 4 декабря 2008 г.

ORA-12520: TNS:listener could not find available handler for requested type of server 

В Oracle 10XE параметр processes имеет значение 20. Что при большом количестве одновременных подключений к БД приводит к данной ошибке.
Решение:
ALTER SYSTEM SET PROCESSES = <количество процессов> SCOPE=SPFILE

После перезапуска базы параметр изменится.

Ключевые слова: ORA-12520, TNS-12520

вторник, 11 ноября 2008 г.

Играю Fallout 3

Постапокалиптический мир очень захватывает. В силу своей любопытстности больше скитатаюсь по пустоши, чем выполняю основную ветку сюжетной линии. Хотя квест от Мойры по написанию руководства старательно добиваю. Вчера ночером забрался к коллектор населенный дикими гулями, адреналинчику в крови заметно прибавилось, эти чудни бегают очень быстро, не убежишь, а темнота усиливает эффект неожиданности, но боевой дробовик заметно убавляет их прыть. С супермутантами в открытом поле стягаться тяжело, но при наличии гранат/мин/крышкомин и хоть какого то бугорка можно отбится от одиночки с миниганом, а в бетонных джунглях они выносятся отстрелом рук и головы из-за укрытия, после отстрела руки они либо прячуться либо бегут на встречку, где тем же дробовиком прибиваются к полу.

Так что Bethesda потрудилась на славу! Обзоры игры не читаю, и не буду!

А вот список тех кто озвучивал персонажей игры, я так и знал - DJ ТриДогНайта (ведущий радио "Новости Галактики") озвучивал Борис Репетур. К озвучке нареканий нет, а вот перевод местами хромает. Надо бы добавить музыки в стиле 50-60х на радио "Новости Галактики", а то старая уже приелась.

четверг, 6 ноября 2008 г.

Linux: Удалить файлы рекурсивно

Казалось бы, простая задачка. В Windows все просто - del /S smth.*, готово. Все файлы по маске smth.* в текущей директории и ниже будут удалены.

В Linux чуток сложнее.
Есть в Linux команда rm, но она дальше текущей директории не идет, зато прекрасно понимает полный путь к файлу, чем мы и воспользуемся.
Получить список всех файлов в текущей директории и поддиректориях по маске позволяет команда find -name "smth.*", ее вывод то нам и нужен. Осталось его перенаправить на вход команды rm. Это можно сделать 5ю способами:
xargs - формирует команду rm с аргументами считанными из стандартного ввода на которой мы подадим вывод команды find. нюансы использования описаны тут
1. find /path/to/dir -type f -name 'smth*' -print0 | xargs -0 rm;
exec - перенапаравляем вывод команды find на вход команды rm
2. find -name 'smth.*' -exec rm {} \;
UPD.
find - самый рульный способ
3. find -name 'smth.*' -delete;
UPD.
Способы подсказанные камрадом goodvin
4. find . -type f -name 'smth*' -delete
5. find . -type f -name 'smth' -exec rm -f -- "{}" \;

Может есть ещё какие нибудь способы??

среда, 5 ноября 2008 г.

TiddlyWiki и Google Chrome

Наконец нашел решение проблемы - Google Chrome не умел сохранять TiddliWiki.

Получилась замечательная связка персональной Wiki и быстрого браузера.
До этого приходилось пользоваться ОгнеЛисом для работы с TiddlyWiki.