Архив рубрики: Tips ‘n’ Tricks

Нет быстрочтению!

IMG_1517 (2)Быстрое чтение полезно, если вам нужно прочесть «Британскую энциклопедию». Вот только чем занять остальную часть вечера?

Роберт Орбен

Я никогда не верил в быстрое чтение: это давало мне возможность ему не учиться. Дадада, я быстро читать не научился, потому что не нужно, или в другой нотации, ниасилил ;)

При этом всё, что я читал по этому поводу, просто растекалось в похвале разным методикам: «войну и мир прочитаете за два часа»! А сам я каким-то clip_image002непостижимым образом приходил к мнению, что если мне это и нужно, то уж точно не прямо сейчас, есть дела и поважнее. Теперь я нашёл мнение, которое относительно аргументированно, говорит, что я не ленивая задница, а очень умный. Лестно, что уж. Сама статья находится тут, можно вместо меня прочитать её, будет полезнее, только не торопитесь ;)

Автор статьи, Scott Young, пишет, что он, в отличии от меня долгое время был фанатом скорочтения. Он ему обучился, активно использовал и пропагандировал в течении длительного времени. Но спустя 8 лет он практически забросил большинство техник, которые изучил и использовал. Почему? Физиология и работа мозга. Они не позволяют нам эффективно читать со скоростью в десятки тысяч знаков в минуту. Скажем больше: читать быстрее 500-600 слов в минуту (в среднем это 3000 знаков) практически невозможно без частичной потери смысла написанного. Причём, в отличии от большинства товарищей, пропагандирующих скорочтение, я этому писателю, блог которого вижу впервые, верю, потому что

1) Он приводит исследования, подтверждающие его слова (и я даже пролистал парочку)

2) Он описывает тот опыт, который я могу соотнести со своим.

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

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

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

Плюс к этому, большинство людей читает не по 500-600 слов в минуту, а вовсе и 200-400, то есть можно повысить свою скорость хотя бы до этого предела, наверное. Так что найду я какое-нибудь лёгкое чтиво (что, кстати, посоветуете? ;) ) и пойду засекать, сколько слов в минуту я читаю

Реклама

Запрет на кофе

clip_image001Антон Жбанков предложил поделиться опытом, которого у меня, конечно, существенно меньше, чем у него и Андрея Бешкова. Однако, выяснилось, что и моего опыта хватает, чтобы кому-нибудь что-нибудь полезное иногда посоветовать. Сегодня говорим о волнении в начале выступления. Голос срывается, ладони потеют, мысли вылетают, а главное, все знают, что мы с тобой, дружище, ничего не знаем, выступать не умеем и вообще самозванцы. Кошмар. Ну, понятно, что симптомы могут быть разными, но главное одно — это состояние несколько мешает получать удовольствие от процесса.

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

Так вот, как-то раз я просто не успел его попить. Ну вот день такой выдался: и днём некогда было и перед выступлением не успел. В итоге мандраж длился не 10-15 минут, а буквально первые несколько предложений.

С тех пор кофе и прочие стимуляторы для меня перед выступлением — табу. И у меня это работает. Если эта проблема актуальна, и всё остальное не помогает, то почему бы тебе тоже не забанить кофе перед выступлениями?

#RuTeched: Отвечаю на вопросы. Будет ли работать Dynamic Access Control при использовании репликации?

imageКак я уже сказал, мои лабы на TechEd вполне удались, но все же я не смог ответить на ряд вопросов и пообещал сделать это позже, когда разберусь. Что ж, время пришло. Один из посетителей сказал мне, что в его опыте был случай, когда какое-то свойство файла не было отреплицировано через DFSR и поинтересовался, не поломается ли от репликации DAC. Я, разумеется мог поставить эксперимент (и сделаю это, на самом деле), но он только ответил бы на вопрос: “да” или “нет”. Ну или “возможно”. Но вряд ли бы он дал мне ответ на вопрос “почему?”. Так как я вовсе не на короткой ноге с репликацией файлов, мне пришлось просить помощи и я знал точное место, где ее можно было найти: блог AskDS.

Ответ пришел весьма быстро. Вкратце: “все будет супер”. Длинный ответ (в моем переводе) идет дальше:

“Позвольте мне уточнить некоторые аспекты вашего вопроса и ответить на каждую часть

При включении Dynamic Access Control для папок и файлов, следует рассматривать несколько аспектов.

Resource Properties

— Resource Properties определены в AD и используются в качестве шаблонов, чтобы проставить на файлы и папки дополнительные метаданные, которые могут использоваться в принятии решений об авторизации доступа. Эта информация хранится в дополнительных потоках данных (alternate data stream) папки или файла. И эта информация будет отреплицирована так же, как и дескриптор безопасности.

Security Descriptor

Как уже было сказано, они реплицируются вместе с файлом, так что все условия будут отреплицированы вместе с ними.

Все это никак не привязано к Dynamic Access Control—это просто результат репликации, к примеру, в случае репликации DFSR DAC не имеет никакого отношения к этим результатам.

Central Access Policy

Central Access Policy это способ распространить разрешения без внедрения их нпрямую в DACL дескриптора безопасности. Так что, когда Central Access Policy развернута на сервере, администратор должен прилинковать политику к папке на файловой системе. Это линкование осуществляется вставлением специального ACE в часть дескриптора безопасности, отвечающую за аудит и говорит Windows, что этот файл или папка защищены с помощью Central Access Policy.  Вследствии этого разрешения в Central Access Policy комбинируются с разрешениями Share и NTFS, чтобы получить итоговые разрешения.

Если файл или папка реплицируются на файловый сервер, который не имеет развернутой Central Access Policy, то DAC, очевидно, не применяется и разрешения так же не будут применяться.

Спасибо ребятам из этого блога: они лучшие Winking smile

FeedDemon + Windows 8: превозмогая сложности

Кого-нибудь удивит, что я пытаюсь на данный момент обжить W8? Нет? Ну и правильно: пытаюсь. На данный момент есть пара проблем, которые делают мою жизнь в этой ОС затруднительной и один, который делает ее провто невозможной:

  • У меня все еще нет нормального драйвера для eToken или я не умею его готовить.
  • Evernote в новом интерфейсе (мы больше не используем термин “Metro”, да) – отстой. Дело не в интерфейсе, а в изменившейся логике некоторых вещей и в ряде пропавших фишек. Сегодня попробую поставить нормальную версию.
  • И, наконец, FeedDemon продолжает выдавать мне огромные количества сообщений об ошибках.

Ну и, кажется, последняя ошибка, наконец, перестанет меня беспокоить. Перво наперво, сама ошибка:

Untitled picture0

ну или в тексте: “Error saving file: The process cannot access the file because it is being used by another process (32)” и потом указание на какой-то файл в папке Temp.

Я честно не представляю, какова взаимосвязь между такими симптомами и решением проблемы (хотя, это все же обходное решение), но оно работает: 

1. Сначала идем в настройки персонализации

2. И меняем цветовую схему с автоматической (верхний левый вариант) на любую другую:

Untitled picture

Voila! Больше никаких сообщений об ошибке.

Статьи по решению проблем.

imageКак-то я наткнулся на статью, которая была, на самом деле, всего лишь списком ссылок на другие статьи в Windows IT Pro. Я даже не помню, где я нашел этот список (скорее всего в том же WinITPro), но помню, что наборчик оказался полезным для меня.

В моей свалке информации список называется “troubleshooting learning path” и это похоже на правду. Не расползаясь мыслию по древу, ниже приведен список. Для доступа к статьям нужно всего лишь выполнить поиск по InstantDoc ID на главной странице журнала

Have fun:

 

Name InstantDoc ID
Administrators’ Intro to Debugging 101818
Conquer Desktop Heap Problems 101701
Disk2vhd: The Windows Troubleshooter’s New Best Friend 102980
Examining Xperf 102054
Find the Binary File for Any WMI Class 102615
Further Adventures in Debugging 102867
Get a Handle on Windows Performance Analysis 101162
Got High-CPU Usage Problems? ProcDump ‘Em! 102479
Reap the Power of MPS_Reports Data 101468
Resolve Memory Leaks Faster 99933
Resolve WMI Problems Quickly with WMIDiag 100845
Say ‘Whoa!’ to Runaway Processes 100212
Simplify Process Troubleshooting with DebugDiag 100577
Troubleshooting the Infamous Event ID 333 Errors 101059
Under the Covers with Xperf 102263

Собственный troubleshooting pack

image

Внимание: мой новый RSS-Feed: http://feed.feedcat.net/815939

Измените свою подписку, пожалуйста. 

Как я однажды написал, можно не только сказать пользователю, какой именно ему нужно запустить troubleshooting pack, но и создать собственный. Ну и не прошло пары лет, как я созрел разобраться, как же это делается и рассказать. Я был уверен, что это близко к, как говорят наши иностранные коллеги, “rocket science”, однако я сильно заблуждался: это легко. Мало того, это достаточно интересно, поскольку для его создания нужно применить практически все из арсенала гиков:

1) Использовать GUI

2) Написать скрипты

3) Запустить то, что получилось и увидеть автоматический результат!

Так что, давайте приступим.

К сожалению, эта штука проста, но не настолько, чтобы ее можно было создать в notepad. Ну, может и есть такой метод, но он будет всяко сложнее, чем то, что я сейчас расскажу. Перво-наперво, необходимо скачать Windows 7 SDK. Я, честно говоря, не знаю, какой именно компонент ставит то, что нам нужно, потому поставил все целиком. Если кому-то критично, что ставится, всегда можно выяснить. Ну а после инсталляции, в меню найдется Troubleshooting Pack Designer:

image

Теперь остается определиться, какую проблему нам нужно решить с помощью нашего будущего чудо-инструмента. В моем случае я собираюсь автоматически решать мелкую, но доасдную проблему. Мой ноутбук Dell не всегда корректно определяет скорость сети, после того, как я помещаю его в док-станцию. Обычно помогает выключение и включение сетевого интерфейса, что, в общем-то, не сложно, но всегда же хочется потратить день на то, чтобы потом решить за пять минут задачку, не правда ли? (и да, я знаю, что просто скрипт из двух строчек был бы даже лучше, но… См. вышеWinking smile). Так что запускаем утилиту:

image

и создаем новый проект:

image

image

(обратите внимание на поле “Privacy URL”: оно обязательно к заполнению) Дальше все предельно просто. Добавляем новую корневую причину сбоя (Root cause) (а можно и несколько добавить). В моем случае это “A Network is detected 10Mbps instead of 100”:

image

и жмем “Design Troubleshooter”. Выполняем ряд настроек: Troubleshooter – включать или не включать привилегированный режим, и взаимодейстовать ли с пользователем. В моём случае ни то, ни другое не нужно:

image

Потом конфигурируем resolver, и у меня для него все так же просто:

image

Ну и разумеется, мы желаем, чтобы после исправления проблемы наш инструмент сам проверил, а правда ли проблема устранена:

image

Ну и наконец, нужно создать скрипты для этих задач

Troubleshooter:

# TroubleshooterScript — This script checks for the presence of a root cause

# Key Cmdlets:

# — update-diagrootcause flags the status of a root cause and can be used to pass parameters

# — get-diaginput invokes an interactions and returns the response

# — write-diagprogress displays a progress string to the user

 

$RootCauseID = «NetIs10»

 

# Your detection Logic Here

$speed = (Get-WmiObject -Class Win32_NetworkAdapter | Where-Object { $_.Speed -ne $null -and $_.MACAddress `

-ne $null -and $_.name -like «*82567lm*»}).speed

if ($speed -ne 100000000)

      {

      $RootCauseDetected = $true

      }

      #Replace «$true» with the result of your detection logic

 

#The following line notifies Windows Troubleshooting Platform of the status of this root cause

update-diagrootcause -id $RootCauseId -detected $RootCauseDetected

Чрезвычайно примитивно, всего лишь проверяет, равна ли скорость интерфейса 100Mbps.

Resolver:

# Resolver Script — This script fixes the root cause. It only runs if the Troubleshooter detects the root cause.

# Key cmdlets:

# — get-diaginput invokes an interactions and returns the response

# — write-diagprogress displays a progress string to the user

 

# Your logic to fix the root cause here

$network = Get-WMIObject Win32_NetworkAdapter | where {$_.name -like «*82567lm*»}

$network.disable()

Start-Sleep 4

$network.enable()

Этот даже еще проще: просто “перезагружает” интерфейс.

Ну и теперь компилим (попутно решаем вопрос о том, каким сертификатом подписывать: тестовым самоподписанным или нормальным), пакуем и используем.

image

По крайней мере для меня это было забавным приключением с полезным выхлопом. Надеюсь и всем остальным тоже понравится.

>Lync and fortunes

>

lync1

“Продаю параошют. Использовался только один раз, ни разу не открывался. Небольшие кровоподтеки.”

“Жизнь – крутая штука. Купи шлем.”

“Не могу придумать умную фразу, чтобы поделиться ей.”

Некоторые люди очень любят помещать забавные предложения вроде этих в свой мессенджер. Я-то точно люблю. В случае с OCS это можно было сделать вручную (как, впрочем, и в Lync). Но только одно такое сообщение всё время… Скууучно. Особенно, если Вы накопили множество таких фраз. Менять их вручную – почти такое же скучное занятие, как не менять их. Вот потратить кучу (пусть даже и небольшую) времени, чтобы  создать маленькую програмку, которая будет это делать за нас – это наш метод! 

Как бы то ни было, я пробовал в своё время сделать это с OCS клиентом, но мне это не удалось. То ли я плохо пытался, то ли решение не было достаточно простым для меня… В любом случае, обычно в “следующей версии” всё лучше, чем в предыдущей (если по началу у Вас ничего не получается, назовите это “версия 1.0”) и в Lync мы получили новый SDK, с несомненными улучшениями, такими, как возможность менять строку статуса программно Подмигивающая рожица

Вкратце: Вы можете прочитать о той части SDK, которая помогла мне построить мой скрипт, потом прочитать о написании скриптов на PowerShell для Lync c помощью extencibility API и наконец прочитать о том, как управлять именно нужным параметром. Ещё один шаг, который нужно предпринять: скачать и установить SDK. После этого можно будет написать и использовать собственные скрипты для любых задач, связанных с Lync.

Или можно просто использовать этот скрипт:

 

#Load Assembly

$assemblyPath = «C:Program Files (x86)Microsoft LyncSDKAssembliesDesktopMicrosoft.Lync.Model.DLL»

Import-Module $assemblyPath

 

#Initialize objects

$client = [Microsoft.Lync.Model.LyncClient]::GetClient()

$self = $client.Self;

 

#Get a fortune

$Fortunes = Get-Content c:tempfortunes.txt

$linesNumber = $Fortunes.Length

$todaysFortuneNumber = Get-Random Maximum $linesNumber Minimum 1

$todaysFortune = $Fortunes[$todaysFortuneNumber 1]

 

#Publish personal note of the local user

$contactInfo = new-object ‘System.Collections.Generic.Dictionary[Microsoft.Lync.Model.PublishableContactInformationType, object]’

$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::PersonalNote $todaysFortune)

$ar = $self.BeginPublishContactInformation($contactInfo, $null, $null)

$self.EndPublishContactInformation($ar)

 

Он явно не идеален и не делает всех тех вещей, которые нужно бы делать (например, не проверяет, а подключен ли клиент Lync к серверу), но его можно рассматривать как рабочий прототип. =)