Saturday, February 25, 2012
eMail verification and RFC
Yeah!
Today I got another spam from prefix+suffix@gmail.com. And I was able to track the spemmer's source again.
The mail is already blacklisted.
Too bad that 95% of the web services hired students to create their eMail address verification (possibly the whole security !). There are (too) many pages where I cannot register eMail address that has a +.
Dear WEB DEVELOPERS - it is not that difficult to read the RFC! Really! And mail address pattern [a-zA-Z0-9.]\@[a-zA-Z0-9.] is INVALID! Really!
Wednesday, August 31, 2011
Tam, gdzie blog adderka śpi, powstaje inny blog :)
Dzisiaj zakładam bloga dla mojego synka... zamierzam na nim zapisywać każdego dnia (ciekawe co z tego wyjdzie) przeżycia moje i synka. tombeew.blogspot.com
Friday, November 12, 2010
Against a wall... C#
Today I have realized that my knowledge about C++ and C# is almost like nothing. That counts for JAVA most probably... I've been dealing with different assemblers, shell scripts, perl scripts, a lot of PL/SQL, soma JAVA. And I have worked with ANSI C, C++, C#. And many more.
What is wrong about my skills? I have tried to use DisassembleShader code from the DIrectX. I found that there is ShaderLoader but... no disassembler ?!?
I was able to call the method directly using ImportDll, but then I am not able to work with all the fancy things that are marshaling, reflections, interoperability, unmanaged code, etc.
What I have achieved (maybe someone would find it useful) is:
Now the tricky parts.
This method returns HRESULT (where C# equivalent can be IntPtr). The returned value is D3D_OK if everything went OK. D3D_OK maps to S_OK which maps to 0. Thus the expected returned value is 0.
More important piece is the ppDisassembly. This is an UnmanagedType.Interface which is in fact ID3DXBuffer (http://msdn.microsoft.com/en-us/library/bb205753(v=VS.85).aspx). It inherits from IUnknown and adds its own methods there. This is something that I don't know how to access. I have searched over the internet and this knowledge is beyond my current limits.
I think that I should use P/Invoke here, define an interface, access it. But... my knowledge is currently not enough to do this... :(
What is wrong about my skills? I have tried to use DisassembleShader code from the DIrectX. I found that there is ShaderLoader but... no disassembler ?!?
I was able to call the method directly using ImportDll, but then I am not able to work with all the fancy things that are marshaling, reflections, interoperability, unmanaged code, etc.
What I have achieved (maybe someone would find it useful) is:
[DllImport("D3dx9_24.dll" , SetLastError = true)]
// This is probably wrong to use the specific DLL instead of ex. COM GUID
private static unsafe extern IntPtr D3DXDisassembleShader(
[In]void* pShader,
[In]bool EnableColorCode,
[In]string pComments,
[return: MarshalAs(UnmanagedType.Interface)]
[Out]void* ppDisassembly
);
Now the tricky parts.
This method returns HRESULT (where C# equivalent can be IntPtr). The returned value is D3D_OK if everything went OK. D3D_OK maps to S_OK which maps to 0. Thus the expected returned value is 0.
More important piece is the ppDisassembly. This is an UnmanagedType.Interface which is in fact ID3DXBuffer (http://msdn.microsoft.com/en-us/library/bb205753(v=VS.85).aspx). It inherits from IUnknown and adds its own methods there. This is something that I don't know how to access. I have searched over the internet and this knowledge is beyond my current limits.
I think that I should use P/Invoke here, define an interface, access it. But... my knowledge is currently not enough to do this... :(
Monday, September 27, 2010
Oblivion issues
Again I have experienced some issues with my Oblivion...
- All the dead bodies become green. Or rather all the actors became green when hit. Reason: I was missing "MMM.bsa" (AKA "Mart's Monster Mod.bsa") file. After downloading I had to ad it to the bsa list in my oblivion.ini and then it worked.
- After start when I enter to the chamber with rats for the first time I don't see "Rusty Iron Bow" mesh. It is referenced to "weapons\MMMKOLrusty\bowrusty.nif" Cause: I've forgotten about MMM core.
Tuesday, September 14, 2010
Deadloop projektu, troszkę (samo)krytyki
Obserwuję od jakiegoś czasu w pracy pętlę sprzężenia zwrotnego. Trafiłem do projektu, który z różnych powodów jest opóźniony (w pół roku siłą 5 programistów wykonać 3-letnią pracę 10-ciu...). W czym problem?
Projekt się spóźnia - a przez to managerowie się denerwują i zwołują co chwila konferencje oraz wysyłają masę poczty aby być na bieżąco. A tym samym zajmują czas programistom którzy mają go coraz mniej, co z kolei zwiększa ilość konferencji i poczty...
Uważam, że z dobrą i doświadczoną 5-osobową ekipą, dobrze ustalonymi wymaganiami i architekturą, projekt można by spokojnie skończyć w rok - gdyby nie ta paskudna pętla i czynniki środowiskowe.
Na technikach agila nie znam się, lecz już na pierwszy rzut oka dostrzegam liczne zalety. Krótki okres między kolejnymi wersjami produktu, niezbyt liczna ekipa, komunikacja na bieżąco - to dużo pracy ale także lepsze jej warunki. Takie podejście jednak nie jest możliwe w mojej firmie, która kiedyś uchodziła za wzorzec.
Czego mi brakuje w moim obecnym projekcie:
- Dobrego systemu kontroli kodu / wymagań / zadań / dokumentacji - np. cvs/svn/git + mantis/itp. + google wave/gmail
- Sprawnego systemu kompilacji kodu (budowania) - np. ant / cmake
- Jednolitych procesów - czyli czegoś, co "nie opisuje jak chcielibyśmy aby cykl życia projektu mógłby wyglądać" a zamiast tego ukierunkowuje tenże cykl
- Automatycznych testów jednostkowych - np. JUnit
- Środowiska ułatwiającego programowanie i konserwację (AKA development i troubleshooting) - np. JBoss, Log4J, solidny szkielet (AKA framework)
- Możliwość dostosowania procesów i używanych technologii do tego, nad czym pracujemy - np. parsować XML z poziomu ksh/awk to na starcie pomyłka
- Kontrola procesu która zamiast obciążać pracowników pomaga im - ponieważ raportowanie co godzinę mojego statusu w 15 różnych aplikacjach oraz na dodatkowych konferencjach zabiera masę czasu
- Współpracy z innymi członkami grupy tak, aby nasza wiedza częściowo się pokrywała - a nie zarzucenie nas mnogością zadań i utrudnianie współpracy
Jakie problemy z mojej (i ogólnie programistów) strony dostrzegam:
- Projekt został spalony już na starcie, zanim jeszcze rozpoczęliśmy nad nim pracę - powinniśmy to zakwestionować na starcie
- Zgodziliśmy się na narzucenie technologii bez uważnego przestudiowania konsekwencji
- Projekt zaczynał z niedoświadczoną ekipą i nie zadbaliśmy o odpowiednie wprowadzenie wszystkich jej członków (udało się to zaledwie z dwójką)
- "Młodzi" dostali zbyt dużą kontrolę co doprowadziło do zrezygnowania z tzw. "code review"
- Zgodziliśmy się (my, członkowie z doświadczeniem) na brak tzw. "code review"
- Nie zablokowaliśmy projektu na starcie widząc, żę wymagania są bardzo niekompletne
- Zgodziliśmy się pracować z narzuconymi narzędziami, które to pamiętają czasy Gierka - choć tutaj nie mieliśmy wiele do gadania
- Nie uczestniczyliśmy w początkowych fazach tworzenia projektu - i tutaj także było to poza naszą kontrolą - co w rezultacie doprowadziło do niedoestymowania kosztów, wybrania niewłaściwych technologii i mylnego przeświadczenia kadry kierowniczej że możliwym jest "reuse" istniejącego kodu
- To, że ktoś stworzył taki paskudny kod jaki odziedziczyliśmy i że otrzymał tak odpowiedzialne zadanie jest także tragiczne - ale to również problem częściowo leżący po stronie programistów
Ech... praca w archaicznej korporacji to nie jest to co tygryski mogłyby lubić
Sunday, August 15, 2010
Android 1.6 vs Symbian S60 vs Windows CE 5
Miałem okazję korzystać z kilku urządzeń mobilnych z różnymi systemami mobilnymi. Poniżej wymienię ich zalety oraz wady (te, które ja dostrzegam). Porównanie nawiązuje do S60 (Symbian S60 v2 i v6), A1.6 (Google Android 1.6) i W5 (Windows CE 5.0).
Czytelność.
S60 wygrywa - chociaż mi ten interfejs nie odpowiada - pasuje on przeciętnemu użytkownikowi. Podstawowe funkcje są dobrze ulokowane a elementy dobrze rozmieszczone.
A1.6 jest ciekawy dla programisty - wszystko jest tam, gdzie powinno być. Szukam opcji i prawie zawsze znajduję ją tam, gdzie się jej spodziewam. Niestety nie każdy użytkownik jest programistą.
W5 jest dość toporny w użytkowaniu - ale posiada swoje zalety.
Wydajność.
A1.6 i S60 są dość szybkie - nie odczułem wyraźnej różnicy (dla mnie obydwa są równie szybkie). Warto zauważyć, że niektóre telefony oparte na Symbianie posiadają 2-rdzeniowy procesor - jeden z rdzeni jest zarezerwowany dla systemu.
W5 przegrywa jeśli chodzi o wydajność interfejsu.
Bezpieczeństwo.
S60 to już dojrzała platforma. Uważam ją za stosunkowo bezpieczną i stabilną (choć to były główne jej bolączki w dawnych czasach). Jednak kupując telefon do biura kupiłbym model pozbawiony jakichkolwiek bajerów typu kolorowy wyświetlacz, możliwość instalowania aplikacji, itp.
Android ma szansę zaistnieć jako platforma stabilna i bezpieczna. Niestety do bezpieczeństwa jej daleko. Instalując aplikację tracimy nad nią kontrolę. Może być ona czymkolwiek - wirusem, trojanem, czymś co wysyła bez naszej wiedzy płatne SMSy. Wygrywa z W5 ale przegrywa z S60.
W5 to brak bezpieczeństwa.
Stabilność.
A1.6 o dziwo jest systemem młodym lecz stabilnym. Opiera się na linuksie - zapewne stąd bierze się owa stabilność.
S60 to platforma która od zawsze była niestabilna. Kilka lat temu jednak uznałem ją za stabilną. Obecnie znów obserwuję zmianę - Nokia kładzie chyba nacisk na nowe funkcjonalności a nie stabilność.
W5... wystąpił nieoczekiwany wyjątek... Nie polecam.
Dostępność aplikacji.
Android przedstawia się najlepiej jako zabawka dla gadżeciaża.
Windows jest do OK.
S60 jest do zaakceptowania.
Bolączki.
W5: niestabilny, niebezpieczny, powolny, nieczytelny.
S60: Konieczność podpisywania aplikacji i słaba ich dostępność, kiepska stabilność.
A1.6: Bezpieczeństwo, interfejs nieprzystosowany do przeciętnego użytkownika.
Zalety:
A1.6: Dużo aplikacji, stabilność (jądro linuksa).
S60: Dojrzała platforma, trochę aplikacji oraz fakt, że zazwyczaj te telefony mają dobrze zarządzanie energią.
W5: To, że obsługuje autpomapę? A może cena 3$ od urządzenia? Na prawdę - nic mi do głowy nie przychodzi?
Tuesday, July 27, 2010
Nokia 5230 - wielki zawód
Dostałem dzisiaj Nokię 5230. Niby fajna ale... hmmm...
Do czego ma służyć telefon?
- Do szpanowania/zabawy/itp. -> wybierz iPhone
- Do dzwonienia - wybierz telefon
A Nokia 5230?
Ma dotykowy ekran. Ma duży ekran. Ma wbudowaną nawigację. Jest telefonem. Ma sybmiana. Obsługuje sieci 3G i ma Bluetooth'a. Ma blokadę klawiatury na fajny suwaczek. I to tyle. Koniec, finito.
A jakie są z tym telefonem problemy?
- Brak klawiatury doskwiera. Klawiatura ekranowa jest kiepska. Brak rysika boli.
- Nawigacja jest żałosna - już wolę kupić Lark'a za 150 PLN.
- Nawigacja wymaga map - a to kosztuje. Mapy są da friko ale transfer danych kosztuje. Oczywiście ściągają się z sieci - mało kto ściągnie je na komputerze. Zresztą ściąganie wymaga podłączenia kabelka USB lub połączenia Bluetooth - a w moim zestawie nie ma kabelka a BT będzie strasznie wolny.
- Telefon ma od razu masę dołączonych pijawek śliniących się na portfel. Muzodajnia, ściąganie map OVI, sprawdzanie poczty i wiele wiele innych. I wcale niedużo potrzeba aby stracić kasę - dotkniesz ekran i już się telefon łączy. Oczywiście marketingowiec powie "ma masę zajefajnych funkcji takich jak portki społecznościowe, fejs-zbuka, nawigację samojeżdżącą, itp.".
- Brak WiFi - jeśli bym używał Facebook, youtube i inych to tylko po WiFi lub w krytycznej sytuacji po 3G.
- Moduł GPS jest cienki i nie ma możliwości podłączenia zewnętrznej anteny.
- Brak fotoczujnika sprawia, że podświetlenie ekranu jest zawsze niewłaściwe. Zaraz... czujnik jest tylko że to zaledwie czujnik zbliżeniowy wyłączający ekran podczas rozmowy.
- Czujnik wychylny ma obracać ekran gdy obrócimy telefon - ale tylko 2 kąty są dozwolone i czujnik często wariuje (np. przy lekkim potrząśnięciu).
- Brak możliwości wywołania/pisania funkcji na głównym ekranie.
- Masa nieużytecznych skrótów (youtube, sklep nokia, sklep OVI i inne) czatujących na moje pieniądze.
No dobrze... na koniec kilka słów pociechy. Jest to TANI telefon z dużym ekranem dotykowym i wbudowaną kiepską nawigacją, czujnikiem wychylnym, słabą kamerką do robienia zdjęć/filmów oraz Symbianem. Jakość wykonania sprzętu nie budzi moich zastrzeżeń.
Subscribe to:
Posts (Atom)