• Немного об уважении и презрении by Ast

    Всего в двух цитатах:

    «Епископ Коленсо в своих попытках обратить в христианскую веру зулусов перевел Библию на зулусский язык. Те с интересом читали Библию, но когда они прочитали о том, что заяц — жвачное животное, то заявили епископу, что это неправда. Коленсо был книжным червем, незнакомым с привычками зайцев. По настоянию зулусов он понаблюдал за зайцами и понял, что те правы. Все это заставило его усомниться в Библии, и в результате церковное руководство лишило его жалования»
    «Искусство философствования», Бертран Рассел
    «Существует иной, гораздо более опасный вид искушения. Имя ему — порок любопытства. Именно он подвигает нас на попытки разгадать недоступные нашему пониманию, ненужные нам тайны природы, познания которых человеку желать не должно»
    Святой Августин
  • Пятипсовая ночь by Ast

    Небо Австралии

    Коренные австралийцы держали прирученных динго в качестве спутников, сторожей и даже живых одеял — именно отсюда пошло выражение «пятипсовая (то есть очень холодная) ночь


    «Ружья, микробы и сталь», Джаред Даймонд
  • Про мудрого шамана и его изобретение by Ast

    Это сложно представить. Но где-то среди невообразимого космического пространства, сотен миллиардов самых разных галактик, на скучных задворках одной из них, среди многих мириад незнакомых звёзд, комет и астероидов, черных дыр, тёмной материи и просто пыли, кружился небольшой, ничем не примечательный желтый карлик, наше Солнце. И, конечно, рядом всегда была одна из его планет, крошечный зелено-голубой мирок, который мы называем Землей.

    На нём жили, когда мирно, когда и нет, среди громадного зверского и рыбьего множества некие странные существа, называвшие себя «людьми». Пока что недолго еще жили, какие-то жалкие сотни тысяч лет, секунды, словом, по геологическому времени. И, шутка ли, смешно: еще буквально вчера лазали по деревьям без палок и были совсем другим видом, а теперь, ишь, эволюция у них — раздулись от важности, все с палками и по деревьям уже не лазают.

    Придумали они себе, раз так, сложные наборы разных правил, чтобы на все случаи жизни. Бывало, шаман говорит: если топнуть так и прихлопнуть эдак — должен пойти дождь! И племя радуется: умный шаман-то, хорошо, как мы раньше без него были? И, действительно, бывает что помогает его совет. Ну а если и не пойдет дождь, то кто ж его знает, без притопывания и прихлопывания тогда вообще, наверное, засуха была бы. Или тоже, вдруг, как даст шаман затрещину вождю, так племя и ликует: мало ли чего от того можно было ожидать, а теперь-то уж точно неповадно будет.

    Ну и, конечно, раз шаман как-то должен был просвещать своей мудростью остальное тёмное племя, а затычки и затрещины у него стали стремительно кончаться, пришлось выдумать и какой-никакой, а язык. И не просто так выдумать, а чтобы можно было делать эту, комъюникацию между ендивидами. Дабы можно было сказать что-то вроде: эй ты, иди собирай корешки, а моя шаман — буду в бубен бить. Чтобы передавать важную информацию, словом, для того и придумали.

    И вот тут надо заметить, шаман тогда еще много чего говорил на этом своем новом языке. И про то что Земля круглая, а не плоская; и что слонов под ней нет и даже не было никогда; что слова это всего лишь набедренные повязки мыслей, но никак не наоборот. Говорил, что видит как люди будут летать на железных птицах и говорить через чёрные коробочки; что далеко, за морем, живут другие странные люди и они тоже — люди; что «человек» почему-то всегда звучит гордо. Много ещё о чем он говорил, да только забыл перед тем объяснить что такое этот самый его «язык» и как им пользоваться, вот и пропала вся мудрость его просто так. А снова о том говорить шаман уже не стал: ибо жизнь коротка и повторяться не стоит.

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

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

    И увидел шаман, что потомки к памяти предков небрежно относились, и всё что можно было, ну всё напутали. Стали, наивные, топать и прихлопывать чтобы разлив реки вызвать — да где же такое видано, люди добрые? Дикари они, нечего и добавить, просто дикари. А некоторые, те, что особенно умные, либо совсем дурные, даже стали посмеиваться над различными суевериями: крокодила не ловить в пятницу, по пальме стучать трижды, топать и прихлопывать для дождя — вот же древние придумали, ну умора просто!

    А самое главное, увидел шаман, что хоть и не узнать его язык теперь стало, так тот изменился, а люди-то того и не понимают вовсе. Говорят о какой-то грамотности, орфографии (это надо же было слова-то такие придумать!), нормах языка. Спорят, копья ломают, только что морды друг другу не бьют (а где-то даже и бьют!), да ведь все одно: никто не знает как оно на самом деле должно быть, кроме шамана нашего. И такая его грусть-тоска взяла за этих бестолковых людей, что хотел он было уже возопить им, закричать что было сил. И о том что земля круглая, и что слонов нет, и что слова суть только набедренные повязки для мыслей, но никак не наоборот... Вот только духи, испугавшись вмешательства, тут же воротили его назад. Вместе с грибочками и листьями.

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

  • Кто такая Хэди Ламарр? by Ast

    Хэди Ламарр

    Меня всегда интересовали люди, которые проявляют себя не в одной узкой области, а в многих. И чем больше разница между этими областями — тем интереснее. Можно вспомнить, например, Ричарда Фейнмана, известного физика, который любил играть на барабанах и рисовать. Или даже Альберта Эйнштейна, который любил играть на скрипке. Но сейчас я не о них: хочу вспомнить актрису, пионерку кинематографа, Хэди Ламарр. В принципе, уже то, что она снялась в первой за историю кино сексуальной сцене, очень примечательный факт. Который, по рамкам того времени можно назвать очень смелым ударом по ханжеским моральным нравам эпохи. Но куда интереснее, на мой взгляд, то, что она же изобрела метод расширения спектра сигнала, который используется и поныне, хотя бы в том же стандарте GSM, благодаря которому мы можем говорить по сотовым телефонам.

  • Об опасном остроумии by Ast

    Иоанн Скот Эриугена

    Если можно доверять сообщению Уильяма Малмсберийского, то однажды король, когда Иоанн [Иоанн Скот Эриугена, философ, схоласт — прим. Astartsky] обедал с ним, спросил: «Что отделяет Скота от скота?», на что Иоанн ответил: «Только ширина обеденного стола!»


    «История западной философии», Бертран Рассел
  • Айзек Азимов by Ast

    Если врач скажет, что мне осталось жить пять минут, я не буду рвать на себе волосы. Просто я стану печатать на машинке немного быстрее
    Айзек Азимов
  • Да вы, наверное, шутите, мистер Фейнман! by Ast

    Книга расскажет о жизни Ричарда Филиппа Фейнмана, знаменитого американского физика, известного популяризатора науки, да и просто хорошего человека. Не ожидайте скучной и сухой биографии, ведь мало людей на свете могли бы похвастаться таким радостным и восторженным отношением к жизни, как Ричард Фейнман. С ним случались самые разные истории: забавные и смешные, грустные и серьезные, нелепые и трагичные, но всюду по жизни его вели неистощимое любопытство и восхищение нашим миром.

  • Учим PowerShell разговаривать by Ast

    Во многих фантастических фильмах люди взаимодействуют с компьютерами, используя голосовые команды. Например, заходит человек в комнату, а там темно. «Компьютер, свет 50%!» — говорит он. «Есть свет 50%!» — отзывается приятным женским контральто компьютер и берет под козырек, включая неяркий свет. Кому такого не хотелось? Но если сама мысль такого взаимодействия родилась на свет очень давно, странствуя с тех пор по страницам фантастических книг и кадрам кинолент, то сейчас всё изменилось: доступность под рукой высоких технологий сделала многое возможным. В романе Роберта Хайнлайна «Луна — суровая хозяйка» (1966г.) суперкомпьютер Майк мог говорить свободно, но он занимал огромное количество места и, уж конечно, не был мобильным. Герой моего рассказа не может похвастаться идеальным произношением или возможностью поддерживать диалог, но, для своих габаритов он очень способный. Разумеется, я говорю о нетбуке Asus EeePC 1000.

    Не так давно я установил на него новую операционную систему MS Windows 7 RC и не мог не ознакомиться с тем, что предлагалось в комплекте. Наибольший мой интерес вызвала командная строка PowerShell и среда PowerShell ISE. Где-то на просторах интернета существуют самые разные командлеты для осуществления почти любых задач, в том числе и для воспроизведения речи. Но мне хотелось реализовать все через обычную функцию, чтобы не быть зависимым от установленных командлетов. Их же, в конце концов, может и не быть на определенном компьютере, а профиль скопировать — дело минуты. Кроме того, недавняя история с исчезновением в новой сборке, например, командлета Get-Clipboard для работы с буфером обмена, настораживает относительно чрезмерного использования редких командлетов. А вот классы .NET никуда не денутся, хотя доступ к ним может быть тоже не самым простым: в данном случае приходится запускать консоль в режиме -sta чтобы иметь возможность работать с буфером обмена.

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

    Реализация

    function astSpeak([string]$inputString, [int]$speed = -2, 
             [int]$engine = 0, [switch]$file,
             [switch]$list, [switch]$buffer,
             [int]$volume = 85)
    {
      # Создаем объект
      $oVoice = New-Object -com "SAPI.spvoice"
    
      # Если требуется вывести список голосов
      if($list)
      {
        Write-Output "Установленные в системе голоса: "
        $i = 0
        Foreach ($Token in $oVoice.getvoices())
        {
          Write-Host $i - $Token.getdescription()
          $i++
        }    
      }
      # Если требуется проговорить
      else
      {
        # Получаем текст из файла, если задан переключатель
        if($file){ $toSpeechText = Get-Content $inputString}
        # Проговариваем текст из буфера обмена (требует режима sta)
        elseif($buffer){
         $null = [reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
         $toSpeechText = [Windows.Forms.Clipboard]::GetText() }
        # Используем полученную строку, если переключатель не задан
        else{ $toSpeechText = $inputString}
        
        # Воспроизводим
        $oVoice.rate = $speed
        $oVoice.volume = $volume
        $oVoice.voice = $oVoice.getvoices().item($engine)    
        $oVoice.Speak($toSpeechText)
      }
    }
    

    Что умеет функция?

    Можно вывести список установленных в системе голосов. Существует достаточно большое количество самых разных голосов, в том числе умеющих читать русский текст. У меня как основной установлен голос Алёна, который вполне успешно прошел проверку чтением статей из википедии и художественной литературы. В качестве последней использовался короткий ироничный рассказ Гарри Гаррисона «Абсолютное Оружие», взятый в Библиотеке Мошкова. Благодаря голосу сразу удалось найти несколько опечаток в тексте и понять необходимость расстановки буквы «ё», в остальном же, чтение было впечатляющим. Итак, чтобы получить список голосовых движков, нужно вызвать:

    astSpeak -l 
    

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

    
    astSpeak «Привет! Меня зовут Алёна, я голос твоего компьютера!» 
    

    Можно прочитать текстовый файл. Для этого следует указать соответствующий ключ и путь к нужному файлу. Например, так:

    astSpeak -f «D:\Библиотека\Редъярд Киплинг\Заповедь.txt»
    

    Да… пожалуй, доверять Алёне стихи больше не будем :)

    Можно прочитать текст, содержащийся в буфере обмена. С реализацией этого существуют некоторые сложности, так как специальный командлет был исключен из пакета поставки PowerShell, а получить доступ к буферу средствами .NET можно только в режиме sta (Single Threading Apartment), а консоль PowerShell запускается в режиме mta по-умолчанию. В режиме mta работает по-умолчанию ISE. Но это не проблема, достаточно в свойствах ярлыка консоли прописать соответствующий ключ:

    Итак, если позволяет режим консоли, выглядеть это будет так:

    astSpeak -b
    

    Самое страшное — если там был URL.

    При вызове любого режима, предполагающего воспроизведение речи (ну, то есть кроме перечисления голосовых движков), можно также задать скорость речи, громкость голоса и номер звукового движка. Чтобы, например, услышать слово «привет» в исполнении Катерины (движок номер 1), громкостью, установленной на 85/100 и со слегка увеличенной скоростью, нужно ввести следующую команду.

    astSpeak -e 1 -v 85 -s 3 «Привет» 
    

    В общем, все действительно просто! Если у вас есть какие-то комментарии, советы или вы знаете как можно все это улучшить, буду очень рад вас услышать.

  • Первое правило разработчика by Ast

    Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live
    Damian Conway
  • Весна by Ast

    Весна