sobota, marca 30, 2013
ś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.
Set java.property.TIBCO_SECURITY_VENDOR=j2se.
niedziela, marca 17, 2013
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.
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.
Tesco nieprzyjazne dla klienta
Tesco przy Górczewskiej |
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 ()
)
(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"
}
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"
}
Subskrybuj:
Posty (Atom)