SharePoint позволяет добавлять свои шаблоны страниц. Рассмотрим создание своей master page в VisualStudio 2010 в виде модуля, который можно подключить к SharePoint серверу.
воскресенье, 1 апреля 2012 г.
SharePoint: Авторизация на site collection с localhost
По умолчанию нельзя залогиниться на SharePoint site collection с той же машины где установлена коллекция. Для исправления этого нужно внести изменения в LSA (local security authority) policy. Разрешить авторизацию с localhost.
Запускаем
В ветке
Источник
Запускаем
regedit.exe
с администраторскими правами.В ветке
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
создаём новое поле типа DWORD (32-bit) с именем DisableLoopbackCheck
. И устанавливаем его значение в 1.Источник
пятница, 24 февраля 2012 г.
Android: использование NDK
При разработке приложений под Android можно использовать C/C++. Это даёт возможность использовать существующие наработки и библиотеки написанные на C. Создавать свой, более быстрый чем Java, код. Далее рассмотрим использование C++ кода в Android проекте, на примере простейшего приложения, с применением Eclipse под Windows.
суббота, 11 февраля 2012 г.
XNA: динамическое создание шейдеров
В четвёртой версии XNA Microsoft предлагает создание шейдеров только на стадии компиляции, путём помещения fx-файлов в директорию ресурсов и последующей загрузки уже скомпилированного шейдера в эффекте из ресурсов.
Если есть потребность создания шейдеров в рантайме придётся прибегнуть к громоздкой и медленной процедуре. Поэтому лучше использовать обычный способ загрузки шейдеров из ресурсов.
Далее описание динамического создания шейдера.
var effect = Content.Load<Effect>( Path.Combine(Directories.ContentDirectory, "ShaderFileName"));
Если есть потребность создания шейдеров в рантайме придётся прибегнуть к громоздкой и медленной процедуре. Поэтому лучше использовать обычный способ загрузки шейдеров из ресурсов.
Далее описание динамического создания шейдера.
вторник, 31 января 2012 г.
Android: скрываем адресную строку у WebView
По умолчанию у WebView всегда присутствует адресная строка. Для того чтоб убрать её нужно так же, как и при перехвате ошибки загрузки страницы, заменить WebViewClientна свой.
Использование:
private class MyWebViewClient extends WebViewClient { /** Remove address bar */ @Override public boolean shouldOverrideUrlLoading( WebView view, String url ) { view.loadUrl(url); return true; } }
Использование:
this.webView.setWebViewClient( new MyWebViewClient() );
воскресенье, 29 января 2012 г.
Визуальное представление SQL запросов с JOIN
Использование JOIN в SQL запросах гораздо проще понять если отобразить их в диаграммах Эйлера-Венна. Когда я изучал SQL мне попались только англоязычные материалы. Ligaya Turmelle и Jeff Atwood. Надеюсь этот материал поможет русскоязычным коллегам.
Для экспериментов используется две таблицы.
Таблица А:
Таблица B:
Выбираются строки из таблицы A и B, в которых есть одинаковые ключевые значения и в таблице A и в таблице B.
Для экспериментов используется две таблицы.
Таблица А:
create table `tableA` ( `id` int, `name` varchar(30) ); insert into `tableA` ( `id`, `name` ) values ( 1, 'Pirate' ), ( 2, 'Monkey' ), ( 3, 'Ninja' ), ( 4, 'Spaghetti' );
+------+-----------+
| id | name |
+------+-----------+
| 1 | Pirate |
| 2 | Monkey |
| 3 | Ninja |
| 4 | Spaghetti |
+------+-----------+
Таблица B:
create table `tableB` ( `id` int, `name` varchar(30) ); insert into `tableB` ( `id`, `name` ) values ( 1, 'Rutabaga' ), ( 2, 'Pirate' ), ( 3, 'Darth Vader' ), ( 4, 'Ninja' );
+------+-------------+
| id | name |
+------+-------------+
| 1 | Rutabaga |
| 2 | Pirate |
| 3 | Darth Vader |
| 4 | Ninja |
+------+-------------+
1. INNER JOIN
select * from tableA inner join tableB on tableA.name = tableB.name;
+------+--------+------+--------+
| id | name | id | name |
+------+--------+------+--------+
| 1 | Pirate | 2 | Pirate |
| 3 | Ninja | 4 | Ninja |
+------+--------+------+--------+
Выбираются строки из таблицы A и B, в которых есть одинаковые ключевые значения и в таблице A и в таблице B.
Media Queries для определения iOS устройства
Используя Media queries по размеру экрана можно определить на какое iOS устройство загружена страница.
/* Desktop large × large */ @media all and (min-device-width: 1025px){ body:before{ content:"Desktop"; } } /* iPad 1024 × 768 */ @media all and (max-device-width:1024px) and (min-device-width:481px) and (orientation:landscape){ .ipad:before{ content:"iPad landscape"; } } @media all and (max-device-width:768px) and (min-device-width:321px) and (orientation:portrait){ .ipad:after{ content:"iPad portrait"; } } /* iPhone retina 640 × 960 */ @media all and (-webkit-min-device-pixel-ratio: 2) and (max-device-width:480px) and (orientation:landscape){ .iphone-retina:before{ content:"IPhone Retina landscape"; } } @media all and (-webkit-min-device-pixel-ratio: 2) and (max-device-width:320px) and (orientation:portrait){ .iphone-retina:after{ content:"IPhone Retina portrait"; } } /* iPhone 320 × 480 */ @media all and (max-device-width:480px) and (-webkit-max-device-pixel-ratio: 1) and (orientation:landscape){ .iphone-tft:before{ content:"IPhone TFT landscape"; } } @media all and (max-device-width:320px) and (-webkit-max-device-pixel-ratio: 1) and (orientation:portrait){ .iphone-tft:after{ content:"IPhone TFT portrait"; } }Источник
пятница, 27 января 2012 г.
Android: перехват ошибок загрузки страницы в WebView
Для того чтоб узнать, что WebView не смог загрузить страницу, нужно заменить его WebViewClient на свой.
Создаём наследника от класса WebViewClient с обработчиком ошибки загрузки.
/** Custom WebViewClient class */
private class MyWebViewClient extends WebViewClient {
/** Handler load page error */
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
// TODO: Action on error
super.onReceivedError(view, errorCode, description, failingUrl);
} // onReceivedError()
}
И устанавливаем новый WebViewClient в WebView.
Создаём наследника от класса WebViewClient с обработчиком ошибки загрузки.
/** Custom WebViewClient class */
private class MyWebViewClient extends WebViewClient {
/** Handler load page error */
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
// TODO: Action on error
super.onReceivedError(view, errorCode, description, failingUrl);
} // onReceivedError()
}
И устанавливаем новый WebViewClient в WebView.
this.webView.setWebViewClient( new MyWebViewClient() );
Android: hide scrollbar in webview
В WebView старых версий Android по умолчанию всегда присутствует полоса скроллинга, даже когда она не нужна и уменьшает рабочую площадь контрола.
Отключение полос прокрутки делается в свойствах .setVerticalScrollBarEnabled и .setHorizontalScrollBarEnabled.
Пример использования:
// Disable scrollbars
this.webView.setVerticalScrollBarEnabled(false);
this.webView.setHorizontalScrollBarEnabled(false);
Отключение полос прокрутки делается в свойствах .setVerticalScrollBarEnabled и .setHorizontalScrollBarEnabled.
Пример использования:
// Disable scrollbars
this.webView.setVerticalScrollBarEnabled(false);
this.webView.setHorizontalScrollBarEnabled(false);
воскресенье, 22 января 2012 г.
XNA: вывод текста системными шрифтами
XNA предполагает вывод текста только заранее подготовленными растровыми шрифтами. И это правильно. Быстро, не зависимо от ОС, предсказуемые размеры текста.
В моём случае требовалось совершенно противоположное. Произвольный выбор гарнитуры и размера шрифта, и низкие требования к производительности. Задача оказалась довольно трудной. Информации в интернете оказалось мало и она была крайне разрознена.
iText: пишем в PDF по-русски
Задача: создавать PDF-документ с использованием библиотеки iText. При этом пользователь должен сам задавать используемые шрифты, из установленных в системе. Шрифты как TrueType так и Type1.
В iText есть статический класс предоставляющий доступ к системным шрифтам FontFactory. При получении шрифта нужно правильно указать его кодировку. Тут и возникли проблемы. Для ТТ и Т1 кодировки разные, и в .NET нет штатных средств позволяющих отличить ТТ-шрифт от Т1.
Eclipse: создание APK для загрузки на Android market
При создании Android приложения в Eclipse в директории bin/ проекта создаётся apk-файл. Но этот файл не предназначен для загрузки на Android market. Для получения релизного файла нужны специальные действия.
Android приложение: убираем титул и строку статуса
Убрать отображение титула приложения и строки статуса в Android приложении можно двумя способами.
Windows: использование UTC времени в BIOS
По умолчанию Windows считает, что системные часы машины использую местное время. Linux и MacOS предполагают, что система использует UTC время. В результате, если на машине установлено несколько несколько операционных систем, то при перезагрузке в другую ОС получаем неверное текущее время. Проблема частично решается настройкой NTP-клиента, но для этого требуется доступ к сети и время на синхронизацию.
К счастью есть идеологически верный способ решения проблемы. Можно указать Windows, чтоб она использовала значение времени BIOS, как UTC время.
Запускаем regedit.exe с администраторскими правами.
В ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation создаём новое поле типа DWORD (32-bit) с именем RealTimeIsUniversal. И устанавливаем его значение в 1.
Теперь при переключении из Windows в другую ОС и обратно, часы будут показывать верное время.
Установка Android Development Tools
Для разработки Android приложений в Eclipse (создание, отладка, тестирование) требуется добавить в IDE плагин Android Development Tools (ADT).
Установка и настройка плагина:
Установка и настройка плагина:
Установка Android SDK на Windows
Для разработки приложений под Android требуется Android SDK. SDK включает в себя необходимые библиотеки, инструменты и эмулятор устройств с Android.
Распространяется бесплатно. Забрать можно здесь http://developer.android.com/sdk/index.html
Распространяется бесплатно. Забрать можно здесь http://developer.android.com/sdk/index.html
Установка IDE Eclipse на Windows
Eclipse бесплатен для использования.
Скачать пакет можно от сюда http://www.eclipse.org/downloads
Для разработки под Android подходят оба варианта пакета для разработки на Java. Eclipse IDE for Java Developers или Eclipse IDE for Java EE Developers.
Подписаться на:
Сообщения (Atom)