Tuesday, March 31, 2009

Command Shell tricks

То же похвалюсь. Пару дней назад узнал ещё один трик с работой из командных файлов.

Теперь как минимум 2 трика знаю:
1) Получить текущую директорию
echo %cd%




2) Установить в бат-файле текущую директорию как текущую директорию где сам файл находится
Пример,




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



Здесь на помощь придёт вот этот трик cd /d %~dp0. Он устанавливает текущую директории, где сам бат-файл лежит.






Пишите в комментах ещё трики, если у вас в запасе есть, и пусть это останется в истории. и не надо будет по закоулкам лазить, чтобы поднять старые знания, как это иногда приходится делать.

Using SQL for Active Directory

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



sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADSDSOObject', 'adsdatasource' 
go

SELECT REPLACE(userPrincipalName, '@sam-solutions.net', '') as l, 
telephoneNumber, Name FROM OPENQUERY( ADSI, 'SELECT displayName, 
sn, name, cn, telephoneNumber, userPrincipalName FROM 
''LDAP://DC=sam-solutions,DC=net'' WHERE objectCategory 
= ''Person'' AND objectClass = ''User'' AND memberOf = 
''CN=tbw,OU=groups,OU=dept2,OU=SamSol,OU=Belcaf,DC=sam-solutions,DC=net'' ') 
order by l

Sunday, March 22, 2009

Список высокорекомендуемой литературы для программиста

Привет,

Может некоторые заметили, в письме, которое отсылаю для новеньких на проекте от том, что поставить для работы, включаю 2 книги как Highly Recommended для чтения:

  1. Рихтера (CLR via C#)
  2. Дино эспозито (ASP.NET)

У меня лежит запрос на "что ещё можно почитать из recommended". Оно и правда – среди книг шлака очень много. Даже сейчас читаю книгу, что Саша С. Подогнал по WCF – руки поотрывал бы автору – очень слабо.

Я прочитал довольно много книг - ~60% из них не рекомендовал бы ни в коем разе – потеря времени. Но есть очень хорошие авторы. Из всего набора сегодня выделил 10 лучших книг, которые читал и которые высоко рекомендую.

30 марта список рекомендуемой литературы со ссылками уйдёт на всю группу разработчиков. Если у вас есть книги, которые читали (обязательно читали) и хотели бы включить в этот список – отпишите обязательно сюда же.


 

  1. Security (книга a и b ну просто must – огненные штуки)
    1. Writing Secure Code

      Коммент: читал в бумажном виде, в своей эл. Библиотеке не нашёл


       

    2. Hacking the Code by Mark M. Burnett and James C. Foster –

      Коммент: есть в эл. Виде в моей библиотеке

      (Hacking the Code - ASP.NET Web Application Security Cookbook (2004) .chm)

      НЕ ЧИТАЙТЕ РУССКИЙ АНАЛОГ В ИЗБЕЖАНИИ ПОТЕРИ МОЗГА


     


     

  2. ООП
    1. Объектно-ориентированный анализ и проектирование Гради Буч

      Коммент: Книга на русском, есть в эл. Виде. Буч тяжёл для восприятия, но пробивает насквозь. Классика.


     

  3. .NET
    1. CLR via C#

      Коммент: no comment – must


       

    2. .NET Gotchas By Venkat Subramaniam

      Коммент: раскрываются тонкости языков и платформы (OReilly.dot.NET.Gotchas.May.2005.chm)


       

    3. Essential .NET - Volume 1 The Common Language Runtime.chm

      Коммент: книга про .NET 1.1, но есть часть того, чего в рихтере нет. Не знаю, есть ли продолжение для .Net 2.0 – сам почитал бы (OReilly.dot.NET.Gotchas.May.2005.chm)


 

  1. Aрхитектура
    1. Patterns of Enterprise Application Architecture by Martin Fowler - Коммент: Есть эл. вариант (Addison Wesley - Patterns of Enterprise Application Architecture.chm). Отличная книга как первая для захода в архитектуры


       


       

    2. Шаблоны проектирования для Java

      Коммент: Читал бум. Версию. не нашёл в электронной своей библиотеке пока той, которую читал. Буду искать.


       

    3. Книга про построение кластеров

      Коммент: пока не нашёл. Буду искать.


     

  2. Misc
    1. Refactoring. Improving the Design of Existing Code

      Коммент: no comment. Замечательная книга. (Refactoring. Improving the Design of Existing Code.pdf)


       

Saturday, March 21, 2009

Соблазны модели распределенных объектов

Два-три раза в год мне доводится участвовать в одном и том же "шоу". Архитектор очередной объектно-ориентированной системы (допустим, приложения для обработки каких-то заказов) с гордостью выставляет на общее обозрение план распределения объектов: каждый программный компонент размещается в отдельном узле системы.

"Зачем все это?" — спрашиваю я.

"Производительность, вестимо, — отвечает архитектор, глядя на меня со слабо скрываемым превосходством. — Мы можем запустить каждый компонент на обработку в своем собственном блоке. Если мощности блока не хватит, мы запросто добавим еще парочку, чтобы сбалансировать нагрузку". Теперь он уже и не пытается утаить самолюбования вперемешку с удивлением по поводу того, что я вообще посмел открыть рот.

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

Безусловно, все это просто замечательно, но... Хотя многие стороны жизни распределенных объектов действительно приобретают искомую прозрачность, это явно не относится к аспектам производительности. Наш герой-архитектор осуществил распределение объектов, как ему казалось, исходя из соображений производительности, но на самом деле выбор подобной структуры наверняка снизит эффективность системы и существенно усложнит процессы ее разработки и практического внедрения.

(C) Фаулер

Tuesday, March 17, 2009

Тех. люди #5. Быть в согласии со своим внутренним Я

Быть в согласии со своим внутренним Я

Да уж... давненько ничего не писал. Тяжеловато дался период перехода зимы в весну и физически, и на работе работки поувеличилось, поэтому времени не хватало. Но ничего. Теперь опять стало всё более-менее в своё русло и вот вам следующий пост. А то совсем все уснули.


 

Принцип #3. Всегда работай в согласии со своим внутренним Я.

Это значит всегда придерживаться тех жизненных принципов, что ты себе выбрал. Ты определил себе, что друга обмануть это плохо – и ничто не должно тебя заставить сделать в этом исключение. В этом и есть твоя сила. Ты силён, когда тебя изнутри ничего не мучает. Ты уверен, когда знаешь, что поступаешь правильно. У тебя меньше сомнений, потому что выбор гораздо меньше и чётко очерчен.


 

Совесть

Одна из вещей, которой больше всего в жизни дорожу – это моя совесть. Для меня это и есть главный показатель моего согласия с внутренним Я. Ты сорвался, нагрубил, это сразу отдаётся внутри тебя. Ты обманул, и тебя в зависимости от глубины и последствий вранья начинает мучать совесть.

Помню большие дядьки недавно меня спросили, сколько тебе лет. Я годик себе накинул, дабы старше показаться. А зачем? Потом только мучался мыслью, зачем это сделал. Зачем унизил себя перед ними. Такая ложь быстро забывается, но даже этих мыслей и мучений не было бы, если бы сказал действительно сколько лет. Да и результат был бы в принципе один и тот же.

Думаю, у каждого в запасе есть такая маленькая история.


 

Скидки

Здесь самое главное никогда не делать себе скидок. Это очень важно. Каждое исключение будет отдаваться чем-то нехорошим тебе же самому.

Если тебя, кто-то заставляет сделать что-то, что противоречит твоим принципам – пошли его подальше и тебе спокойней будет. Пусть даже это будет твой непосредственный руководитель.

Быть собой - вот что больше всего ценится в человеке.


 

Умение контроливать себя

В последний раз, ко мне друг приезжал. Завязался небольшой спор. Первые пол-часа я отшучивался. А после не выдержал и сорвался – начал с пеной у рта доказывать обратное, говорить, что за такие вещи за дверь выставлю и т.д. После этого момента, как перешёл больше на эмоции, я уже не контролировал ситуацию, она меня контролировала и руководила. Был ли я сильным в тот момент? Нет ещё слабее, чем когда либо. Тот щит, который в виде шуток имел, у меня выпал из рук, и защищаться было нечем, плюс при сильных эмоциях человек раскрывается сильно, и у него ещё больше брешей видно.

Одно из правил у Карнеги – никогда не спорь с человеком. Его всё равно не переспоришь, только ещё больше каждый останется при своей позиции.

После того, как друг мой ушёл, я понял, что сделал ошибку. Всё что надо было сказать себе тот момент: его цель - сделать мир вокруг лучше и себя тоже. Так ведь на самом деле и и было. И всё получилось бы спокойней и цивилизованней.

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

Конечно, иногда ты срываешься, и твой коллега или спутник получает, то что ты выворачиваешь на него. Будь с этим осторожней. Больше самоконтроля и самодисциплины. Может этот человек благую цель имел – ничего в этом мире просто так не происходит.


 

Уважение

Отностить к людям так, как хочешь чтобы относились к тебе. Поистине золотые слова Карнеги.

Мир сам по себе субъективен – он такой каким ты сам его видишь. В мире не может быть гармонии, если её нету внутри самого человека.

Если ты не можешь с уважением относится прежде всего к себе, ты не сможешь с уважением относится к другим. Есстествено, эти другие не смогут к тебе отнестись к тебе, как ты это желаешь или видишь.

Начать нужно прежде всего с себя. Сделай всё, чтобы для начала самого себя уважать.

Будешь ли ты уважать человека, у которого зарыты скелеты в шкафу, которому самому противно от того, что он постоянно делает, и мучают угрызения совести.

Уже давно говорю, и свято уверен в этом. Семья (настоящая семья) без любви существовать может, без уважения к друг другу нет. И об этом нужно чаще напоминать друг другу и не давать себе и твоему спутнику показывать неуважение к тебе да и к себе тоже. А если всё это ещё и любовью закрепляется – то такая семья через любые невзгоды пройдёт.

Не позволяйте себе и другим показывать неуважение к вам.


 

Прощение

Умение учится себя прощать – великое дело. Нужно понимать, что человек несовершеннен и ему свойственно ошибится.

Вот я сейчас намного меньше боюсь ошибится, чем пару лет назад. Не ошибается тот, кто ничего не делает. Отличные слова. Ошибки – это твой бесценный опыт. Ты попробовал – не получилось, ещё разок – снова нет, ещё – да... всё получилось. Золотое правило. За двух небитых одного битого дают.

Можно заложить себе какой-то процент ошибок в любом действии. Сделать это можно ожидаемым и меньше разочарований будет. Даже тестированию и исправлению ошибок в проектах обычно выделяют ~30 процентов от времени разработки.

Особенно у женщин, подметил, восприятие своих ошибок - это проблема. Вот уж кто всей душой отдаётся саму себя на растерзание. У меня жена на права ходила. Мне больно было смотреть, как она переживает уже после первых уроков вождения о своих ошибках и промахах. В таких ситуациях, главное понимать, что а по-другому то просто не бывает. Как говорит моя бабка, ребёнок должен сразу определённое кол-во раз упасть, чтобы научится ходить.


 

Люди

Я вот только недавно (пару лет назад) понял одну истину, вроде простую, но для меня очень важную. Люди - это прежде всего люди, а всё остальное потом. Ты приходишь к доктору и прежде всего перед тобой сидит человек, а потом доктор. К тебе подходит миллиционер, это прежде всего человек, а потом миллиционер. Если ты лидер команды, то ты прежде всего человек, а потом менеджер.

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

Конечно, в любом правиле есть исключения. Когда человеческие качества ставят на потом, а на передние – твои профессиональные. В армии особо много таких – их ещё называют вояками в ср@#у.


 

Голова и сердце

Если решение исходит из сердца, оно всегда правильное. Это решение не будет тебя мучать. У головы другое предназначение – постоянно думать и порождать сомнения.

Мы перенесли принятие решений в голову. Мы руководствуемся чужими правилами для принятия решений. Мы выбираем из книг, что человека вот за это нужно наказывать этим, и тогда он будет делать вот это.

Посмотрите для начала, что ваше сердце подсказывает. А потом что ваш мозг говорит. Не всегда нужно оперировать голыми фактами, иногда достаточно посмотреть человеку в глаза, чтобы понять, что он сам знает, что он сделал и что он этого больше не сделает. Не надо добивать его, как иногда хочется сделать. Он сам всё понимает.

Но и ещё одну штуку нужно помнить. Пользоваться вашим сердцем должны вы сами. Если видите попытку кого-либо использовать это в своих целях – включайте мозг и действуйте как считате нужным.


 

Главное

Так что же главное? Если у тебя внути всё в порядке, если ты ощущаешь внутреннюю гармонию, если работаешь и живёшь в согласии со своим вторым Я, у тебя всё получится. Не будь воякой, будь воином.


 

PS. Везде по тексту говоря тебе, я подразумевал себя. И буду только несказано рад, если хотя бы в нескольких местах вы поставите себя.