|
|
Úvod
ORA-12712 on NLS_CHARACTERSET changing from EE8MSWIN1250 to AL32UTF8
I tried to change character set in my oracle database because of Russian localization, I tried command: ALTER DATABASE CHARACTER SET AL32UTF8; i got this error: ORA-12712: new character set must be a superset of old character set After some googling I found solution, below are the commands executed by me: SQL> SHUTDOWN IMMEDIATE; SQL> CONNECT SYS/password AS SYSDBA; SQL> STARTUP MOUNT; SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER DATABASE OPEN; SQL> ALTER DATABASE CHARACTER...(read more)
27.1.2012 11:37:11
|
AjaxControlToolkit.Binary.NET4
I have fond some unresolved issue in last ASP.NET Ajax Control Toolkit project. I tried use calendar extender with fallowing result: The requested script resource 'Common.Common.js' requires version 'AjaxControlToolkit, Version=4.1.51116.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e' of the ASP.NET AJAX Framework. To use this resource, make sure that the application references version 'AjaxControlToolkit, Version=4.1.51116.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e'. I wasn’t able...(read more)
26.1.2012 11:26:04
|
ora-12154 tns could not resolve the connect identifier specified
Issue : Cant connect from Visual Studio to Oracle DB on Windows 64 bit system Solution : Move Visual Studio from Program Files (x86) to Program Files folder Reason : Oracle driver doesn't accept parenthesis in working path Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!...(read more)
24.1.2012 14:31:00
|
|
Omezení výběru uživatelů v dialogu výběru uživatelů
Celé to začalo podivným chováním úkolů v SharePointu. Jeden uživatel (říkejme mu třeba Karel Novák) měl přiřazeno několik úkolů. O všech mu přišla notifikace, že mu byly přiřazeny, ale některé nemohl měnit z důvodů nedostatku práv. Prostředí bylo nastaveno tak, že právo měnit úkol měl pouze přiřazený uživatel a zadavatel úkolů. Zběžná kontrola úkolů neodhalila nic podezřelého. Oba zkoumané úkoly vypadaly na vlas stejně. Práva byla nastavena automatickým procesem a taky byla stejná. Tedy alespoň na první a druhý pohled. Nakonec jsem si všiml, že problém byl v tom, že není Karel Novák jako Karel Novák. I když byl ve firmě jediný. On totiž měl 2 loginy v různých doménách se stejným jménem. Díky tomu se v dialogu pro výběr uživatele zobrazoval 2x. Pokud ale zadavatel úkolu zadal přesné jméno už v dialogu úkolu a stiskl Ctrl+K tedy ověření, tak ověření prošlo. Ale který z těch dvou účtů byl vybrán, to už se zadavatel nedozvěděl.
Naštěstí s tímto problémem při vývoji SharePointu počítali, takže se dá omezit, ze kterých organizačních jednotek se mají nabízet uživatelé při výběru uživatelů.
Dá se určit organizační jednotka AD, na kterou se má omezit výběr uživatelů:
stsadm -o setsiteuseraccountdirectorypath -path "OU=Sales,DC=ContosoCorp,DC=local" –url http://ServerName
Taky se dá určit, že
- při ověřování jména uživatele (tlačítko Kontrola jmen, nebo Ctrl+K) se mají brát v potaz pouze ti uživatelé, kteří mají přístup k dané kolekci webů:
stsadm -o setproperty –pn peoplepicker-Peopleeditoronlyresolvewithinsitecollection –pv yes –url
<Web application URL>
- ve vyhledávacím dialogu (tlačítko Procházet) se mají brát v potaz pouze ti uživatelé, kteří mají přístup k dané kolekci webů:
stsadm -o setproperty –pn peoplepicker-onlysearchwithinsitecollection –pv yes –url
<Web application URL>
Pokud potřebujete něco sofistikovanějšího, můžete výběr uživatelů z AD omezit pomocí LDAP dotazu:
stsadm –o setproperty –pn peoplepicker-searchadcustomfilter -pv
<LDAP query filter>
-url
<Web application URL>
Kompletní popis najdete na MSDN.
Při praktickém použití je ale nutné udělat ještě jednu věc. Samotné omezení výběru z Active Directory nestačí. Pokud totiž uživatel (resp. jeho login) už v SharePointu figuruje, např. proto, že mu byl přiřazen úkol, práva ... , je v seznamu uživatelů SharePointu. Jako takový je do výsledku vyhledávání v PeoplePickup editoru taky zahrnut, ať už výše uvedeným omezením vyhovuje, nebo ne. Proto je nutné, k tomu abyste se takového loginu zbavili uplně, odstranit ho i z tohoto "seznamu". S tím souvisí další trik. Standardně se totiž k seznamu všech uživatelů pomocí webového UI SharePointu nedostanete. Lze zobrazit jen členy určité skupiny. K tomu slouží stránka s adresou http://server/_layouts/people.aspx?MembershipGroupId=XXX. Parametrem XXX je ID té skupiny. Pokud použijete 0, dostanete seznam všech uživatelů bez ohledu na to členy jakých skupin jsou (pokud vůbec nějakých).
19.1.2012 22:30:00
|
|
Odkazy z prohlížeče – 19.1.2012
CodeProject HW, roboti a udělátka Ostatní
19.1.2012 6:29:47
|
|
Grid–RowDefinitionPattern
Pro usnadnění práce s Gridem mě napadlo takové vylepšení jak si ulehčit práci s definování jednotlivých řádků. Místo definice v XAMLu, jsem si vytvořil vlastní Grid, který má vlastnost RowDefinitionPattern, kterou lze nastavit jednoduše na hodnotu např.": RowDefinitionPattern="50 50 150 20 1 A" (mezera slouží jako oddělovač a hodnoty jsou v celku intuitivní)  Dalším usnadněním, které mě v této souvislosti napadlo bylo automatické generování řádku dle toho v jakém pořadí jsou UIElementy v Gridu: Občas se mi stává, že mám Grid rozdělený na 20 řádků a zrovna poslední řádek potřebuju vložit na první místo. Tzn. přepsat všechny vlastnosti Grid.Row což je velice otravné, obzvlášť když testujete několik variant rozložení jednotlivých prvků. Řešením může být přepsání metody OnInitialized, kde projdeme všechny UIElementy v kolekci Children a inkrementálně nastavíme Grid.Row. UIElementy budou mít tedy číslo řádku právě takové, v jakém pořadí se nacházejí v XAMLu. 
12.1.2012 12:22:23
|
|
WPF 4.5 Developer Preview - Binding to static properties
Určitě se Vám někdy stalo, že jste chtěli použít Binding na statickou vlastnost a ono to jednoduše nešlo. Nyní je vše jinak a velice jednoduše můžete nabindovat cokoli z UI na statickou vlastnost. Notifikace změny statické vlastnosti se může provádět dvěma způsoby: - pomocí static event EventHandler <název-vlastnosti>Changed – pokud máme ovšem více statických vlastností, musíme mít více handlerů.
- nebo pomocí static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged – kde jednoduše předáme pouze název vlastnosti
Další změnou je i syntaxe Bindingu, která využívá klasické závorky: Text="{Binding Path=(local:Class1.Abc)}" Xaml i code-behind je pro oba případy stejný   Add 1.  Add 2. 
12.1.2012 10:55:06
|
|
Odkazy z prohlížeče – 10.1.2012
Codeproject - Using AJAX in asp.net – čistý princip AJAXu bez toolkitu a spol., prostě přímo xmlHTTPrequest
- EnigmaPuzzle for Android – zajímavá hra, princip jako Rubikovka, ale ve 2D
- WPFSpark- 6 of n- FluidProgressBar – další Control pro WPF, inspirovaný ve WP7
- ASM.Net - x86 Emulation – zajímavý nápad, ale asi ne pro praktické využití – zápis akcí/operací přes objekt emulující ASM
- Remote Controlling Instrument Over LAN – Sockety, C#, nastavování Agilent N9010A
- Preprocessor directives in C Sharp – některé se moc neznají, ale proti C/C++ toho stejně tolik neumějí¨
- A Basic 3D Asteroid Game in openGL with C# – dobrý úvod do OpenGL
- Scalable Processor Arrays for Cybernetic Control – pole procesorů PIC, příklad na řešení PID algoritmu
- Wrap Panel Virtualization + příklad ´ve formě “Media Assistant” (knihovna)
- An Adobe style slider control – trochu jiný slider, C++
- Getting most of Kinect SDK in C# - part 2 of – ImageStreams – další pokračování práce s Kinectem
- Building a Client-Side Grid Control using SharpKit – používá jQuery pomocí SharpKit gridu (C# to JS converter)
- Building a Molecular 3D Viewer using WebGL and HTML5
- Custom CSharp Control for Powershell – ukázka integrace PowerShell a WPF
- Enumeration RadioButtion ListBox Control
- A Restaurant and Waiter helper app in WPF and Windows Mobile – sada aplikací pro kuchaře, pokladní (oboje WPF) i číšníka s WinMobile
- Simple Serial Port Monitor – lowlevel C++ aplikace
HW a robotické věci - A Floppy Drive Orchestra – muzika pomocí 8 floppy 3,5” mechanik a zvuku jejich motorků
- Neural networks control a toy car – program běží na mobilním telefonu, využívá obraz z kamery, přimontováno na vozidle
- Programming an Arduino using an audio file – že by inspirace starými 8-bity a programy na mgf kazetě ?
- Augmented reality ex nihilo – poloha objektu dle kamery ARtoolkitu ovládá např. hlasitost v PC
- Rooting a Motorola Actv (Android wristwatch) – i hodinky s Androidem jsou rootnuté
- Self-balancing unicycle only for those with good balance – jednokolka s elektronickou stabilizací
- element14, Atmel a společná podpora AT91SAM9G45 – moc pěkný kit s výkonným ARM9 jádrem – hw.cz
- osPID: the Open Source PID Controller – doplnění k Arduino
- Launchpad MSP430 – Robot – krásný line-follower, základna z CD média, mcuserver.cz
- Distance sensors comparison – starší (2007), ale velmi podrobný přehled senzorů vzdálenosti
- Self Balancing Robot with Wii parts – udržuje rovnováhu podle Wii senzorů
- Easy camera tracking with a quadrocopter – Parrot ARDrone sleduje červený míček – pěkné video
- Colorduino - Make The Difference – destička založená na ATMega328, programovatelné jako Arduino, budič RGB LED matice, možno z toho postavit třeba LED-cube
- Minimalist RGB LED cube has a very short BoM – 4x4x4 RGB LED bez dalšího HW, jen 16 IO z běžného Arduino modulu
- Embedded RTOS for x86 Embedded Systems – On Time RTOS32 založený na podmnožině kernelu Win32 s footprintem 16kB RAM/ROM, vývoj pomocí VS možný
Ostatní
11.1.2012 0:38:17
|
|
WPF 4.5 Developer Preview - Automatically updating the source of a data binding
Třída BindingBase se rozrostla o novou vlastnost Delay. Tato vlastnost nám umožní specifikovat čas (v ms) než dojde k aktualizaci zdroje. Ukázkové použití: Máme formulář, kde jsou jednotlivé vlastnosti nabindované na TextBox, respektivě na jejich vlastnost Text. Jakmile uživatel píše do TextBoxu, hodnota se díky módu TwoWay propisuje automaticky do naši vlastnosti, kde provádíme nějakou akci (např. validace, apod.) Někdy je ovšem nepodstatné aby se tato kontrola prováděla při každém stisku klávesy a v tom případě můžeme nastavit Delay na pár sekund, které by teoreticky mohly stačit k vyplnění příslušné hodnoty a binding po uplynutí této doby aktualizuje zdroj a validace se provede 1x. Poznámka: Pokud chcete používat Delay, musí být hodnota Mode=TwoWay a UpdateSourceTrigger=PropertyChanged   Ukázka z aplikace:  Po uplynutí 3s:  Závěr: Při testování zadání hodnoty s mezerou např.": “sdf sdfs sdf sdfs sdf” to přestane ovšem fungovat a VS zahlásí chybu: System.Windows.Data Error: 8 : Cannot save value from target back to source. BindingExpression:Path=Name; DataItem='DelayDataBinding' (Name='aaa'); target element is 'TextBox' (Name=''); target property is 'Text' (type 'String') ArgumentException:'System.ArgumentException: 'sdf sdfs sdf sdfs sdf' is not a valid value for property 'Name'. at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal) at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) at MS.Internal.Data.PropertyPathWorker.SetValue(Object item, Object value) at MS.Internal.Data.ClrBindingWorker.UpdateValue(Object value) at System.Windows.Data.BindingExpression.UpdateSource(Object value)' Vypadá to asi na nějaké bug.
Moje chyba, používal jsem název vlastnosti Name, který už ovšem existuje v rámci UserControlu.
10.1.2012 13:30:00
|
|
WPF 4.5 Developer Preview - Accessing collections on non-UI Threads
WPF 4.5 nabízí novou metodu, která nám umožní přistupovat ke kolekci z různých vláken. V UI vlákně kolekci vytvoříme, ve vlákně na pozadí jí modifikujeme a data se nám zobrazí bez žádného problému v UI. Metoda EnableCollectionSynchronization přebírá jako parametr pouze kolekci a objekt k synchronizovanému přístupu ke kolekci: 
10.1.2012 12:48:18
|
|