niedziela, stycznia 30, 2011
sobota, stycznia 29, 2011
IOTest for AntiViruses
Na prośbę Pani Moniki z Politechniki Wrocławskiej wznawiam pakiet do testowania rezydentnych monitorów antywirusowych, który przed laty napisałem dla magazynu komputerowego IT-FAQ.Zmierzony narzut McAfee VirusScan 8.7.0i wynosi 16%. IOTest został tym razem napisany w C++.NET i WinAPI z wykorzystaniem Visual C++ 2010 Express. Trzeba nadmienić, że IDE w najnowszej wersji _nie_ posiada IntelliSense dla C++, co jest bardzo dużym krokiem wstecz, zważywszy na zaawansowane możliwości jakie oferuje C++.NET.
wtorek, stycznia 25, 2011
niedziela, stycznia 23, 2011
Scalable networking
Facet udowania, że OpenBSD (s. 65, 73) nie nadaje się do zastosowań sieciowych ;)Ubuntu 11 usuability

Trzeba przyznać, że projektanci Ubuntu wzorują się na systemie Mac OS X. Bardzo ładny rendering czcionek, miękkie cienie pod oknami i tooltipami, menu nautiliusa zintegrowane z górnym panelem pulpitu. Ekran szerokokątny o proporcjach 16x9 najlepiej pasuje do pola widzenia człowieka, dlatego umieszczenie paska zadań z boku pulpitu jest sensownym rozwiązaniem.

'Pin to launcher' znane z Windows 7.

Pulpity wirtualne - szkoda, że dla każdego nie można mieć oddzielnej tapety.
sobota, stycznia 22, 2011
czwartek, stycznia 20, 2011
VB Reactive/Proactive 2010-12
Virus Bulletin też już używa magicznych ćwiartek, osiami są ochrona reaktywna (definicje wirusów uaktualniane na bieżąco) oraz proaktywna (heurystyka, analiza behawioralna, inteligencja chmurowa). Na dobrą sprawę sensowne produkty powinny być zlokalizowane powyżej współrzędnych (75%, 90%).Z rozwiązań wielosilnikowych najlepsze są G Data AntiVirus i Trustport. Widać też jak na przestrzeni lat awansował silnik Avira (kiedyś Antivir PE), zaczyna być chętnie licencjonowany (Microsafe, ZeoBit). Z ciekawostek: Coranti ma aż 4 silniki - BitDefender, F-Prot, Normal, Lavasoft; Arcavir próbuje wykrywać wszystkie te wirusy, co światowa konkurencja, ale raz ma za dużo fałszywych alarmów, drugi raz za mało wykryć świeżo grasującego malware-u; mks_vir daleko w tyle (celowo nie piszę MkS_Vir).
sobota, stycznia 15, 2011
Acer Aspire Revo


Nettop, który sprawdza się w salonie. Dwurdzeniowy czterowątkowy Intel Atom D525 1.8GHz (lepszy niż w netbookach, nie ma jednak spekulatywnego wykonywania kodu), do tego Nvidia ION2, połączenie HDMI w rozdzielczości 1920x1080 telewizora Sony Bravia. Klawiatura i myszka są bezprzewodowe.
piątek, stycznia 14, 2011
Adapter Tibco SAP R3 outbound
Adapter jest napisany w C++ i korzysta z natywnych bibliotek SAP. Tibco Designer używa bibliotek Javy SAP JCO opakowujących implementację w C. Adapter implementuje RFC Server, który woła funkcję RfcAccept (podłączenie się do danej instancji SAP-a, parametrem jest gateway i program ID) a następnie w pętli nieskończonej woła RfcListen (sprawdza czy jest nowe żądanie lub odpowiedź, nie czeka) oraz ewentualnie RfcDispatch (dokonuje obsługi żądania). Funkcje outboundowe SAP są dynamicznie rejrestrowane poprzez RfcInstallFunction ze wspólnym handlerem wywoływanym wewnętrznie przez RfcDispatch. Handler to funkcja typu callback. Obsługa wywołań w adapterze jest w praktyce blokująca mimo, że własne RFC_HANDLE jest podawane handlerowi jako parametr wejściowy i tylko RfcListen, RfcDispatch, RfcGetData, RfcSendData są wzajemnie blokujące. Handler rozpoznaje typ funkcji po jej nazwie uzyskanej z RfcGetName. Serwer RFC obsługuje wiele wywołań na jednym połączeniu na zasadzie multipleksera. Handler pobiera dane żądania za pomocą RfcGetData a odsyła odpowiedź poprzez RfcSendData - funkcje obsługują wielowątkowość. W trakcie wywołań RfcDispatch/RfcGetName biblioteka RFC sama nawiązuje ewentualne ponowne połączenie z rejestracją Program ID włącznie, ponieważ po każdym obsłużeniu żądania powinno zostać wywołane RfcClose. Użycie RfcDisplatch i RfcGetName naraz jest dyskusyjne.Serwer RFC może zarejestrować się pod tym samym Program ID wielokrotnie, żądanie z SAP-a zostanie wysłane do jednej z instancji. Jeśli serwer RFC nie zamknie w czysty sposób połączenia (RfcClose) a przerwaniu ulegnie komunikacja TCP/IP (np. firewall nie dopuszcza połączeń długo będących w stanie idle) połączenie po stronie SAP-a będzie widoczne w stanie WAITING. Standardowo co 300 sekund między SAP-em a serwerem RFC następuje komunikacja keep-alive. Czas ten można skrócić za pomocą zmiennej środowiskowej RFC_MAX_REG_IDLE. Jeśli czas pomiędzy wywołaniami RfcListen jest zbyt duży, to od strony SAP-a będzie to wyglądać jako niedostępność adaptera outbound.
Żeby zobaczyć co się dzieje w środku można ustawić zmienne środowiskowe RFC_TRACE, RFC_DEBUG, RFC_SAFE_MODE na 1. Przydatne są też: CPIC_MAX_CONV (Connection Pool - Internal Connection - Max Connections Value), CPIC_TRACE.
piątek, stycznia 07, 2011
Spektakularny bug w GCC


80483fd: c7 04 24 30 85 04 08 movl $0x8048530,(%esp)
8048404: e8 1b ff ff ff call 8048324
8048409: dd 5c 24 18 fstpl 0x18(%esp) //zdjęcie wyniku ze stosu fp
804840d: c7 04 24 32 85 04 08 movl $0x8048532,(%esp)
8048414: e8 0b ff ff ff call 8048324
8048419: dd 44 24 18 fldl 0x18(%esp) //załadowanie na stos fp
804841d: de f1 fdivp %st,%st(1) //dzielenie ST(0)=ST(0)/ST(1)
804841f: dd 5c 24 20 fstpl 0x20(%esp) //zdjęcie wyniku 1.0/3.0
8048423: c7 04 24 30 85 04 08 movl $0x8048530,(%esp)
804842a: e8 f5 fe ff ff call 8048324
804842f: dd 5c 24 28 fstpl 0x28(%esp)
8048433: c7 04 24 32 85 04 08 movl $0x8048532,(%esp)
804843a: e8 e5 fe ff ff call 8048324
804843f: dc 7c 24 28 fdivrl 0x28(%esp) //dzielenie ST(1)=ST(1)/ST(0)
8048443: dd 44 24 20 fldl 0x20(%esp)
8048447: d9 c9 fxch %st(1)
8048449: df e9 fucomip %st(1),%st // porównanie ST(0) z ST(1)
804844b: dd d8 fstp %st(0)
804844d: 0f 97 c0 seta %al
8048450: 0f b6 d0 movzbl %al,%edx
8048453: b8 34 85 04 08 mov $0x8048534,%eax
8048458: 89 54 24 04 mov %edx,0x4(%esp)
804845c: 89 04 24 mov %eax,(%esp)
Dzielenie fdivrl to dzielenie o podwójnej precyzji obliczeń (wynik ma typ double), podczas gdy fdiv to dzielenie o pojedyńczej precyzji. Obie operacje na takich samych argumentach zwrócą inne wyniki numeryczne. No i masz babo placek.
niedziela, stycznia 02, 2011
sobota, stycznia 01, 2011
Mapa EAI
Wraz ze zwiększaniem się liczby przepływów i komponentów na platformie integracyjnej zmniejsza się jej zarządzalność. Po przekroczeniu pewnego punktu krytycznego niezbędne jest stworzenie mapy istniejącej infrastruktury. Jest parę opcji:1. Narzędzie do monitorowania, które na poziomie JVM odnajdzie usługi i zależności między nimi
2. Repozytorium usług (usługi wprowadzane ręcznie, półautomatycznie, lub automatycznie za pomocą 1.)
3. Specjalistyczne narzędzie do stworzenia mapy infrastruktury (napisane pod dane środowisko w danej firmie)
Trzecie rozwiązanie jest najtańsze mimo, że kosztuje tyle co nowy samochód średniej klasy.
Gdyby dostawca potrafił rozszerzyć funkcjonalność 3. do 2. a nawet 1. to mielibyśmy narzędzie idealne, ale już tylko o rząd wielkości tańsze od HP Systinet czy SAG CentraSite.
środa, grudnia 29, 2010
SOA Systematic Approach

Microsoft oznacza tutaj .NET Framework + ASP.NET + IIS + Windows Process Activation Services (application pool) + Windows Server AppFabric (distributed cache) + Sharepoint.
Gartner ma zastrzeżenia do Tibco, że produkty są duże, drogie i mało znane/słabo promowane. Z plusów są bardzo wydajne (eXtreme Transaction Processing) i zaawansowane.
Komponenty WSO2 mają minimalną funkcjonalność, ale są lekkie i otwarte.
niedziela, grudnia 26, 2010
piątek, grudnia 24, 2010
czwartek, grudnia 23, 2010
niedziela, grudnia 19, 2010
Talend ETL

Bardzo sensowne narzędzie ETL. Wspiera wirtualnie wszystkie bazy danych (JDBC), oprócz tego ma dedykowane komponenty m.in. do Oracle-a, MSSQL Server-a, PostgreSQL-a. Ma connector do SAP-a. Ma kontrolki do WebService-ów, zwykłego HTTP, SCP, FTP, POP3, kodu Javy i Groovy. Wspiera JMS-a, co ciekawe kontrolka została napisana z myślą o Tibco EMS. Narzędzie w wersji Community kosztuje 0 zł.
sobota, grudnia 18, 2010
środa, grudnia 15, 2010
Invalid Temporary Destination
czyli przychodzi dostawca po kasę za naprawę błędów w oprogramowaniu...
Kodeks Cywilny
Art. 556. § 1. Sprzedawca jest odpowiedzialny względem kupującego, jeżeli rzecz sprzedana ma wadę zmniejszającą jej wartość lub użyteczność ze względu na cel w umowie oznaczony albo wynikający z okoliczności lub z przeznaczenia rzeczy, jeżeli rzecz nie ma właściwości, o których istnieniu zapewnił kupującego, albo jeżeli rzecz została kupującemu wydana w stanie niezupełnym (rękojmia za wady fizyczne).
Art. 564. W wypadkach przewidzianych w artykule poprzedzającym utrata uprawnień z tytułu rękojmi za wady fizyczne rzeczy nie następuje mimo niezachowania terminów do zbadania rzeczy przez kupującego i do zawiadomienia sprzedawcy o wadach, jeżeli sprzedawca wadę podstępnie zataił albo zapewnił kupującego, że wady nie istnieją.
np. audyt kodu przeprowadzany przez eksperta explicite wliczany w koszty projektu
Art. 566. § 1. Jeżeli z powodu wady fizycznej rzeczy sprzedanej kupujący odstępuje od umowy albo żąda obniżenia ceny, może on żądać naprawienia szkody poniesionej wskutek istnienia wady, chyba że szkoda jest następstwem okoliczności, za które sprzedawca nie ponosi odpowiedzialności. W ostatnim wypadku kupujący może żądać tylko naprawienia szkody, którą poniósł przez to, że zawarł umowę, nie wiedząc o istnieniu wady; w szczególności może żądać zwrotu kosztów zawarcia umowy, kosztów odebrania, przewozu, przechowania i ubezpieczenia rzeczy oraz zwrotu dokonanych nakładów w takim zakresie, w jakim nie odniósł korzyści z tych nakładów.
§ 2. Przepisy powyższe stosuje się odpowiednio, gdy kupujący żąda dostarczenia rzeczy wolnych od wad zamiast rzeczy wadliwych albo usunięcia wady przez sprzedawcę.
Art. 568. § 1. Uprawnienia z tytułu rękojmi za wady fizyczne wygasają po upływie roku, a gdy chodzi o wady budynku - po upływie lat trzech, licząc od dnia, kiedy rzecz została kupującemu wydana.
§ 2. Upływ powyższych terminów nie wyłącza wykonania uprawnień z tytułu rękojmi, jeżeli sprzedawca wadę podstępnie zataił.
§ 3. Zarzut z tytułu rękojmi może być podniesiony także po upływie powyższych terminów, jeżeli przed ich upływem kupujący zawiadomił sprzedawcę o wadzie.
Za zawiadomienie można uznać zgłoszenie incydentu dostawcy w ramach usług utrzymania IT.
wtorek, grudnia 14, 2010
Subskrybuj:
Posty (Atom)





















