Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-04-30

TV online

Телевизор это зло. И сегодня я еще раз в этом убедился.

Есть такой проект FreetuxTV. Построен поверх VLC и позволяет смотреть веб-TV и слушать веб-радио.

Установить FreetuxTV легко (рецепт для Debian):
su -l
aptitude install gcc make autoconf automake intltool libtool gettext libgtk-3-dev libdbus-glib-1-dev libsqlite3-0 libsqlite3-dev libcurl3 libcurl4-openssl-dev libvlc-dev libnotify-dev
mkdir -p '/usr/local/share/freetuxtv/images/channels'
su -l valik

pushd ~/t
wget https://freetuxtv.googlecode.com/files/freetuxtv-0.6.6.tar.gz
tar xvfvz freetuxtv-0.6.6.tar.gz
cd freetuxtv-0.6.6
./autogen.sh
./configure --prefix=/usr/local
make
sudo checkinstall -D

freetuxtv

Программа запускается, работает. Но 90% перечисленных в списке станций вещания — не показывают ничего.
Телевизор это зло. Фтопку.

Информация получена тут:




original post http://vasnake.blogspot.com/2014/04/tv-online.html

2014-04-29

Python print unicode string

Питонисты, сколько раз вы наблюдали сообщения типа
UnicodeEncodeError: 'ascii' codec can't encode characters in position
пытаясь просто распечатать текст в консоль, типа
print u"это строка в юникоде"
Если многократно, как я, то это значит, что нынче нам можно вздохнуть с облегчением. С версии 2.6 Python поддерживает переменную среды
PYTHONIOENCODING
с помощью которой можно задать не опостылевшую ascii содировку по умолчанию, а ту, что надо. Для линуксов это любезная UTF-8.

Короче, вот код на Python (допустим, в файле test.py), который вызывает ошибку, печатая Unicode в консоль:
#!/usr/bin/env python
# -*- mode: python; coding: utf-8 -*-
print u"это строка в юникоде"
Чтобы этот код отработал без ошибок, примените сниппет из bash скрипта.

Скрипт для запуска этого кода с установленной правильной кодировкой ввода/вывода:
#!/usr/bin/env bash
export PYTHONIOENCODING=UTF-8
python -u test.py


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


original post http://vasnake.blogspot.com/2014/04/python-print-unicode-string.html

2014-04-28

Стеганография

Тучи сгущаются над Средиземьем. Правительства пытаются контролировать всё, до чего могут дотянуться. Как страшно жить...

Известно ли вам, что такое стеганография?

Ну вот, еще один (сырой пока) продукт для стеганографии:

В рамках проекта DarkJPEG разработан стеганографический веб-сервис нового поколения, позволяющий скрывать конфиденциальную информацию в виде незаметного шума в JPEG-изображениях, при этом выделить данную информацию можно только зная заданный при кодировании секретный ключ-пароль. Проект разработан с целью реализации свободы информации людьми в тех странах, которые нарушают права человека, вводя цензуру средств информации или законодательно запрещая использование криптографии.
Сервис использует стойкие методы стеганографии для сокрытия самого факта сокрытия информации вместе со стойкими методами криптографии для защиты данных, передаваемых по открытым каналам, от компрометации (факта доступа посторонних лиц). Исходные тексты проекта распространяются в рамках лицензии MIT.


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

Я, правда, за 5 минут не смог понять, как мне спрятать текст в картинку и вынуть потом его обратно. UI очень загадочен, настоящее новое поколение :)



original post http://vasnake.blogspot.com/2014/04/blog-post_28.html

2014-04-25

Мафиозо

Намедни отсмотрел фильму Мафиозо, что на IMDB показано как Mafioso (1962).
Честно скажу, если бы не Олег (http://bocharoff.livejournal.com/508337.html), наверное никогда бы этой фильмы не увидел.

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


Несколько затянули середину, но, в целом, очень хорошо. Рекомендую.


original post http://vasnake.blogspot.com/2014/04/blog-post_25.html

2014-04-24

WYSIWYG

Веб-редакторы все ближе и ближе подбираются к офлайновым старшим братьям. В смысле, возможности и user experience всяких TinyMCE и подобных всё чаще навевают на мысль — а нафига мне на десктопе полновесный офисный пакет?

Вот смотрите, ребята из Quintagroup сваяли addon для Plone. С помощью этого аддона мы можем добавлять картинки в редактируемые в CMS статьи простым Ctrl-C, Ctrl-V или drag-n-drop:

Collective.clipboardupload is a Python package, developed to simplify the process of inserting images into visual editor without the need to upload the image.






original post http://vasnake.blogspot.com/2014/04/wysiwyg.html

2014-04-23

apt-get update

Случилась тут намедни неприятность, отключили в доме электричество на какое-то время. Я не знаю на какое, я спал. Разбудил меня своим пищанием UPS. Обычно как — напряжение в сети скакнет, UPS пискнет и все возвращается в норму. А так, чтобы пищать несколько минут — такого очень давно не было.
Ну, я поднялся, выключил единственную нагрузку на UPS, торрентомашинку, и обратно спать завалился.

Днем, в свободную минутку, решил накатить обновления на торрентомашинку, разу уж все равно перезапускать пришлось. Я на нее ставил Debian testing.
Заряжаю обновления
aptitude update; aptitude safe-upgrade; aptitude full-upgrade
а мне отвечают
SourcesIndex: Hash Sum mismatch
и так, «Hash Sum mismatch» для трех или четырех источников. Ой.

To make long story short, лечить это надо так:
    aptitude clean
    apt-get clean
    rm -rf /var/lib/apt/lists/*
    rm -rf /var/lib/apt/lists/partial/*
    apt-get clean
    apt-get update
    apt-get upgrade
    aptitude update; aptitude safe-upgrade; aptitude full-upgrade



original post http://vasnake.blogspot.com/2014/04/apt-get-update.html

2014-04-22

ОРФО

Уже несколько лет я пользуюсь альтернативным офисным пакетом — LibreOffice. А куда деваться? Дома Linux, на работе Linux — полноценных офисных пакетов практически нет. Лично меня вполне устроил бы редактор класса Wordpad, но постоянно приходится работать с документами, которые мне присылают в форматах MS Office. Такой у нас нынче стандарт электронного делопроизводства, не смотря на громкие заявления правительства о переходе на Открытые системы.

Поэтому работал я сперва с OpenOffice, потом (и сейчас) с LibreOffice. Но фишка не в этом. Фишка в том, что периодически надо проверять орфографию и грамматику текстов. И вот тут появляется подарок:

Система ОРФО включает в себя не только нормативную проверку орфографии русского языка, но и самую точную и полную систему проверки грамматики и стиля русского языка.
Предлагаем Вам протестировать плагин проверки орфографии, грамматики и стиля русского языка для Libre/OpenOffice.
На сегодняшний день ОРФО умеет распознавать более 23 221 типа грамматических и стилистических ошибок (примеры ошибок можно найти ниже в отчете о тестировании).
...
В русской сборке Libre/OpenOffice встроенные средства проверки грамматики и стиля русского языка просто отсутствуют! Встроенные средства проверки орфографии русского языка в Libre/OpenOffice есть, но словари, по которым происходит проверка, очень маленькие и содержат большое количество ошибок. Не проверяется сочетаемость и согласованность частей сложных слов, написанных через дефис, а также содержатся другие ошибки.
Плагин проверки ОРФО содержит в своем составе модуль проверки орфографии русского языка, разработанный в сотрудничестве с Институтом русского языка имени В.В. Виноградова в соответствии со всеми действующими рекомендациями орфографической комиссии РАН. В плагине реализован интеллектуальный механизм многоместной подсказки для слов с ошибками.
Есть lite-версия плагина ОРФО, которая умеет проверять только орфографию. Lite-версия бесплатна для личного некоммерческого использования, и ее можно скачать тут:



С учетом уровня грамотности современников, вещь в хозяйстве не лишняя :)


original post http://vasnake.blogspot.com/2014/04/blog-post_22.html

2014-04-21

Cocktail party problem

От нечего делать пошел я в университет, учиться.
Stanford University, Machine Learning, https://www.coursera.org/course/ml
Курс рассчитан на 10 недель.

В одной из вводных лекций рассказали нам, студням, про задачу из разряда Unsupervised Learning — задача типа Проблема Коктейльной Вечеринки (Cocktail Party Problem). Суть в том, что по комнате рассредоточены болтающие люди; также по комнате расставлены микрофоны, записывающие всё, что смогут. Задача в том, чтобы выделить из записей конкретного спикера.

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

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

Впечатляет.


original post http://vasnake.blogspot.com/2014/04/cocktail-party-problem.html

2014-04-18

VBoxManage: error

И дома и на работе я пользуюсь виртуальными машинами VirtualBox. Удобно.
Но иногда попадаются неприятные сюрпризы. Например, вчера, после сбоя питания в офисе, я, пытаясь запустить виртмашину, получил сообщение:
VBoxManage: error: The VM session was closed before any attempt to power it on
Хрен его знает, что это значит.

Подозреваю, что UPS вырубил хост-машину раньше, чем успела сохраниться виртуалка. В скрипте останова хоста есть такой пассаж:
VBoxManage --nologo controlvm "site" savestate
Вот этот savestate, видимо, и не отработал до победного конца.

Но дело не в этом, дело в том, что я не могу запустить виртмашину! Команда
VBoxManage startvm "site" --type headless
выдает уже упомянутое сообщение, ясно и четко рассказывающее, что же именно поломалось (сарказм).

Короче, после серии попыток, методом тыка был нащупан вариант, приводящий виртмашину к рабочему состоянию:
VBoxManage discardstate "site"

Надо будет проверить UPS.



original post http://vasnake.blogspot.com/2014/04/vboxmanage-error.html

2014-04-17

Flesh and Blood 1985

Намедни смотрел фильму «Плоть и кровь», что в оригинале Flesh and Blood (1985).
В этой фильме ровно три, нет — четыре замечательных момента.

1. Директор картины небезызвестный Paul Verhoeven.
2. Главгероя (или главгада, сразу не догадаешься) изображает мой любимый актер Rutger Hauer.
3. Фильм настолько нашпигован кровякой, кишками, грязью и прочей чернухой, что даже смешно становится местами.
4. Замечательный характер главной героини, позволяющей ей выжить и даже неплохо устроиться, попавшись в руки головорезов.

А в целом филь — дерьмо во всех смыслах. Как и жизнь в целом. Смотреть не советую.

Хотя, если вы натуралист и в вас силен энтомологический интерес, тогда да, смотрите. Ну или как я, из принципа — если фильм Верхувена, с Рутгером в главной роли — надо смотреть.


original post http://vasnake.blogspot.com/2014/04/flesh-and-blood-1985.html

2014-04-16

Virtualbox lock

Как потратить час времени на ожидание недостижимого.

Сегодня я делал резервную копию виртуальных машин Virualbox. Казалось бы, чего сложного: остановил вирмашины, зашел в консоль сервера и выдал заклинание:
rm xmail.ova; VBoxManage export xmail -o ./xmail.ova
VBoxManage startvm xmail --type headless
И так для двух машин подряд.

Первая экспортировалась и запустилась. На это ушло минут 15.
А вот вторая застряла на первом шаге. Показывает процент выполнения чуть более 0% и молчит. Думает?
Ну, процесс экспорта вообще не быстрый, я подождал. Потом еще подождал. Через полчаса мне надоело, я убил процесс. Что характерно, комбо Ctrl-C не работает. Пришлось выдать
killall VBoxManage
После чего запустил экспорт еще раз. Та же фигня — нет прогресса.
Размер файла ova не растет, загрузки процессора нет. Что такое?

Что-то надоумило меня посмотреть, что со свободным местом происходит
df -h
и тут же стало понятно, в чем проблема. На разделе нет свободного места. Было 14 гигабайт, да их сожрал предыдущий экспорт. Оставались копейки, их быстро забирал второй экспорт, после чего процесс зависал в ожидании хз чего. Висит, молчит, ничего не говорит — сами догадайтесь.

Ну, я догадался, сделал экспорт на другой раздел, где места больше. Стал запускать виртмашину:
VBoxManage startvm anothervm --type headless
Бац! Хрен в рыло. Ошибка типа «locking of attached media failed».
Ну понятно, когда делал killall VBoxManage, где-то зависла блокировка. Тут я потерял еще полчаса времени, пока искал ответ — как снять блокировку и таки запустить виртмашину.

Сработал следующий метод: остановить все виртмашины на хосте, посмотреть вывод команды:
ps -aux|grep VBox
Если есть еще процессы — значит пациент болен.
Лекарство такое — убить блокировки, убить остатки служб Виртбокса:
rm /tmp/.vbox-resetwin-ipc/lock
rm /tmp/.vbox-resetwin-ipc/ipcd
killall VBoxSVC
В этом примере «resetwin» это имя пользователя, под которым работает Виртбокс.
Теоретически, должен помогать рестарт хоста или служб Виртуалбокса. Но это я не проверял, успокоился на том, что после приведенных команд все нужные вирмашины запустились.



original post http://vasnake.blogspot.com/2014/04/virtualbox-lock.html

2014-04-15

Где платят хорошо

Тут Блогератор задорную статью задвинул, про зарплаты программеров в США:

Делая эту историю короче, перематываю рассказ ближе к результатам этого увлекательного колупания в чужих карманах: согласно анонимным источникам популярного ресурса Glassdoor.com, программисты, работающие на Google, чаще всего зарабатывают «чистыми» около $145 тыс. долларов в год. Правда, кроме самой зарплаты, им дополнительно выплачиваются самые разные бонусы, доплаты и опционы (stock grants). Общая формула дохода любого гуглера может быть сведена к такой формуле:
Total compensation = salary + stock options + bonus
Итак, для начинающего свою карьеру в компании новичка (Google Junior SWE) примерная вилка его доходов будет такова:
Если просуммировать по абсолютному максимуму все параметры-составляющие, то выйдет в самом лучшем случае почти 1 млн долларов (с учетом средних налогов ~ $700K), что также весьма не кисло.


Неплохо для джуньора.

А вот какие перспективы прорисовываются:

Язык R, базы NoSQL, средства MapReduce — вот первая тройка.
Кто хочет быть в обойме — приступайте к осваиванию этих замечательных инструментов.



original post http://vasnake.blogspot.com/2014/04/blog-post_15.html

2014-04-14

All the Pretty Horses

Отсмотрел фильму All the Pretty Horses (2000). По русски фильма называется «Неукротимые сердца», что очень странно. Ибо неукротимое сердце во всем фильме только одно. В принципе, было второе, но его отстрелили еще до совершеннолетия и до середины фильмы. А вот лошадок в фильме много.

Сразу скажу — фильма хорошая. Как кто-то справедливо заметил, в кино главное — хорошо рассказанная хорошая история. Тут это есть в полной мере. История — драма про молодого ковбоя (Matt Damon), который внезапно потерял дом и ранчо с любимыми лошадками, после чего решил податься в Мексику, где поимел и войну и любовь и все остальное. Рассказано, в смысле — показано, тоже хорошо, не хрен собачий а Billy Bob Thornton директором работал.

Короче, рекомендую к просмотру.



original post http://vasnake.blogspot.com/2014/04/all-pretty-horses.html

2014-04-11

openQRM

openQRM is a free and open-source cloud computing management platform for managing heterogeneous data center infrastructures. The openQRM platform manages a data center's infrastructure to build private, public and hybrid IaaS (Infrastructure as a Service) clouds.

На howtoforge есть статья, в которой пошагово показано, как использовать openQRM для подготовки хоста, создания и запуска виртуальной машины QUEMU/KVM. Вся статья состоит из огромного количества скриншотов и небольшого количества текста. И это правильно, ибо openQRM дает нам возможность управления виртуальными машинами не выходя из веб-интерфейса управлятора инфраструктурой.

В статье показаны следующие шаги:

Install openQRM 5.1 on Debian Wheezy

Set a custom Domain name
Enabling Plugins
Create the Virtualization Host Object
Create a LVM Volume Group

Create one or more network bridges
Create a LinuxCOE automatic-installation template

Create a new KVM Virtual Machine

Install the 'openqrm-local-vm-client'
Create additional KVM VMs by cloning/snapshotting the Volume

Вполне достойно. Предлагаю в качестве «домашнего задания» изучить разворачивание контейнеров LXC методом openQRM.



original post http://vasnake.blogspot.ru/2014/04/openqrm.html

2014-04-10

Шаблоны проектирования

Шаблоны проектирования в том смысле, что это software design patterns.

Как правильно замечено, design patterns облегчают общение программистов — вместо того, чтобы долго объяснять «берем вон ту загогулину и пихаем ее в эту заковырину», достаточно сказать нечто типа «а тут мы применим шаблон делегирования», и тебя поймут. И что немаловажно, поймут правильно.

С другой стороны, изучение шаблонов проектирования позволяет получить представление о best practices при решении разных программерских задачек. Нет нужды изобретать велосипеды — все уже изобретено, причем неоднократно :)

Лично я полагаю, что design patterns это обоюдоострое оружие. Можно легко пораниться. Посмотрите, к примеру, на Zope. Сделано как в лучших домах — по всем правилам и паттернам. С точки зрения надежности, применимости и расширяемости — все прекрасно. Архитектура на ять. Но каково человекам, которые пытаются разобраться в этом хитровыебанном сплетении миллионов интерфейсов, адаптеров, утилит и прочих сервисов? Инструмент прекрасен, архитектура бесподобна, но никто не пользуется, ибо проще сделать что-то свое, с блекджеком и шлюхами, чем разобраться в том, как правильно использовать Zope.

Или вот, замечено, что некоторые шаблоны просто не нужны, если использовать правильный язык программирования:
Peter Norvig demonstrates that 16 out of the 23 patterns in the Design Patterns book (that is primarily focused on C++) are simplified or eliminated (via direct language support) in Lisp or Dylan.

Тем не менее, design patterns необходимо изучать и применять на практике.
Поэтому — вот нам, питонистам, набор ресурсов для изучения:

Коллекция модулей Python с шаблонной реализацией шаблонов (хаха) https://github.com/faif/python-patterns

Несколько более структурированная коллекция модулей Python, человек книгу пишет https://bitbucket.org/davidcorne/design-patterns-in-python/src
И набор блогостатей от автора http://davidcorne.com/category/design-patterns-in-python/




original post http://vasnake.blogspot.ru/2014/04/blog-post_10.html

2014-04-09

SharePoint workflow

Многие разработчики наверняка будут удивлены, если не возмущены, но факт остается фактом — есть заметное количество потребителей IT услуг, которым лучше всего подходит MS SharePoint как интеграционная платформа.
Почему? Потому, что MS, при всех своих недостатках, довольно четко (раньше, во всяком случае) выдерживала ориентацию на тех пользователей и потребителей, которым ничего сложнее «мышиного» UI не хочется (и не нужно).

Что такое мышиный UI? Это когда человек держит в одной руке компьютерную мышь, другой рукой удобно подпирает свою головушку и вдумчиво возюкает курсором по экрану. При этом умудряется делать необходимые вещи, решая какие-то свои задачи.

Вот, к примеру, возьмем такую хреновину как workflow в SharePoint. Воркфлоу часто нужен как инструмент интеграции чего-то с чем-то — данные перекачать из системы в систему, показать на портале сводку по неким данным и проч.
Можно взять программиста, поставить ему задачу и, в зависимости от сложности задачи и квалификации программера, через неделю-другую что-то может быть появится.

Две недели хорошего программера нынче стоят 1000 евро.
А такую штуку как Nintex Workflow можно купить за что-то вроде 5000 евро. При этом, освоив мышиный интерфейс Nintex, любой может построить себе нужный воркфлоу из кубиков. Типа Лего. И программист становится не нужен.
Экономию считайте сами.


Опыт работы с Nintex Workflow for SharePoint 2010 http://habrahabr.ru/post/138860/


я его не видел, но говорят, что вещь замечательная, особенно в тех случаях, когда воркфлоу падает. Упавший процесс не обязательно перезапускать с начала, можно продолжить с места падения. Ибо процесс не столько падает, сколько зависает/останавливается.


original post http://vasnake.blogspot.ru/2014/04/sharepoint-workflow.html

2014-04-08

BigData & ArcGIS

Модная тема, что уж там — BigData. А в сочетании с пространственной привязкой (geolocation) — вообще на переднем краю прогресса.

In the GIS tools for Hadoop, we store and retrieve feature classes in Esri JSON or GeoJSON formats to and from HDFS. This post is about a set of experiments in different storage and serialization technics of feature classes. The two environments I evaluated are Apache Avro and Parquet. All the source code can be found here.


Мансур рассказывает об очередной серии экспериментов: он попробовал сериализацию данных от Apache Avro и хранилище от Parquet выполняя загрузку фичеклассов в HDFS; MapReduce задачи по кластеризации фичей; с помощью Hive делая выборки данных SQL-подобными запросами; при выборке использовал User Defined Functions.

Ему понравилось:
Twitter is so impressed with Parquet that they are already moving it into production - I like Avro, as it enables a future proof schema changes - after all you cannot "readjust" your data to fit a new schema when it is in the petabytes :-)




original post http://vasnake.blogspot.ru/2014/04/bigdata-arcgis.html

2014-04-07

Sharepoint External List

Последовательность действий, необходимых для создания в Шарепойнте (Sharepoint Foundation 2013) элемента типа “Внешний список” (External List).
Названия таблиц, БД и прочих объектов даны для тестового набора данных, сделанного в ходе эксперимента.

Внешний список - это отображение в виде Списка Шарепойнта таблицы из SQL DB.

Для создания Внешнего списка нужно следующее:
1. Доступ к веб-управлятору Шарепойнта, типа: http://servwf:31505/default.aspx
2. Доступ к программе Шарепойнт Дизайнер, скачать можно тут http://www.microsoft.com/en-us/download/confirmation.aspx?id=35491
3. Business Data Connectivity (BDC) Metadata Store - это службы в Шарепойнте.
4. Для BDC требуется Secure Store - тоже службы в Шарепойнте.

Если все это есть (если нет, см.ниже), процедура создания Внешнего списка такова:

1. Открыть Шарепойнт Дизайнер и открыть в нем сайт http://servwf/
2. В левой панели “Навигация” щелкнуть “External Content Types”.
3. В появившемся риббоне щелкнуть кнопку “New External Content Type”.
4. В появившейся панели создания нового Внешнего Типа задать параметры:
а. имя
б. External System
External System - это настройка связи с базой данных. Рассмотрим внешнюю систему подробнее:

При нажатии на кнопку (в виде ссылки) External System - откроется панель Operation Designer. В этой панели надо нажать кнопку Add Connection.
Откроется список выбора Data Source Type, где надо выбрать значение SQL Server.
Откроется окошко задания параметров соединения. Задать
Database Server: servsql2
Database Name: sql2sp
Connect with User’s Identity
После подтверждения этих параметров, в панели, в списке Data Source Explorer, появится древообразное представление содержимого БД.
В этом дереве надо выбрать таблицу - tab2sp, щелкнуть по ней ПКМ и выбрать сначала New Read Item Operation, потом New Read List Operation. Не обращайте внимания на то, что пункты меню выглядят неактивными.
В обоих случаях откроется “визард” задания свойств операции. В панелях визардов надо выбрать нужные поля таблицы и включить для них галочки Map to Identifier. В визарде для списковой операции надо указать для хотя бы одного поля галочку Show in Picker.
Следует знать, что нельзя использовать текстовые поля “неопределенной” длины и поля в которых есть значения NULL.

После этого можно (и нужно) сохранить созданный Внешний тип, нажав в тулбаре Дизайнера на значок дискетки.

5. Закрыть все вкладки Дизайнера и снова открыть вкладку для Внешних типов, щелкнув в панели Навигация на External Content Types.
6. Справа откроется перечисление Внешних типов, надо выделить мышкой только что созданный Внешний тип.
7. В риббоне нажать кнопку Export BDC Model.
8. В открывшемся окошке экспорта задать имя для модели, подтвердить, подтвердить сохранение на диске файла типа BDCM.
9. Отредактировать полученный файл (в толковом текстовом редакторе, типа Notepad++).

В файле надо найти блок типа
<LobSystemInstance Name="sql2sp">
<Properties>
   <Property Name="AuthenticationMode" Type="System.String">PassThrough</Property>
   <Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>
   <Property Name="RdbConnection Data Source" Type="System.String">servsql2</Property>
   <Property Name="RdbConnection Initial Catalog" Type="System.String">sql2sp</Property>
   <Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property>
   <Property Name="RdbConnection Pooling" Type="System.String">True</Property>
   <Property Name="ShowInSearchUI" Type="System.String"></Property>
</Properties>
</LobSystemInstance>

и заменить его на блок типа
<LobSystemInstance Name="sql2sp">
<Properties>
   <Property Name="AuthenticationMode" Type="System.String">PassThrough</Property>
   <Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>
   <Property Name="RdbConnection Data Source" Type="System.String">servsql2</Property>
   <Property Name="RdbConnection Initial Catalog" Type="System.String">sql2sp</Property>
   <Property Name="RdbConnection Pooling" Type="System.String">True</Property>
   <Property Name="RdbConnection User ID" Type="System.String">sa</Property>
   <Property Name="RdbConnection Password" Type="System.String">тут пароль для учетки sa в БД</Property>
   <Property Name="RdbConnection Integrated Security" Type="System.String">False</Property>
   <Property Name="ShowInSearchUI" Type="System.String"></Property>
</Properties>
</LobSystemInstance>

10. Удалить в Дизайнере созданный Внешний тип и Коннект к БД.
Удаление коннекта к БД делается через трюк - после удаления Внешнего типа надо начать создание нового Внешнего типа, открыть панель подключения к БД (см.выше описание 4.б), в списке Data Source Explorer с помощью ПКМ удалить источник данных.
Закрыть все вкладки без сохранения.

11. Импортировать отредактированный файл BDCM в веб-управляторе Шарепойнта.
Зайти в Управление приложениями http://servwf:31505/applications.aspx
Зайти в Управление приложениями-службами http://servwf:31505/_admin/ServiceApplications.aspx
Выделить службу “Приложение-служба подключения к бизнес-данным” и в риббоне нажать кнопку Управление.
Откроется панель “Сведения о приложении-службе  Имя:  businessdataconnectivity” в риббоне которой надо нажать кнпку Импорт.
Выбрать с диска отредактированный ранее файл и импортировать его.

12. В Шарепойнт Дизайнере обновить (открыть заново) панель External Content Types и выбрать появившийся там Внешний тип.
13. В риббоне нажать кнопку External List.
14. В появившемся окне задать имя и описание для нового Внешнего списка, подтвердить.

Все, внешний список создан. Можно использовать.
В примере урл для списка получился такой http://servwf/Lists/testextlist3/tab2spRead%20List.aspx


Вернемся к началу нашей повести, к списку необходимого при создании Внешних списков. Вероятнее всего у вас будут проблемы с пунктами 3,4.
Это пункты
3. Business Data Connectivity Metadata Store - это службы в Шарепойнте
4. для BDC требуется Secure Store - тоже службы в Шарепойнте

В веб-управляторе зайти в Управление службами на сервере
и включить службы
Служба Secure Store; Служба подключения к бизнес-данным.

Зайти в Управление приложениями-службами
и найти службу “Приложение-служба подключения к бизнес-данным”. Если такой нет, ее надо создать, используя кнопку Создать в риббоне.

Зайти в Управление веб-приложениями
и выделить “Sharepoint 80 http://servwf/”. В риббоне щелкнуть “подключение к службам, управление”. В открывшемся окне “настройки связей для приложений-служб” включить галочки для Secure Store, business data connectivity.

Вероятно, вы столкнетесь с тем, что Secure Store будет ругаться словами типа “что-то не так или закончился срок лицензии”. Не обращайте внимания, это известная бага Sharepoint Foundation.



original post http://vasnake.blogspot.com/2014/03/sharepoint-external-list.html

2014-04-04

SMTP relay

Еще один рецепт конфигурации Postfix SMTP на отправку всей почты через Gmail.

If you want to use a Gmail account as a free SMTP server on your Ubuntu-Linux server, you will find this article useful....

sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
...
vim /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
vim /etc/postfix/sasl_passwd

[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD
sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
...
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
...
sudo /etc/init.d/postfix reload
echo "Test mail from postfix" | mail -s "Test Postfix" you@example.com





original post http://vasnake.blogspot.com/2014/03/smtp-relay.html

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)