sobota, marca 30, 2013

Wesołego Alleluja!

środa, marca 20, 2013

MSSQL Server 2008 and Tibco BW: Connection closed.

MSSQL Server 2008 is using Start TLS on plain socket, but Tibco old Entrust security provider doesn't support it.

Set java.property.TIBCO_SECURITY_VENDOR=j2se.

niedziela, marca 17, 2013

Ułańska fantazja

piątek, marca 15, 2013

O zakupach online

Ponad 90% ankietowanych kupuje nieprzypadkowo (minimum kilka razy w roku, do kilku zakupów w miesiącu). Większe upowszechnienie zakupów online nie następuje, bo przez Internet nie można dokładnie obejrzeć i sprawdzić produktu oraz nie można wszystkiego kupić (choć na przykład zakupy spożywcze z dowozem oferuje Tesco) - uważa więcej niż 40%. Prawie 17% boi się oszukania przez nieuczciwego sprzedawcę. Około 10% woli nie udostępniać swoich danych osobowych, a 9% obawia się długiego oczekiwania na przesyłkę. Najczęściej kupowana jest odzież, obuwie, dodatki, sprzęt elektroniczny, akcesoria do domu i ogrodu (wszystkie kategorie ponad 40%). Prawie 24% ankietowanych zostało oszukanych przy zakupie przynajmniej raz (najczęściej: towar niezgodny z opisem lub uszkodzony, klient nie dostał towaru), ale tylko około 10% obawia się sposobu online robienia zakupów. W celu sprawdzenia wiarygodności sprzedawcy internauci czytają opinie innych użytkowników (ok. 60-70%) oraz regulamin sklepu (~47%). Ponad 23% konsultuje się ze znajomymi.

Dla kupujących w sieci najważniejsze są dokładne opisy i zdjęcia produktów, szybka dostawa i bezpieczeństwo transakcji (90% +). Ważne też są komentarze o produktach, informacje o siedzibie sklepu oraz duży wybór sposobów płatności. Prawie 84% trzyma się przy nowych zakupach sprawdzonego sprzedawcy, jeśli ceny i szybkość dostawy pozostają nadal atrakcyjne.

Ankietowani sprzedawcy zdają sobie sprawę przed strachem kupujących przed byciem oszukanym i brakiem możliwości przetestowania produktu online oraz że ważne jest wzajemne zaufanie (~60%). Sprzedawcy wiedzą, że ważna jest obsługa na wysokim poziomie, dokładne informacje o produktach oraz szybka wysyłka od momentu zamówienia, płatności.

How to log from Java inside Tibco BW


Create JavaEventSource class with its own static LinkedBlockingQueue and Logger class inserting to this queue. Create Tibco BW process receiving logging events and inside use your own logging subsystem. Please notice that onEvent activity should use some form of string holder class for clean solution.

niedziela, marca 10, 2013

Toyota RAV4 2013

Począwszy od trzeciej generacji Yarisa Toyota zapoczątkowała trend zwiększania miejsca w środku za pomocą zmniejszenia szerokości kokpitu. Widać to również w nowej RAV-ce. Samochód jest od 13 cm dłuższy, a subiektywnie wydaje się, że urósł sporo więcej: z tyłu dużo wygodniejsza (bo dłuższa) kanapa oraz ogromny bagażnik (o 137 litrów więcej, prawie 550). Wróćmy do przodu auta. Odległość od szyby do płaszczyzny kierownicy jest mniejsza w modelu z 2013 roku, ale kokpit robi się szerszy na środku samochodu - jest to niewygodne przy patrzeniu na panel radia/nawigacji/kamery cofania. Przyciski sterownia systemami samochodu zostały umieszczone pod fałdą kokpitu - to również jest mało ergonomiczne, lepiej nie używać ich w trakcie jazdy.


W nowej RAV-ce wyżej pociągnięta jest linia okien. Do spółki z krótszym kokpitem dla małych wzrostem kierowców oznacza to subiektywne przytłoczenie samochodem. Nie oznacza to jednak, że siedzi się niewygodnie - można wyregulować kolumnę kierownicy i siedzenie. W lusterku środkowym widać mniejszą tylną szybę, ale w cofaniu pomogą czujniki i kamera.

O ile styl w nowym Aurisie zachwyca, to w przypadku RAV-ki bardziej subtelne i milsze dla oka jest starsze wnętrzne.

Bagażnik może być otwierany i zamykany elektrycznie. Pierwsza reakcja to szukanie przycisku otwierania klapy - trzeba zajrzeć pod spód, by odnaleźć czarny prostokąt, a następnie dość mocno przycisnąć jego środek - nie ma tu żadnego guzika. Elektronika wychwytuje ruch zamykania i sama kończy akcję użytkownika.

Nowy model RAV4 sprawia trochę zadziorne wrażenie. Prezentuje się jak nowoczesny SUV. Patrząc z boku tył samochodu wygląda trochę dziwnie, ale musimy pamiętać, że jest to efekt dużego bagażnika.




Podczas jazdy po dziurach ma się wrażenie, że samochód woli jednak autostradę. Silnik DCAT 2.2l 150KM wydaje się trochę mało żwawy, ale za to cichy - wszystko to do momentu wciśnięcia przycisku Sport. Robi się wtedy dynamiczniej i głośniej, silnik z charakterystycznym odgłosem żwawo wkręca się na obroty. Toyota musiała pójść na kompromis z ekologami - standardowy diesel stuningowany na oszczędność, motoru 177KM już nie ma, pojawił się mały i bardzo oszczędny diesel 124KM (ma teraz system Start&Stop). Podsumowując: przyjemne auto dla całej rodziny, którym można pojeździć ekonomicznie po mieście i dynamicznie w trasie. Jednak za 150 tys. złotych duzi chłopcy pewnie woleliby odchodzącego X-a, czyli najmocniejszą wersję wyposażenia z najmocniejszym silnikiem.

Foto


Przecież ja nic nie robię, jestem grzeczna


Idzie wiosna


Tesco nieprzyjazne dla klienta

Tesco przy Górczewskiej
Tesco zmienia układ sklepu. Ustawienie regałów jest ciaśniejsze, tak że dwa wózki mijają się bardzo blisko a jeden ustawiony w poprzek blokuje całą alejkę. Pojawiły się też regały stojące prostopadle do reszty. Wszystko po to, by na tej samej powierzchni upchnąć jak najwięcej towaru. Więcej towaru na ekspozycji to teoretycznie większe obroty, odciążenie magazynu i rzadsze dostawy. Przy tak dużej powierzchni sklepu powinno to dać mierzalne oszczędności. Problem jednak polega na tym, że zmiany nie zostały do końca przemyślane. Największy problem usuability jest przy kasach. Kolejki ciągną się wzdłuż regałów. Dostęp do produktów w alejkach przy kasach jest utrudniony przez kolejkę. Osoby w kolejce są przestawiane przez robiące zakupy. Przemieszczanie się między alejkami na krańcu sklepu wymaga przepychania się z wózkiem między ludźmi. Wygląda to jak za PRL-u. Ludzie czekający do kasy są podenerwowani i wyrażają opinie, że więcej tam nie przyjdą. Czyżby chytry dwa razy tracił?

Touchpad


wtorek, marca 05, 2013

Porównywanie elementów tablic w Tibco BW

for $left  in $Map-Matcher/input/data return
    (for $right in $Map-Data/input/records return
        if ($left/matchRepeatable/matchField = $right/entry/field and $left/matchAnotherField = $right/anotherField) then $right else ()
    )

piątek, marca 01, 2013

Grails Spring Security LDAP AD

// Added by the Spring Security Core plugin:
grails.plugins.springsecurity.userLookup.userDomainClassName = 'security.AuthUser'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'security.AuthUserAuthRole'
grails.plugins.springsecurity.authority.className = 'security.AuthRole'

// LDAP config
grails.plugins.springsecurity.ldap.context.managerDn = 'domain\\user'
grails.plugins.springsecurity.ldap.context.managerPassword = 'passw0rd'
grails.plugins.springsecurity.ldap.context.server = 'ldap://dc:389/'
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugins.springsecurity.ldap.search.base = 'dc=domain,dc=internal'
grails.plugins.springsecurity.ldap.search.filter="sAMAccountName={0}"
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['mail', 'displayName', 'title']
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'daoAuthenticationProvider', 'anonymousAuthenticationProvider', 'rememberMeAuthenticationProvider']

grails.plugins.springsecurity.ldap.useRememberMe = false
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
grails.plugins.springsecurity.ldap.authorities.groupSearchBase ='dc=domain,dc=internal'
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = '(member:1.2.840.113556.1.4.1941:={0})'

//grails.plugins.springsecurity.ldap.context.baseEnvironmentProperties
grails.plugins.springsecurity.ldap.authorities.clean.uppercase = true

Akcje na kontrolerach można zabezpieczyć za pomocą adnotacji grails.plugins.springsecurity.Secured np.
@Secured(['ROLE_ITSM_ADMINS','ROLE_ADMIN'])
def list() {
       Log.find(params)
}
gdzie "ITSM Admins" to nazwa grupy w Active Directory.


public static String describeLogin() {
if (springSecurityService.principal instanceof String)
return "Authorization: "+springSecurityService.principal
def user = AuthUser.findByUsername(springSecurityService.principal.username)
if (user)
return "Logged in as: "+user.username
return "Not logged in"
}