6. dets 2008

Adblock Plus 1.0 väljas



Üldiselt eriti ei oma tarkvara, mis vääriks eraldi esiletoomist,
kuid Adblock küll.

Mul kodus üks vanem arvuti (1.2g, 512mb), meie meediaväljaandeid üldse võimatu lugeda. CPU 75-85%... Põhjuseks "flashi mürgitus", kuna varem olid reklaamid kas staatilised gif / jpeg failid, siis nüüd 85% on ainult flash.

Saan aru, et reklaam vajalik kasumi jaoks, kuid mõnel lehel on liig, mis liig. Kõige hullem on "monsterbännerid". Äripäev alustas sellega, et päisesse pandi ikka paras monstrum. Ja see jubedus levis.
Reklaame tohib nii paigutada, et nad on koheselt nähtavad samas ei sega lugemist, seda konseptsiooni ei järgita !

Ühe lehe avamise benchmark, ilma Adblock programmita. 15-20 sekundit, nüüd maksimaalselt 4 sekundit.



Küsimus lugejatele, kas keegi teab, kuidas (globaalselt) Flashplayeris heli ära keelata. Pole kohanud Flashplayeris seadeid, et keela heli !
Asi reklaamides stiilis autoplay, kus järsku hakkab hull kisa või loba.

Ise kasutan Saksamaa AdBlock reegleid:
http://maltekraus.de/Firefox/adblock_site-specific-elemhiding.txt
+ 8 lihtsat reeglit lisaks


http://www.ap3.ee/bannercache/
http://www.postimees.ee/*/banners/
http://ebnr3.datanet.ee/banners
http://www.soov.ee/web/banner/
http://ap.delfi.ee/i?
http://g.delfi.ee/b/sc/
http://ap.delfi.ee/b?
http://static.postimees.ee/banners/

24. nov 2008

Windows ja paroolid ? Mõttetu ajaraiskamine...

Nagu subjekt ütleb, nii ka asjad on. Kuna põhitöö kõrval on olnud turvalisus minu hobiks, siis sai 3 aastat tagasi juba tehtud programmid...

W2K parool mälust

Tuleta meelde (Outlook Expressi paroolid)

Msn paroolid (vanem messangeri formaat)

Need programmid töötavad isegi (kus protected storage veel kasutusel).


Üldiselt point selles, et lumine nädalavahetus andis aega uuesti uurida asju. Ja ikka asjad logisevad.

W2K ning XP ilma SP oli hea lihtne
HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider

õiget dll välja kutsudes, lobises süsteem rõõmsalt kõik paroolid välja. Msn, Outlook, IE autocomplete.

Nüüd pole enam see storage eriti aktuaalne, MS programmid hakkasid ise paroole hoidma enda formaatides. Nagu alati, mitte just efektiivselt.
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2

Väidetavalt on seal URL xor võtmeks , miks ma ei imesta:(

Win9x oli täitsa komöödia, kohe winapi EnumCachedPasswords, mis kõikide ressurside paroolid ütles...oh aegu.

Juhul, kui tarkvaral on natukenegi tugevam parool, siis kasutatakse IAT hookingut


Üldiselt põhjused, miks mõtetu windowsis üldse parooli panna, op. süsteem justkui pahalaste jaoks tehtud (et viirusetõrjet ning troojakate vastast tarkvara saaks ikka müüa).

* Üks windowsi programm saab teisele saata suvalisi messageid.
- lahendus panna vähemalt juurde akna/kiu ID, kes sõnumi saatis, et app saaks teada, kas võtame vastu teate või mitte. Trooja programmid rõõmsalt sulgevad WM_CLOSE abil aknaid, mida klient peaks nägema.


* Teise programmi konteksti kiu loomine. CreateRemoteThread
Läbi selle API saab kõiksugu jama teha, ntx pahalase DLL laadida.
- minimaalne, et programmis oleks api, mis teavitaks täiendava kiu saabumisest. Samuti protsess, kes seda tahab teha. Programmil accept flag, kas on sellise kiuga nõus.

DllMain - DLL_THREAD_ATTACH, kahjuks see ei toimi nii nagu võiks.

* VirtualProtectEx / VirtualAllocEx

lubab kaunilt teise protsessi külge mappida puuduvat mälufragmenti.
Ehk pahalane paneb täiendava jmp käsu programmi koodi või muudab mõnda call aadressi ning pidu võib alati piirkonnas, mis küsiti virtualprotectex abil.
- see api ära keelata.

* tegin tarkvara pcturva juba 2003 aastal, et lihtsamalt tuttavate arvutitest leida pahalasi.
Samuti suutis tarkvara heuristiliselt leida windows hooke
Siis Windowsi lisati uued "hook" tüübid, mida pole võimalik leida ja mida saab suvaline tarkvara rakendada !
Setwindowshookex - globaalset "hooki" lubada ainult ja veelkord ainult hiire sündmuste püüdmiseks.

Ja nimekiri on pikk pikk...mis windowsis turvalisuse ära rikub
__________________________________________

Palju toredaid paroole süsteemist..

NirSoft



ja kui unustasite windowsi paroolid, pole probleemi, muudke ära. Kui vaja ka adminni omad...

http://home.eunet.no/pnordahl/ntpasswd/

Ps. seda parooli muutmist ei soovita teha, kui teil kettal krüpteeritud failid.


Ehk, milleks vaevata pead paroolide välja mõtlemisega...eriti windowsis...


Andmete kaitseks soovitan kasutada TrueCrypti , selle tarkvaraga mul kõige vähem probleeme esinenud. Töötab ka Linuxi peal.



Seniks lund meetrite kaupa :))))














20. nov 2008

Oli vaja luua Vistas loopback adapterit...

..aga kuidas... lõpuks leidsin blogi, kus räägitakse edukast installist.

installing-loopback-adaptor

DevCon programm on märksõnaks.

devcon.exe install %windir%\inf\netloop.inf *msloop

Lihtne ju, kas pole ;)
___________

Lihtsalt täiendav info, pidin IPV6 toetavat programmi testima, aga ennem pidin arvutisse IPV6 installima http://www.microsoft.com/technet/network/ipv6/ipv6faq.mspx

No, mis jamaga tegeletakse: "ID-kaardi kõrvale tuleb uus digitaalne isikutunnistus"

ID-kaardi kõrvale tuleb uus digitaalne isikutunnistus

Lisaks saaks ID-kaardi ja digitaalse isikutunnistusega korraga kasutada mitut digitaalset isikutuvastamist võimaldavat dokumenti, näiteks töötamisel paralleelselt kahes elektroonilises keskkonnas

Nii, kratsime koos kukalt, mis asi see siis on. Ei ole kana, ega ei ole muna. Töötab nagu ID kaart, aga samas pole dokument. Tavaline kiipkaart (pole visuaalselt tuvastatavat osa), järelikult tehninguid saab ikka teha.

Eesti riigis ongi põhiprobleem ülemõtlemine, mis viib jaburate lahendusteni, kus puudub karjuv vajadus. Igasuguste süsteemide segaseks ajamine tõstab turvariske.

Väikesed abimehed veebi juures

Üldiselt, millised abivahendid on head veebilehtede kirjutamisel ning kontrollimisel.

Mozilla Firefox, alati tasub Tools->Error Console piiluda, mida öeldakse sinu saidi kohta,
kontrollida elementide struktuuri jne

Väga hea abimees Firefoxi kasutajatele ka Firebug


Kui oled IE kasutaja, siis on abiks

Internet Explorer Developer Toolbar


__________

Nii tänaseks levi lõpp - paistab, et külmapoiss leidis Eesti üles..

17. nov 2008

Vahelduseks naljakas soov sõbralt Feedreaderi plugina jaoks

Sõber kurtis, no nii ära tüütanud negatiivsed uudised meediakanalites, et tee õige üks plugin, mis "halvad sõnad" asendaks. Sõnad, krahh = babahh, majanduslangus = kõik on ilus, ansip = tore mees, inflatsioon = meil läheb hästi, korruptsioon = lihtsalt optimiseerisime kulusid :)))) See lihtsalt väike nimekiri. Eks ootan täiendavaid sõna asendusi ...

13. nov 2008

MSSQL : Sinu igapäevased help protseduurid...

Nii, ükspäev vaatasin, milliseid süsteemseid protseduure enim kasutan ja tegin nö järjestuse.

1. sp_helptext - nö protseduur, mis võimaldab protseduuride, funktsioonide, trigerite sisu vaadata (sp_helptrigger).
2. sp_monitor - tagastab üldise serveri info ntx palju cpu hõivatud, palju pakette saadetud, mitu ühendust loodud.
3. sp_who2 - näitab, kes serverisse loginud, kus arvutist, millal viimane batch. Enamasti kasutasin seda, et kiiresti näha, kes keda blokeerib.
4. sp_lock - näitab lukustusi, natuke täiustasin väljundit

declare @abimees table (
spid smallint,
dbid smallint,
ObjId int,
IndId smallint,
Type nchar(4),
Resource nchar(16),
Mode nvarchar(8),
Status nvarchar(20))


insert into @abimees
exec sp_lock

select spid,DB_NAME(dbid) as dbname,object_name(ObjId) as object,IndId,
case
when Type='DB' then 'Database'
when Type='FIL' then 'File'
when Type='IDX' then 'Index'
when Type='PG' then 'Page'
when Type='KEY' then 'Key'
when Type='TAB' then 'Table'
when Type='EXT' then 'Extent'
when Type='RID' then 'Row identifier'
end as typestr,
Resource,Mode,Status
from @abimees


5. sp_helpfile - annab ülevaate andmebaasi failidest.
6. sp_depends - protseduur, mis annab infot selle kohta, millised teised andmebaasi objektid sõltuvad etteantud objektist.
7. sp_helpdb - annan infot kõikidest andmebaasidest, nende suurusest, staatustest jne
8. sp_helprotect - annab ülevaate kõikidest objektidele omistatud õigustest; kes tohib exec sooritada, kes select jne Sellele protseduurile soovitan ikka vaadeldava objekti nime ette anda @name=ntxmingitabel. Muidu kuvatakse kõik protseduurid, tabelid jne nende õigustega.
9. sp_helprole - kuvab vaikimisi valitud andmebaasis defineeritud kasutajate rollid.



Seniks ... nägelemiseni...

12. nov 2008

Naljakad turvavead ;))))

Worst security blooper ever?

T-Mobile quickly patched the gaping hole, but not before widespread shenanigans ensued. One report on Google's Android Bug listing describes a user text messaging advice to his girlfriend comprised of the single word "reboot," only to find his phone rebooting. Surprise!

Ei oskagi midagi selle peale öelda, vaadake, et siis te sõpradele süsteemseid käske ei kirjuta :)))

Kui viirusetõrje muutub ohtlikuks...

Oops... AVG accidentally kills Windows

user32.dll kustutamine viirusetõrje poolt ikka suurim bläkk, mida üle pika aja kogenud. Huvitav oli lugeda, kus ühel firmal oli 200 tööjaama, mis peale seda lõpetasid töö - ei tahaks olla antud adminni nahas.

Kas viirusetõrje firma signatuuri algoritmid logisevad või lihtsalt lohakaks muutunud.

Tunne, et tulevikus peaks viirusetõrje panema oma failikonteinerisse failid, mida ta tahab kustutada. Kui arvuti edukalt käivitunud, siis kasutaja saaks otsustada, mis edasi...nagu Norton AntiVirus Quarantine. Huvitav pole AVGd ammu kasutanud, aga kas see programm seda ei tee. Ehk kui midagi viltu läheks, saaks kasutaja kasvõi recovery modes garantiinist failid taastada. Võimalik, et tahan viirusetõrjujatel liialt palju.

Üldiselt kustutamine on viimane võimalus probleemi ravida.

DOSi viiruste algusest jäi meelde seik, kus üks viirus suutis viiruste definitsioonide andmebaasi panna vajalike DOS failide nimed ja viirusetõrje tegi ära räpase töö... Õnneks tänapäeval on signatuuride failid krüpteeritud + algoritmid salastatud.

Aga ikkagit...kuidas kaitsta end viirusetõrje programmide apsakate eest...?

4. nov 2008

MSSQL : DDL trigger ehk paneme pirukasse muna

Üldiselt tavaolukorras ei ole DDL triggereid eriti vaja, ainus hea rakendus neile on andmebaasis toimunud muudatuste logimiseks. Olen seda vaid kasutanud testimisel , üks lihtne näide.


create trigger ainultadminn
on database
for DDL_TABLE_EVENTS
-- DDL_DATABASE_LEVEL_EVENTS
as
begin
declare @xmldat xml
declare @event nvarchar(128)
declare @sql nvarchar(max)
set @xmldat=EVENTDATA()
set @event=isnull(@xmldat.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(128)'),'')
set @sql=isnull(@xmldat.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)'),'')

if (CURRENT_USER not in ('dbo','sa')) and (@event in ('ALTER_TABLE','DROP_TABLE'))
begin
raiserror('--- Viga: Sa tegeled vale asjaga',16,1)
rollback
end
end;


Sündmuste tüüpide kirjelduse saab siit :
http://msdn.microsoft.com/en-us/library/bb510452.aspx

Ps. DDL triggerid on toetatud alates MSSQL 2005



Soovitan ka tutvuda Logon triggeritega, ala ntx. kasutaja Karu saab siis sisselogida, kui kasutaja Mesitaru on väljas jne

Logon Triggers

1. nov 2008

MSSQL: näita andmebaasi avatud transaktsioone

Täna olen MSSQL 2008 lainel, seetõttu veel näiteid...

Üldiselt Microsoft on ka palju toredaid näiteid kokku pannud, aga enamasti ei leia neid õigel hetkel.

Üks disainiviga, mis võib ilmneda halbadel juhtudel on avatud transaktioon ehk rollbacki - commitit ei järgne. Kaks SQLi:



-- seda kasutaks mina, näitab kõiki avatud transaktsioone
SELECT convert(varchar(5000),s.context_info) as sessioonisonum, s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS
(
SELECT *
FROM sys.dm_tran_session_transactions AS t
WHERE t.session_id = s.session_id
)



Microsofti näide oli, seal kuvatakse transaktioone, mis IDLE ehk üldse midagi ei toimu...

SELECT convert(varchar(5000),s.context_info) as sessioonisonum, s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS
(
SELECT *
FROM sys.dm_tran_session_transactions AS t
WHERE t.session_id = s.session_id
)


AND NOT EXISTS
(
SELECT *
FROM sys.dm_exec_requests AS r
WHERE r.session_id = s.session_id
)



Nii, teeme nüüd näite, mis võite katsetada testserveril !

declare @vb varbinary(128)
set @vb=cast('adminn, ma näen sind' as varbinary)
set context_info @vb
begin tran


Ja, kui adminn esimest päringut sooritab, võite kindel olla, et Teile helistatakse ;))



Üldiselt, kui last_request_start_time näitab, et transaktsioon avatud rohkem, kui 15 min...oleks arukas see lõpetada.

kill on Sinu sõber



Lõpetuseks veel üks hea SQL Microsofti poolt, vägagi efektiivselt leiab päringud, mis serverit koormavad !!!



SELECT TOP 55 total_worker_time/execution_count AS [Avg CPU Time],
SUBSTRING(st.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;

MSSQL : Fail varbinary/image kujul, tahaks lugeda tema sisu...

Redaktorites ja enamus utiliitides on blobide lugemine suht vaevaline, tihti lihtsam see blob salvestada. Kui ntx andmebaasis hoitakse tekstifaile, tahaks ju mõnikord pilgu peale heita.


Üks triviaalne sql:


declare @p varbinary(max)
declare @c varchar(max)

select @p=failikeha
from failid
where faili_id=1787449
/*
muutuja on ise varchar max tüüpi, aga ma ei soovi kogu faili "dumpi"
ainult esimesed 8000 märki, kui kõike vaja kirjutage 8000 asemel max
*/

set @c=convert(varchar(8000),@p)


select @c



varchar(max) on kasutusel alates MSSQL 2005 !

27. okt 2008

Naljakas aadress :)

Asciitable

Kunagi esimene kogemus arvutiga ja netiga oli see tippisin www.whitehouse.com ning "roosasid kiisusid" ekraan täis. Aga nüüd see aadress ikka muutunud rahva leheks...mitte, et varem polnud :)))

26. okt 2008

Programmeerijana tahaks natuke huvitavamat tööd...

Viimasel ajal on töö valdkond ikka vägagi igavaks läinud - php ja C# kliendi rakenduste loomine pole just innovatiivsuse tipp. Tõsta nupp paremale, siis vasakule, värvi siniseks, siis punaseks, siis enable ja disable...

Tunnen aina rohkem puudust SMP, multithreading, serviced, winapid, Apache moodulid, ISAPI...

Aeg-ajalt nö uurin vanu häkke, mis seotud süsteemidega ennekõike vaimu värskena hoidmiseks.

Paistab, et päästetee Linux, pole igapäevane Linuxi kasutaja, aga mul suur respekt Linuxi ees. Windows paneb ropendama, kaua seda arendatud, siiani ta arhitektuuriliselt nagu sveitsi juust.

Ojaa tõesti Vista küsib iga asja kohta, see nõuab admin õigusi...ala "do you wan't to shutdown / crash computer" ...sorry...adminni õigusi vaja...see oli nali pigem, aga umbes nii on.


Mis mulle ei meeldi Javas ja C# mäluhaldus, pigem on nii, et garbage collector hoiab asju seni, kuni ta arvab, et asju vaja. Tule taevas appi, enamus progejaid, keda ma kohanud ei tea enam isegi mis asi on STACK, ärme stackpointeritest üldse räägi. Mina progedes loen siiani bitte...viimasel ajal tehaks selgeks, et tänapäeva klientide arvutitel mälu piisavalt pole mõtet pingutada. See pole enam normaalne. Need mugavad programmeerimiskeeled võimaldavad kiireid tulemusi, aga resultaat pole masin-optimaalne ! Näen ainult kohmakaid rakendusi.

Tahaks näha mõnda mugavaks muutunud progejat PICi progemas...:)))

Loodame, et tehniline päike tuleb uuesti pilve tagant välja

Seniks head EIP'd kõigile

24. okt 2008

Kaua võtaks aega TcpView kirjutamine?

Sellise küsimise esitasin endale ning võtsin programmeerimisalase vaimu elustamiseks winapid ette, täpselt 40 min :)))

Tegelikkuses Sysinternasli TcpView on
graafiline variant programmist netstat.exe -a -b


Reaalsuses huvitavad sind ainult kaks apit ! GetExtendedTcpTable ja vajadusel AllocateAndGetTcpExTableFromStack

WinXp alates saab ka protsessi kätte, selleks peate kasutama lippu esimeses API's TCP_TABLE_OWNER_PID_ALL

UDP tabel ka olemas, aga pole nii huvitav ! Asenda Tcp API nimes lihtsalt UDP'ga

Kui soov laiendada, siis läbi MIB_TCPROW ja API SetTcpEntry saab ühenduse sulgeda, peate lihtsalt lipu lisama MIB_TCP_STATE_DELETE_TCB.


Seniks soovin kõigile : net helpmsg 4006 :))))

23. okt 2008

php ja "headers already sent"

Oli vaja lisada feature, et ühte lehte alati tõmmataks uuesti, pole midagi erilist. Tavaline asi

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

Aga sain vea, "headers already sent"... nii vaatasin, et include / required_one osad päises, viisin headeri koodi täitsa üles. Ikka viga ja öeldakse, et output tekkinud line 1 juures ?

Kratsin kukalt, mis lugu see veel on, testisin muutujaga headers_sent ja tulemus tõene.

No mis värk on...viskasin kogu koodi välja ning ainult jätsin headerid sisse. Ikka sama viga, tekkis tunne, et Basic authentication paneb näkku nö. Ei miskit...


Ja tunni aja pärast süttis tuluke, et saatan on peidetud redaktorisse !!!

Kui php faili tegin, siis kasutasin notepadi ja salvestasin UTF8 formaati no loogiline ju, et BOM
kirjutatakse faili algusesse. Redaktorid seda ei kuva ning php lehed ka ei kurda...


Jälle saime targemaks...

17. okt 2008

MSSQL : ja limit ?

Mysql sõbrad teavad, et limit käsk aitab neid alati. Limit 0,5 ... esimene offset teine mitu kirjet peale seda. Kuigi Mssqli pean ühte lihtsamaks ning võimsamaks andmebaasiks on seal ka natuke puudusi, just see sama limit. Tahad teha lehekülgi, kus kirjed kuvatud vahemike kaupa, tüüpiline veebinduse teema.

select top 45 * from kliendid top annaks lihtsalt esimesed 45 klienti vastavalt sorteeringule.

Kuidas ikka saada kirjete vahemikud ilma temptabeleid ja muud keemiat kasutamata.


select b.recnr,b.kliendi_id,b.eesnimi,b.perekonnanimi
from
(select top 1000 row_number() over (order by perekonnanimi asc) recnr,kliendi_id,eesnimi,perekonnanimi
from meiekliendid) as b
where b.recnr between 1 and 50

üldiselt over klauslis peate määrama mille järgi on sorteeritud subselect !

That's It!

Räägime ka enda tehtud vigadest...

Enamasti on Eesti programmeerijatel kombeks hirmsasti teisi kritiseerida, kuigi võiks ise oma koodi kriitilise pilguga hinnata !

Mõtlesin, et prooviks midagi uut, räägiks enda poolt tehtud rumalatest vigadest. Ütleme nii, parimad palad leidsin enda poolt tehtud suurimast Eesti teavitussüsteemist :)

Enamus vigu olid kiirustamise põhjused, sest toodet taheti hirmus kiiresti, testperiood minimaalne. Tüüpprobleem Eesti IT arendustes.


1: palake...

services oli globaalne muutuja, var i : integer;

nüüd, kuna tegemist on servisega ning mitmekümne kiuga, siis tore crash toimus.

function Tfastjob.doscanQueue...
begin
i:=jobsinqueue();
while (i<5) do
begin
end;
end;

Kujutage nüüd ette seda olukorda, esiteks see muutuja sünkroniseerimata, väärtustatakse globaalselt. Tulemus; mitu nädalat võib töötada, siis ootamatu crash.

...oleks pidanud olema...

function Tfastjob.doscanQueue...
var
i : integer;
begin
i:=jobsinqueue();
while (i<5) do
begin
end;
end;


Üldse, kui aus olla, on globaalsed muutujad kurjast, võimaluse korral ära kasuta neid ! Või koonda nad kuhugi struktuuri / klassi.

2: palake...

Transaktsioonide mismatch.
Ehk olukord
try
...startTransaction;


....kontrollin asju
if valeaegteavitada then
exit;


...commit tran
except
...rollback tran;
end;


Rollbacki ei tehtud ! Finally sektsioon puudus. Järgmine kord uuesti transaktsiooni avamisel eelmine tõmmati tagasi.

3: palake

Kutsud välja TADOStoredproc aga protseduuris tekib viga, kuid siiski protseduur väljastab dataseti..."viga" kaob kuhugi. Ja kood peale seda läheb programmis siiski täitmisele.


Lahendus, protseduurile anda error parameeter mida kontrollida.


create proc kypsetakoodi(@koodiliik int,@viga varchar(255) output) ...



Kiirustades ei saa ega tohi programmeerida !

16. okt 2008

Jipikajee...uus Lazarus väljas

Lazarus


Mis põhiline !!!

- The LCL now uses Unicode strings UTF-8 encoded on all platforms.
There are docs, tools and functions to help converting old code.

9. okt 2008

Link Delphi 2009 stringide kasutamise kohta

Pole kahjuks saanud Delphi 2009 testida, aga leidsin ühe blogi postituse, kus toimub stringi tüüpide tutvustus.

Delphi 2009 strings explained by example

Ütlen vaid huhh...kui varem oli widestring; string (ansi)...siis nüüd ...

8. okt 2008

YUI Treeview inline editing and dynamic node loading

Sai selline pealkiri pandud ennekõike seetõttu, et emakeeles kõlaks asi päris hirmsalt...

YUI treeview

Üldiselt Yahoo poisid teinud palju Web 2 stiilis komponente. Seekord vaataks Treeviewd.

Tüüpiline laadimise kood (2.6.0 ver):





function overrideSaveValue(v)
{
node=v.node;
//node.data.label = v.inputElement.value;
node.getLabelEl().innerHTML=v.inputElement.value;
alert(node.data);
return true;
}


function idynLoad(node, fnLoadComplete)
{


// lihtne json callback näide, success parameetrid sõltuvad kuidas välja kutsud
var oCallback =
{
success: function(oRequest,oResponse,oPayload)
{

var iNode = new YAHOO.widget.TextNode("test", oPayload.node, false) ;
iNode.data=...mingi json abil saadud elemendi id;
iNode.editable=true; // märgime, et inline editing lubatud
// kavalus laeme nö default handleri üle, et saaksime async stiilis andmebaasi kirjutada andmeid, kui nodet inline stiilsi muudetakse
iNode.saveEditorValue=overrideSaveValue;

// anname teada, et child item laetud !
oPayload.fnLoadComplete();
},

failure: function(oRequest,oResponse,oPayload)
{
oPayload.fnLoadComplete();
},

argument:
{
"node": node,
"fnLoadComplete": fnLoadComplete
},

timeout: 10000
};

// json väljakutse...

...
}

// loome puu...
var tree = new YAHOO.widget.TreeView("container");
var rootnode = tree.getRoot();

tree.setDynamicLoad(idynLoad, "ygtloading ygtvlph ");

// teeme ühe root elemendi...
var myroot = new YAHOO.widget.TextNode('Root node', rootnode, true);
myroot.data=0;
myroot.editable=false;

// võimaldame inline editi !!!!
tree.subscribe('dblClickEvent',tree.onEventEditNode);

// joonistame puu
tree.render();



Nii lihtne see ongi :))))))

5. okt 2008

X-tee, kui veebidisaineri õudusunenägu

Suht harva, kui vaja, pean seda vaheliidest kasutama, aga no liigendus - tule taevas appi ! Siis vahepeal seal tõstetakse menüüpunkte üles / alla (mingi sorteerimise teema, kui uusi linke pannakse). Ei tea, keda peaks paluma, et saaks X-tee disaini normaalseks. Loogiline liigendus 0, tabel-tabel-tabelis disain. Märgistikud paigast ära, mikspärast on mu nimi TAMMEV\304LI. Värvidest ma ei hakka üldse rääkima, sinisel taustal must tekst.

Imelik, et keegi sellel teemal sõna ei võta, sest enamus tuttavaid, kes kasutavad kiruvad samamoodi ?!?

29. sept 2008

Pöidlad pihku, loodan, et EMT 3G sõja ka nö lõpuni viib

Nii, asi selles oli vaja internetti uues elukohas ja valida oli mobiilse interneti ning Kõu vahel. Ehk vanad harjumused, aga otsustasin EMT kasuks, kuigi teadsin, KÕU levib paremini ning kiirem ka...

Kahjuks Audrus Huawei E220 modemiga ühenduses olles sain vaid EDGE kasutada, kuigi Vana-Sauga lähedal 3G mast väidetavalt. HSPA'd ei kusagil. Saatsin kirja ka EMT'i infosse, pigem huvitas proxy teema, et kas EMT ei tahaks teha M-interneti jaoks proxyt rajada. Elioni proxyd ei aktsepteeri EMT ühendust.

Küsisin ka huvipärast, et kas plaanis 3G'd laiendada ka Audru kanti. Öeldi, ärge seda eriti lootke...see pani mind mõtlema, et pean siis peale 2 a kasutuslepingut lõpetama teenuse. Tööd teha 100kb/s kahjuks pole võimalik, lihtsalt serveri SQL andmemahud on suured.


Aga täna meedias nö linke...võimalikust 3G "sõjast", mis jätaks mind EMT interneti kasutajaks. Tasuks kõik suurlinnade lähedased asulad varustada sellega vähemalt 10 km raadiuses. Ajad muutunud, inimesed suurlinnade lähedusse kolinud.

Kurvaks tegi ka see, et olin Kadriorus ja seal sain ka max kiiruseks erinevate testidega vaid 1.2 mb (kusjuures veel HSPA ühendus oli), mul oleks normaalse töö tegemiseks vaja min.2 mb...



Elisa plaanib 3,5G võrku investeerida sadu miljoneid



EMT plaanib järgneva kolme aasta jooksul võrku miljardi investeerida


Siin veel viide ühe kasutaja blogile, kes EMT internetti proovis...

EMT Internet

25. sept 2008

Uhh...kui oled javascripti ära unustanud

Pidevalt pean erinevate programmeerimiskeelte vahel hüplema, nüüd avastasin, et ma ikka väga palju javascriptist ära unustanud. Ega pea polegi prügikast, eks tuletan meelde kiiresti.

2 head lehte, mis tõid nö kohe teadmised tagasi.

Javascript 1

Javascript 2

Aga, mis põhiline HEA redaktor !

Scintilla

Tänaseks levi lõpp, pea pulki täis...

22. sept 2008

Das Hölle: Kuidas YUI 's teha andmede laadimine comboboxi dünaamiliselt JSON abil

YUI siis, mis ta on, ütleme komplekt visuaalseid vahendeid/komponente yahoo javascript failide abil. Täpsemalt lugemiseks soovitan lehte http://developer.yahoo.com/yui/

Nii, minul oli vaja teha dünaamiline andmete laadimine comboboxi. AJAXi inimestele väga tuttav teema, enamasti siis juba ajax vastab õige süntaksiga. JSON vastused natuke teine teema... Küll oli valida, autocomplete, datatablet, buttonit, aga mitte ühtegi korralikku dünaamiliste andmete laadimist.

Et vähendada teiste vaeva (sain pähklist jagu), panen JSON näite siia.


var ds = new YAHOO.util.DataSource("http://myserver.com/users.php?");
ds.responseType = YAHOO.util.DataSource.TYPE_JSON;

ds.responseSchema =
{
resultsList: "ResultSet.Result",
fields: [{key:"ID",parser:YAHOO.util.DataSource.parseNumber},"NAME"]
};


var oCallback = {
success: function(oRequest,oResponse,oPayload)
{

if (!oResponse.error)
{
var jsonresp=oResponse.results;
var dobject=document.getElementById("asyncdata");
if (typeof(dobject)!="undefined")
{

while (dobject.firstChild)
{
dobject.removeChild(dobject.firstChild);
}


for (var i=0;i<jsonresp.length; i++)
{
var newOpt = document.createElement("option");
var txt = document.createTextNode(jsonresp[i].NAME);
newOpt.setAttribute("value",jsonresp[i].ID);
newOpt.appendChild(txt);
dobject.appendChild(newOpt);
// alert(jsonresp[i].NAME+" "+jsonresp[i].ID);
}
}
}
},
failure: function(oRequest,oResponse,oPayload)
{
alert("Error "+oResponse.responseText);
},
argument: ""
}

ds.sendRequest("action=showusers", oCallback);

10. sept 2008

13. aug 2008

.NET/C# klasside omapärad selgeks

Nii pean tunnistama, et viimati kasutasin .NET 2006. Tegin väikese koolituse endale, kogu klasside omapära ja muude trikkide meeldetuletamine võttis vaevalt pool päeva :))

Kui Delphi ja osaliselt ka Java põhi all, ei ole .NET'is midagi keerukat.

Siin ka link mu ühest vanast dokumendist, mida kasutasin õppimisel

Klassid

Nüüd lähiajal tuletan veel meelde mõned SOA trikid ja kiunduse, siis võib öelda, et enamus "eluks vajalik" meelde tuletatud.

11. aug 2008

Vista turvaämber, mis mindki üllatas

See, et Microsoft ja maailm .NET hulluses sain ennemgi aru, aga et selliseid vigu tehakse masendav.

Windows Vista turvalisus murti maha?

...
.NET laeb näiteks .DLL faile internetilehitsejasse ja sellepeale eeldab Microsoft, et tegemist on turvaliste objektidega, kuna need on .NET objektid. Microsoft ei tulnud selle peale, et neid võiks kasutada astmetena teiste rünnakute ülesehitamiseks, sõnas Dai Zovi.
...


Ka mõtlemisainet (nõuab natuke süsteemsete asjade tundmist):

Bypassing PatchGuard 3

4. aug 2008

Mõned abistavad winapid, kui unicode VCL kirjutate

IsTextUnicode
GetGlyphIndices
GetFontUnicodeRanges
GetTextCharsetInfo
TranslateCharsetInfo
GetStringTypeEx
GetCharWidth32
GetTextCharset
IsDBCSLeadByte
IsDBCSLeadByteEx
MultiByteToWideChar
WideCharToMultiByte
BytesToUnicode

28. juuli 2008

Tiburon - Delphi uus tulek ?

Siit blogidest saab infot natuke veelgi

Üldiselt lugedes uutest asjadest, ennekõik lõppude lõpuks suudeti VCL viia Unicode peale. Jessus 8 aastat vist, TNTControls oli ammune abimees inimestel, kes tegid Unicode appse. Andmebaasi osale saadi ka Unicode toetus.
Delphi generic süntaks tegi ka rõõmu ! siin


Üks koht natuke tekitas külmajudinaid...String muutuja on vaikimisi nüüd UnicodeString, ehk endine WideString. Mõtlen enda koodikogumitele jah veelkord korra võpatan. Ehk siis, String muutuja = AnsiString, mis sai Pchar tüübis, see vist PAnsiChar. WideString vist säilis. 3 party komponendid teevad muret, seal palju transleeritud Winapisid.

Stringide juures tulevad muudatused

Kogu tõe saab vast teada alles toote müügile ilmumise hetkest.

Üldiselt võib näha Delphi tagasituleku märke, saaks IDE ka stabiilseks. Parim IDE üldse, Visual Studio oli minu meelest copy ja paste Delphi IDE'st. Loodan, et see .NET osa ka kas tehti eraldi tooteks või anti võimalus see välja rookida. Sorry...Net tore asi - aga missioonkriitilisi rakendusi ma seal ei tee.

Kui saadakse selle valuliku unicode üleminekuga ühele poole, siis ootan veel Commodoret...ehk win64 kompilaator.


Järgmine siht peaks Codegeari meestel olema PDA.

Igatahes soovin Codegeari meestele jõudu ja jäksu konkurentsis püsimisel, ma ka üritan ikka Delphi lippu kõrgel hoida.

Millist xml/xsl parserit kasutada Delphi's ja Freepascalis ?

Tüüp vastus oleks Windowsi programmeerijatelt MSXML, tõesti tore ja lihtsasti kasutatav vahend, aga ajad muutunud. Mida tähendab ajad muutunud: ennekõike seda, et kõik ei keerle enam Windowsi ümber nagu paljud arvavad, Linux teinud kõva hüppe ja 2 kodusel arvutil Ubuntu peal.

Mul oli vaja universaalset parserit, mis töötaks Delphi all ning ka Freepascali all.
Mis mul valida oli?

Open XML

Isenesest täitsa tore ja toimiv parser, SAX osa oli puudulik. Ainus viga, et XSL osa puudub. Kuna oli vajadus ka XSL süntaktsit kasutada.

Nii, vaatasin apache.org poole.

Xerces-C++ lib (xml töötluse jaoks)
Xalan-C++ lib (xsl töötluse jaoks)

Miks need ei sobinud, esiteks, mul tunne, et seal arenduses on pidurit tõmmatud; teiseks prototüüpide tõlkimine Freepascali alla oleks natuke liialt palju aega ära võtnud.

Siis tuli meelde Libxml parser. Elu nigu lill peale seda, olemas olid juba tõlgitud prototüübid Freepascali ja Delphi jaoks.
Nüüd ainus vaev on XSL süntaksite muutmine, kuna seal kasutatud MSXML spetsiifikat, enda vitsad peksavad nö.

Üks kasulik XSL abivahend ka

xsldbg

15. juuni 2008

Uh...mis saab paremat olla, kui Delphi 7 panna toetama Apache 2.0. / Apache 2.2. moodulite formaati

Kui ma oma esimese ISAPI mooduli kirjutasin 1999, olin juba siis vaimustuses selle kiiruses. Moodulis, mis ikka mälus ja sisuliselt masinkoodis...no pole võrreldavat tehnoloogiat veebinduses (kiiruses).

Kahjuks IISiga ei saa enam arvestada, MS on ikka MS.

Vaatasin Apache poole, seal avastamisrõõmu jagub, on küll ISAPI emulaator moodul, mod_isapi...aga ei tahaks ... logisevaid lahendusi toota. Igasugu emuleerimised jura.

Nii suunasin oma pilgu Apache shared module poole, aga oh häda
{Delphi 2005 and Delphi 2006 are no longer able to generate new Apache 1.x or Apache 2.x web server applications}

No selle elame üle, Delphi 7 üks stabiilsemaid. Kuid 2.0. ja 2.2. pole enam toetatud. Natuke googlet ja apache source vaatamist sain asjad tööle :))))

Enamus kavalat Delphi koodi saab taaskasutada, no mida veel tahta.

14. juuni 2008

Vista võib olla ikka paras arendaja õudusunenägu

Astusin sama reha otsa, millele ka see arendaja
ifileoperation-replaces-shfileoperation

Milleks kuramuse pärast peab olemasolevaid asju rikkuma...st MS poolt. Vähe sellest, et Vista emuleerib registrisse kirjutamist, kui reaalselt seda ei toimugi. Teeb mingi system dir sulle programmi kataloogi. Üldse seal niipalju igasugu jamasid, et sure ära.

29. mai 2008

Kas töötada väike- või suurfirmas (IT valdkond)

Üldiselt, nüüd kus 14 aastat programmeerimise valdkonnas olnud, hakkan tugevaid järeldusi tegema. Enamus ajast väikefirmades olnud <=6 inimest, küsimus miks, väikefirmades rohkem vabadust ja ma täiega naudin seda. Vabadus, ehk suudan ise tehnilisi lahendusi pakkuda, mida kasutada, kuidas, parim vahend teostuseks.

Keerukad lahendused nagu pidevat huvi pakkunud, suurfirmades neid eriti ei pakuta. Ütleme nii, et siis kulub osa aega projektijuhile seletamiseks, mis see on ja kuidas see on...kogetud...

Kui antakse valida, kas winapidega/com/driverite trikke teha või tavalist aruannet koostada, siis esimene kohe minu valik.

Aga nüüd pean ka väikefirmade headuse juures minema ka pahupoolele. Igasugused üritused suht harv nähtus, samuti vastutad peaaegu üksinda igasuguste keeruliste süsteemide eest, telefonis pidev support. Nö jooksed ribadeks, seletada muuta konfida...rohkem käsi lihtsalt pole selle jaoks ja mis põhiline kõik pidevalt "põleb" ajaliselt...

IT väikefirmad ei saa samuti riigihangetel osaleda, hankeseadused tehtud SUURTE jaoks, isegi kui sul firmas parimad pead ja arenduse hind palju mõõdukam, ei saa osaleda. Rikas riik, raha laristamine ei anna häbeneda, samuti konkurentsi peab kartma...

Siit tulebki olukord, kuna riigihankeid pole, siis pead leidma suurkliente, kas Eestis või välismaal, nüüd, kus mõned kliendid ära kukuvad, siis peale progemise, disaini, analüüsi muretse veel sellepärast, kas sul homme tööd on.


Kui AUSALT ütlen, enam väikefirmasse tööle ei läheks, huvitav küll, aga see närvikulu liialt suur, ei tasu ära seda jama.


Suured IT firmad võiksid rohkem väärtustada kaugtööd, kuna ise avastasin, et nö vabalt töötadese efektiivsus isegi 40% suurem. Istud metsas ja sisuliselt proged M - Interneti teel, elu nagu lill, töö sujub. Nii, et IT firmad võiksid suhtumist muuta, töötaja ei pea pidevalt kontoris passima, ta pole efektiivne. Skype erand, seal kaugtöö ka täitsa IN.


Vot nii lood...siin Maarjamaal

23. mai 2008

Eesti Loto on tase

Uus tase, see, et veebilehega varem olid ainult probleemid ja muud jurad...


Eesti Loto eksimus sundis võitjaid enammakstud raha tagastama

..."lugupeetud lotovõitja, kandsime natuke palju rulli üle"..kategooriast.

MSSQL : kui üldse kursoreid kasutad, siis kasuta kiireid

Ütleme nii, et kui vähegi võimalik, võiks kursoritest hoiduda. Reaalsuses pole see võimalik. Siin üks näide kursorist, mis serveris suht kiire.


set nocount on

create table #test1(a varchar(25))
insert into #test1(a)
values('esimene')
insert into #test1(a)
values('viimane')

declare @pintcurs cursor,
@amuutuja varchar(25)


set @pintcurs=cursor fast_forward for
select a
from #test1

open @pintcurs
fetch from @pintcurs
into @amuutuja

while (@@fetch_status=0)
begin
select @amuutuja

fetch from @pintcurs
into @amuutuja
end

close @pintcurs
deallocate @pintcurs

24. apr 2008

MSSQL : Kuidas queryt analüüsida, kui profilerit pole?

Kui pole korralikke graafilisi vahendeid MSSQL jaoks serveril, siis konsooli kaudu saab query execution plani järgnevalt kätte (mysqlis siis vastavalt explain käsk).

SET SHOWPLAN_TEXT ON
GO
SELECT *
FROM articles
WHERE title like '89%'
GO
SET SHOWPLAN_TEXT OFF
GO

19. apr 2008

Õues olevate turvakaamerate suurim vaenlane ?

Kui kunagi sat tv'ga tegelesin, leidsin, et olemas looduslik vaenlane LNB'le, sisuliselt olid kiiresuunajad ja sõbrad ÄMBLIKUD kudusid sinna sisse võrgu ning niiske ilmaga peale müra ei olnud ekraanil midagi. Tükk aega mõistatasin, mis lahti.

Nüüd täna avastasin, et nad ka väliste turvakaamerate vaenlased. Tihti pannakse turvakaamera kõrgele, et vargad ei saaks lõhkuda seda. Aga, kui pisike ämblik sinna ette võrgu koob on jama majas - eriti, kui udu ka veel olnud. Nii, et redel olgu majas olemas :)))

10. apr 2008

Kõige hullem veebileht üldse...ja võtjaks on Eestiloto

10.aprill 2008... Server not found
https://www.eestiloto.ee/

Nähti vaeva pandi uus disain jne jne...aga kas
A) riistvara unustati uuendamata
B) võeti kasutusele eelmise kodulehe backend !

Üldiselt...kas ei osata, ei taheta või ei viitsita !

26. märts 2008

MYSQL imelikud päringud

Feedreader Connect serverit arendades avastasin (MYSQL) omapärad

Mitu kirjet väljastab esimene SQL ja mitu teine ;)


select title
from articles
where deleted=0
limit 0,5
union all
select title
from articles
where deleted=0
limit 0,2;


select s.title
from (select title
from articles
where deleted=0
limit 0,5) as s
union all
select s.title
from (select title
from articles
where deleted=0
limit 0,2) s;

____________________

s.id unknown column ? aga miks või olen harjunud MSSQL mugavustega. Jah lause rumal, aga süntaks vägagi õige.



select s.title,s.id
from articles s
where (select count(*)
from (select s1.title
from articles s1
where s1.id=s.id) as ptt)>0
limit 0,5;

____________________

Ühel päringul kasutati fulltable scani, sunnime MYSQL indeksit kasutama

select *
FROM articles FORCE INDEX (IDX_Articles_modified)
where modified<'2005-01-01';

____________________

Ajutiste tabelitega on MYSQL tiimil veel tööd teha;
jah dokumentatsioonis ka öeldud, et see päring hetkel ei tööta...aga miks ...


create temporary table if not exists test(a int) engine = memory

insert into test(a)
select a
from test

25. märts 2008

Kaua võtaks olemasolevate rakenduste portimine Tiburoni

Tiburon

See, mida seal nüüd stringidega tehakse lausa masendav, minu arvates. Oli olemas Widestring ja String/ansistring, miks veel ühte tüüpi vaja. Tore ka teada, et nüüd VCL hakkab unicodet toetama, seda oleks pidanud aastaid tegema.

Nüüd, kui ikka vaikimisi on string = widestring, siis kuidas kuramus ma olemasolevad programmi üle viin uuele platvormile. Ärme unusta ka, et paljud komponendid suletud lähtekoodiga; kuidas neid ümberkomplileerida.

Samuti API'de kirjeldused, mille prototüüpe olen ise kasutanud.


Ma arvan, et antud Delphi versiooniga on lihtsam uut projekti alustada nullist, kui olemasolevaid portida. See unicode ei paku eriti huvi, sest unicode VCL oli juba olemas Tntcontrols näol.

Pigem ootaks 64 bitist komplilaatorit saaks keerukad serviced selle peale ehitada, mis kasutavad suurt kogust mälu.

19. märts 2008

Vista SP1 brrrrrr....

Suurus 450 MB peaaegu...

32 bitine SP 1

64 bitine SP 1

Homme siis hakkan installima, siiralt loodan, et arvuti ikka tööle jääb:( Mul nende SP pole kunagi vedanud. Igakord on mingi väga suur jama tekkinud...ebaõnn ?

6. märts 2008

acid3 test,..uhh, mida mu kõik sirvijad kuvavad

Link ka:

http://acid3.acidtests.org/

Mõtlesin, et prooviks IE8 betat ka selle lingiga, kuid ei julge veel installida:))
Internet Explorer 8

1. märts 2008

Jälle mingi ...t levib msn kaudu

Eile hakkasid tuttavate msni järjest mulle saatma... blaablaa partyblog {punkt}.info,
teadsin kohe, et see jura, pealehel küsiti MSN PAROOLI ja KASUTAJANIME ning mingit activeX taheti installida. INIMESED kasutage ajusid, ärge andke oma paroole kuhugi suvalistele lehtedele. Õnneks täna oli starman vähemalt nimelahenduse ära muutnud, et viis 127.0.0.1 peale.

Msn kaudu, mingid kahtlaseid linke ärge AVAGE

27. veebr 2008

Mulle rekordid meeldivad, aga mitte sellised !

Naisele postitati pakk Mustamäelt Eesti Posti kaudu, pakk saabus 2 nädalat !!! Ameerikast tuli mulle 3 kg pakk 3.5 kuud...keegi ei tea, kus vahepeal oli, träkker näitas, et ilusasti saabus euroopasse.

Eesti Post võiks tegeleda mitte töötajate vallandamisega ja postkontorite sulgemisega, vaid ülemuste vallandamisega ning kvaliteedi tõstmisega.

4. veebr 2008

Meeldiv uudis: Codegear tooted peaaegu miljonisse Vene kooli arvutisse

Kui alguses suhtusin suht pessimislikult, kui Codegear võttis Borlandilt Delphi üle...aga nüüd võib juba hakata rõõmu tundma ! Venemaal Delphi ja C++ väga populaarsed: mõelge miks ?

Viide artiklile

Väike test uudistelugejatele....

Nojah...juhtunud nii, et olen Feedreader backendi põhiarendaja, siis tekkis vajadus teha üks basic test feed...mis kontrollib turvalisust...
Jah neid teste netis jagub, kuid natuke mudisin, et oleks lihtne ning efektiivne.


Ütleme nii, kui konna ja hiirt näed, siis see pole hea:)))))

Feedi test

Samuti tooksin ühe uue mõiste feed output trashing...mis ka turvarisk.

Näide: artikkel, kus sees <TABLE WIDTH="9000" HEIGHT="9000" BGCOLOR="red">
siis tulemuseks üks väga rõveda disaniga veebileht, ärme unusta ära, eriti just seda näha online readerites. Samuti, kus palju FRAME ja IFRAME

Ehk üks "pahatahtlik" artikkel võib ära rikkuda terve online readeri kujunduse...need olid vaid lihtsad näited...reaaluses annab marginitega mängida nii, et nutt silmis.

Maailmas kahjuks on ka "pahatahtlikke" disainereid....

1. veebr 2008

Kuidas üks laev või riikidele kahju teha: ehk mis järeldusi siit teha

75 miljonit inimest jättis internetita kõigest üksainus laev

75 miljonit inimest jättis internetita kõigest üksainus laev

Tänapäeval, kus nett on lausa eluline osa, kogu info, raha jne liigub virtuaalselt on väga hea võimalus mingile riigile majanduskahju teha, lihtsalt tema põhisidekaablid meres lõhkuda, ka maismaal pole vahet.

Väike allveelaevake kogemata koksab kaableid, vihje ka Eestile...
Minu arvates peaks EU liikmesriigid tegema backup netiliikluse süsteemi läbi sateliitide, mille kaudu oleks kiire ühendus võimalik. Selle sateliidi kandesagedused võiks olla hüplevad takistamaks segamist nagu USA sõjaväe sateliitidel.

Tänapäeval enam "sõdu" relvadega eriti ei peeta, vaid üritatakse infokanaleid ellimineerida: samuti (energia/metalli) firmasid üles ostes ja energiakandjatega ähvardades...

30. jaan 2008

MSSQL : sunnime serveri kasutama õiget indeksit

Nonii...mõtlesin, et miks hoida infot endale, kuna ma vist 8 aastat MSSQL peal toimetanud, siis igapäevaseid hinte võin meeleldi jagada.

Viimati tekkis probleem ühe päringuga Feedreader Connect juures, mõtlesin, nii index pihta saanud. Päringud venisid, pöördusin vanade sõprade juurde...

DBCC INDEXDEFRAG
DBCC DBREINDEX

Ei mingit tolku ja siis vaatasin execution plani päring rõõmsalt lasi mööda primary indexit...ja mis lahendus...anna indeks ise ette ja kõik BRO:)))

select * from articles WITH (INDEX = delindx) where deleted=0

Ennem oli probleem selles, et andmeid polnud palju server "näris" läbi, seetõttu ei saanudki aru...mis toimub....

Jälle targem...olen mässanud protseduuridega, mis ilma WTH RECOMPILE määranguta töötavad 1 min....peale seda 20 sek...

25. jaan 2008

Mis hetkest on "Javascript" - "must be" staatuse saanud

Nonii, täna sattusin oma kodupanka Operaga ja üllatus, kontoseisu nägin, kui oli vaja Investori lehele saada avastasin, et oi oi...ükski leht ei toimi. Mõtlesin, nonii...karvane käsi kusagil...aga ei ei , lihtsalt Javascript maas. Kas tänapäeval peab igat lihtsat asja webpage's javascriptiga tegema, iga POST, GET jne jne.

Mulle ka javascript meeldib, aga enamasti ikka üritan vähemalt hoiatada kasutajat, et kuulge teil javascript maas...ehk oleksite kena ja võimaldaksite Javascripti.


Uus tehnoloogia, mis sisuliselt ei ole nii uus midagi, aga webpage "postide" arvukust vähendab mõnusalt ja dünaamilist lehekülje sisu lahe koostada.

AJAX (Asynchronous JavaScript and XML), aga kui sattusin ühele tuttava lehele, kus AJAX'it oli täis, tundus see leht nagu jalutu part arvutis. Ei toiminud miskit.


Et siin tekkiski küsimus, kas Javascript on tänapäeva veebis juba nõue (viidet tahaks) - kui jah, siis miks hoiatusi ei kuvata... ?

16. jaan 2008

PIN kalkulaator on jaburam, kui arvasin....

PIN-kalkulaatorid hakkavad patareide tühjenedes valesid koode andma

Et tarkvara püsib mälus seni, kuni paterei töös ?


Patareide vahetamist ei soovita kummagi panga esindajad. „PIN-kalkulaatori patareid ei ole mõttekas vahetada, sest kui avate seadme ise ning püüate vahetada patareid, kustub kalkulaatori tarkvara ning seda ei saa enam kasutada,“ selgitas Hansapanga pressiesindaja.

..ohjah...patarei vahetamine tehtud ka võimatuks, oli raske lisapesa teha ja ülejäänud kalkulaator nö kaitsta (neid meetodeid x tükki) "reverse engineering" eest. Kas see tõesti mingi kaitse, et kui patarei ära võtta, siis tarkvara kustub...issand teid küll...

Sun ostis MYSQL i ?

Sun ostis MYSQLi ...nüüd huvitab mind, mida see tähendab arendajatele ? Kommentaarid oodatud

15. jaan 2008

Hea link, kus loetletud rootkittide avastamise tarkvara...

Viimasel ajal väga popp küberturvalisuse teema, siis seal mängivad oma osa ka kavalad rootkitid. Seetõttu otsisingi, milliseid vahendeid võib leida ning leidsin lehekülje.

Antirootkit

Sealt tundsin ära; F-secure blacklight, Rootkit Revealer... Liikudes veebis kiideti ka Gmeri, pole veel jõudnud proovida. Aga, kui tutvustust lugesin, siis oli paljutõotav....

Omapärane rootkit: MBR rootkit, tuleb välja, et Windows (ka Vista) lubavat tavalises user modes kirjutada MBR peale rõõmsalt..."tule taevas appi"

Nii ja ma arvasin, et tean juba It maailas midagi....

...tühjagit sain teada, kes on veebihäkker...:)))

Töökuulutus veebihäkker


Ma ikka lootsin enamat, et ikka mõne buffer overflow'ga pannakse arvuti kalinkat tantsima....

14. jaan 2008

Hanza.net on imeline...

Öine elanik nagu olen, tänu erinevatele projektidele, siis arveid tasun öösel.

14 jaan 2008 00.25 Võtan ette, tasun arve.
Küsib pin kalkulaatori andmeid, panen kõik andmed ära soorita makse.

Lupsti makse nagu läks läbi, vaatan siis oma kontoseisu, mitte midagit, ei ole bronnist lõhnagi ja üldse infost, et makse sooritasin. Kuna summa oli päris suur muutusin murelikuks. Võtsin veelkord vaatasin üle kontoaruande no mida ei ole see makse... Kratsisin pead, arvasin, nojah...ju ma ületöötanud, et vajutasin ehk cancel. Mõtlesin, no ikka klikkisin soorita makse peale ja tahtsin korra veel aruannet vaadata.

00.35 juba teade
Tehnilistel põhjustel on väljavõtete tegemine peatatud veerandiks kuni paariks tunniks! Palume viivituse pärast vabandust.


Erialaselt ma ettevaatlik kohe sama operatsiooni kordamisel, otsustasin hommikul uuesti vaadata, mis kamm on. Ja ÜLLATUS ÜLLATUS, makse sooritatud, kontolt asjad mahavõetud. Mis mind tigedaks teeb, et ei osata süsteemi disainida, mõneks hetkeks jääb raha nagu X olekusse...no kuulge mehed !!! Pange vähemalt märge, et raha broneeritud (mida arvab inimene, kui näeb täpselt sama kontoseisu). See aruannete arvutamine jäägu teie südamele !


No eks parim oli see, kus vist aasta tagasi, ka õhtul tasusin liisinguarve. Vaatasin, et bronn ka peal, ok ja rahuliku südamega sõitsin järgmine päev ära välismaale. Varsti helistab liisinguhaldur, et teil makse tasumata, ma julmalt vastu mida te ajate. Võtan siis ette hanza.net ja ülla ülla, broneeritud summa tagasi tulnud. Aruandes ei mingit kippu ega kõppu tehingust. Mehed, kui ROLLBACKI teete, siis palun ka seda kasutaja aruandes kajastada. Kasvõi mingi süsteemiveana !

VIGADE vaikimine on süsteemis suurim VIGA üldse !


See, et tihti investori kauplemisliideses ei näita tehinguid või NaN summad juba harjutud....


Ma olen mängu poolt, kui mingeid tasusid võtate hooldustasud jne jne, siis eeldan ma ka , et te oskate asju kvaliteetselt teha !

12. jaan 2008

Arvamusi tarkvara maailmast...ja käekäigust

Nüüd vist võib juba sõna võtta - ametlikult olen programmeerimisega seotud olnud maagilised 13 aastat.

Suuremad muutused, mis tarkvaraga toimunud:

1) programmeerimine on aastatega aina lihtsamaks läinud (keeled;.netC#/Java)
2) tugev avatud lähtekoodi pealetung (kummardus ka Linuxi poole)
3) enam ei müü toodet see, kellel parem kvaliteet vaid suurem HAIP

--------------------------

Nüüd võtame täpsemalt need pidepunktid vaatluse alla

1) Jah .net tõesti hea keel, nüüd kus saad ka Unicodet kasutada ilma trikke tegemata, ennekõike on minu arust kõige kasulikum olnud asp.net osa.
Varem kulutasin suht palju aega veebide visuaalse poolt koostamiseks ja siis koodi kirjutamiseks. Huvitav, miks Ajaxit varem ei kasutatud:)))
Java suhtleliselt lihtne keel oma moodulite ja võimaluste hulgaga, ei pea ise eriti miskit juurde leiutama.

Viimase suurim probleem on tema kohmakus ja nagu alati intepretaator keeltega probleem kiirusega. Mis mind hämmastab, on viimasel ajal nagu rõhu panek uutele kelladele ja viledele, mitte kiirusele.

.net, sama lugu - kiirem, kui Java, aga siiski on aeglasem, kui Delphi/C++ app'd.

Nähtamatu sõda on alanud Java ja .net vahel, saan ka aru MS soovist siduda kliendid ühe kindla platvormiga, pakkudes selles väga "maitsvaid komme".
Linuxi all on .net emulaatoreid, aga jah...uimane teema oli, proovitud.

.Net "sööb" Java turult välja...

Miks ma rõõmus pole, kui need keeled olemas...põhjus väga lihtne. Olles vana kooli programmeerija, kes alustas ASMiga ajasin taga igat bitti, mis mälus paiknes.
Ka rakendasin algoritme, et kasvõi 1 millisekund võita.

Tahan öelda mugavad programmeerimiskeeled rikuvad app'de kiirused.
Nüüd, kus arvutid 2>ghz ning 1gb mälu, ei pööra keegi enam tähelepanu, et kas miskit vaja optimiseerida või palju mälukasutus. Masin närib ju kõik läbi...ja see suhtumine annab meile lõpetuseks uimased arvutid.


Pole nali, olen testinud ka programme ning mulle öeldud, et mul liialt aeglane arvuti ? 1.8ghz / 512mb aeglane ühe app jaoks... "No tule taevas appi", nagu ütles klassik.

"Garbage collector ", pigem programmeerijate vaenlane, kui süsteem tegeleb sinu mäluhaldusega 100% muutub ta lohakaks ja sellest palju näiteid, kuidas inimene C++/Delphi unustab mälu vabastamata.

Tüüpide täpse kirjeldamise nõue teeb küll rõõmu,
samuti objektorienteeritud struktuur.

2) Avatud lähtekood ja üldse vaba tarkvara tulek on tervitatav nähtus.

Nüüd saan rahus koodist lugeda, et mida ta ka teeb, samuti vigu parandada.
Samas on ka halb moment, kui korraga mitu isikut seda koodi mudib,peab ka olema muudatuste kontroll , nö ka quality check, seda tavaliselt ei ole.


Nüüd ka huvitav teooria, avatud tarkvara pealetulek on väljasöönud mitmeid väikefirmasid, kes sarnast tarkvara arendasid, me ei räägi suurtest monopolidest.

Oletame, teete tarkvara mingile firmale, hoitakse kliendi andmeid, koosolekute tähtaegu jne. Nüüd tuleb isik X, kes teeb sama asja, võimalik väikeste nüansidega ning avaldab lähtekoodi. Sisuliselt tõmmati sinu firmale vesi peale, miks peaks klient seda enam sinult ostma, kui ta saab sama asja tasuta...

Jah, see sunnib sind rohkem pingutama uusi lahendusi pakkuma.
Kahjuks lahenduste kopeerimine (kasvõi kaudselt) vägagi "in".

Ellu jäävad firmad, näiteks Eestis, kes omavad ka arvutite müüki või tegevad veel muul alal. Samuti need, kes riigihangetele pidevalt panevad käpa peale, sest riigihangete seadus nii kirjutatud, väikestel pole väiksemat võimalustki osaleda. Näiteks: käibenõue....

Varem oli veebilehed / CMS väga hea raha allikas, tuli igasugu vabavara (avatud tarkvara) peale, enam ei pidanud suurt disain teenust ostma. Samuti see osa kukkus ära. Õnnetud kliendid, kellel koduleht X firma serveris ja peab iga kuu teenustasu maksma ning lähtekoode ei saa.

Ehk ellu jäävad tulevikus ainult suurfirmad, kes seotud mitme valdkonnaga. Või väikefirmad, kes tegelevad väga spetsiifilise valdkonaga ala lennukimootorite juhtploki kontrollerite programmeerimisega.

Kokkuvõte, jah kasulik seetõttu, et tõi kiiremat innovatsiooni arvutimaailma, samas on ka juba ohvreid nõudnud ning nõuab ka tulevikus...
Vaadake ka suurte heitlust, kuidas pakutakse võidu teenuseid, MS vs Google vs Yahoo (kes kahjuks sörgib järgi).


Küsime ka nüüd nii, mitu tarkvara firmat Eestis järgi jääks, kui kaoksid ära riigitellimused...kus liiguvad suured rahad.

3) HAIP, selles lühidalt. Kui varem kiideti tarkvara ja tema omadusi, siis turule on tekkinud niipalju tooteid, kus kiidetakse ennast taevani. Erinevatesse portaalidesse sisestatakse oma reklaami jne jne . Juhul, kui tarkvara kohta keegi halvasti ütleb, siis on massipsühhoos peal, see parim toode, mida sa räägid. Mitte keegi ei lähe reaalselt proovima toodet, mis sellest isegi 2x parem, sest pole piisavalt haipi.
Haip on minu arust reklaami erivorm...

Tihti ma öelnud, mind ei huvita mida toode võiks teha, tahan näha, mida toode ka reaalselt suudab ja kui ei suuda, siis money back...tihti seda võimalust ei pakuta, huvitav miks;)



Ok levi lõpp tänaseks...pea php,javat,delphit,mssql proc. koodi nii täis, et valutab...;) Korraga mitut keelt kasutada päris sürr, sest kui pea väsib, kirjutan java's delphi koodi, php's mssqli ja mssqlis javat :))))



Ennustan seda, et programmeerija kui selline amet kaob ära 10 aasta pärast...4'nda põlvkonna programmeerimiskeelte tõttu....

11. jaan 2008

Kood arhiivist nr 1 (ära luba debuggerit)

Leidsin, et aeg niipalju edasiliikunud, võiks hakata vanu koode avalikustama, mis olid omal ajal aktuaalsed. Antud kood oli mul kunagi ühes kommertstootes, mida üritati debuggeri abil töödelda, siis kui veel häkkimine oli popp. Tegin ühe lihtsa lahenduse, mis isegi toimis 40%....

Nagu ma kunagi ütlesin, hackerite vastu ei saa (peaaegu võimatu), neid tuleb võtta, kui sõpru, kes viitavad koodivigadele....

Kood aastast; 99 vist lausa
....
var
CDDE : Boolean = true;
handler : dword;

function exception_handler(var exceptRec : exception_record;
const EstablisherFrame : Pointer;
var ContextRecord : _Context):integer;stdcall;

begin
asm nop end; CDDE:=false;
inc(contextRecord.Eip);
contextRecord.Dr0:=0;
contextRecord.Dr1:=0;
contextRecord.Dr2:=0;
contextRecord.Dr3:=0;
result:=0;
end;

begin

handler:=dword(@exception_handler);

asm
push handler
push fs:[0]
mov fs:[0],esp
int 3 nop
mov fs:[0],esp
add esp,8
end;

if CDDE then
asm
@@BadNews:

cld
cmp SysUtils.Win32Platform,windows.VER_PLATFORM_WIN32_WINDOWS
jne @@NoCli

@@cliLoop:
cli
jmp @@cliLoop

@@NoCli:
wbinvd
jmp @@BadNews
end;
end;

end.

10. jaan 2008

Delphi arendajad hulluks läinud ?

http://blogs.codegear.com/abauer/2008/01/09/38845


>Will I be able to still use the AnsiString type?
Yes. No existing types are being taken away.

>What about Char and PChar?
Char will be an alias for WideChar and PChar will be an alias for PWideChar


Sisuliselt String tüüp muudetakse UTF16 Stringiks. Mida see tähendab, et kõikjal, kus kasutasite STRING muutujat, peate ümbernimetama AnsiStringiks...ei kõlagi nii jubedalt. Jah, kui mõtlen sadade tuhandete ridade peale, mis töötanud laitmatult ammusest ajast.

Olen kindel, et mul 90% programmidest ei kompileeru enam....
Char tüüp muutub WideChariks...mehed te teete nalja....

Paistab, et tuleb jääda pidama Delphi 7.0 / Delphi 2005 peale.
Või minna Freepascali/Lazaruse peale, mis eeldab omakorda muudatusi.

Täna öösel vist ei maga...

4. jaan 2008

Inimesed ja nende privaatsus arvutimaailmas...

Nii, ükspäev leidsin, et ühte privaatsuse valdkonda pole üldse eriti puudutatud, mis puudutab nö mikrofone/veebikaameraid. Mõte süttis seetõttu, et kunagi tegin tarkvara pcturva, mis mu kodulehelt ka saadav (http://ingmar.planet.ee/). Antud tarkvara aitas mul tuttavate arvutitest omal ajal leida igasugu pahalasi, kui spybot,ad-aware olid suht nõrgad veel. Seal oli mul heuristiline analüüs, kas tarkvaraliselt sinu klaviatuuri loetakse (windows hooks). Jah, kui klaviatuuri lugemine draiveri tasemel, siis ei tööta see, pole aega olnud, see oleks tunduvalt keerulisem analüüs. Kuid töötas, sain nii mõnegi tuttava arvutist kätte igasugu huvitavaid keyloggereid.

Aga nüüd selle teise teema juurde...kellel poleks arvutis Skypet ja Msni, isegi vanaemadel....
iseenesest ju tore ja armas, et inimesed nüüd suhtlevad tunduvalt rohkem.
Kuid on olemas kaks vägagi suurt turvariski: mikrofon & veebikaamera.

Nüüd lisame veel valemisse kaks muutujat; kuritahtlik/uudishimulik programmeerija ja tellija kellel seda toodet vaja.

Kujutage ette on firma äristrateegia arutelu ja nö konkurent "sokutab" ühe kavala tarkvara sulle arvutisse, ok keyloggerid ja muu jura vana ajastu. Aga uuem troojakas...kes õigel hetkel striimib koosoleku vestlust õigetele isikutele või salvestab kettale faili ning õigel hetkel kui arvuti idle uploadib õigesse kohta näiteks. Samuti tüdrukutele meeldib webcam ees tihti olla, nüüd natuke ettekujutusvõimet, sul naabrimeheks "geek'ist" arvutimees ja käib mõne korra arvutit konfimas... Kes või mis keelab webcami sisselülitada remotena, ega pidevalt ei pea videot striimima jätaks jäljed. Vaid mõne aja tagant frame saata, targem paneks ka analüüsi, et kas eelmine ja hetke frame sarnased, kui kedagi pole toas ei toimu miskit huvitavat.

Kui varem oli kahtlast aktiivsust lihtne avastada, arvuti kiirus langes või neti ühendus langes, siis hetkel on arvutid väga väga kiired, samuti netiühendus ning wifi ka olemas, ehk nett suht levinud linnas.


Näiteks minu arvutil on mikrofonil lüliti, mille ise sisselülitan, et suhelda Skypes; webcam on USB pordist lahti ühendatud.

Paranoia, maybe...aga kuna tean mida ise suudan valmis progeda, siis ma ei kahtle , et seda suudavad paljud kordades paremini.... Natuke mõtlemist teile...

Mida kõike võib leida CSS failist:))

Otsisin ühte enda CSS faili ning sattusin juhuslikult Postimehe css faili peale... Ja ülla ülla...

http://www.postimees.ee/lib/style.css

Liikusin faili lõppu ja ...
.....

{visibility: hide;}
.tac {text-align: center;}
/* uus avaleht stop */

/* PS. mine p***** cache server */



Ma pole ainus kellele cache serverid peavalu tekitanud :))))

1. jaan 2008

Miks Eesti Loto "vihkab" internetis mängijaid...

Nii, täna ka kurikuulus Viking Loto aastaloos...see selleks.

Tahtsin piletit osta Vikingit 1.jaanuar 2008, no tore, esmalt logis sisse mingi 45 sekundit, pole mõtet rääkida, et minu ühendusega miskit viga. Ei ole midagi sellel viga.

Soovisin piletit osta, panin oma lambi (ehk) ka õnnenumbrid ära ning vajutasin valmis. Ning siis ennäe, kui armas, Tehniline viga ning uuesti suunati sisselogimisse. Loomulikult polnud enam mu numbritest lõhnagi enam. Joptvaja mat, nende süsteem maksis 20 miljonit, ja koduleht ning serverid oleks nagu 1 kursuslase poolt hallatavad.
Peale suurt ponnistus, sain kätte oma 10 kroonised Vikingi piletid, ärme unusta ära, et piletid kallinesed 1 jaanuarist 2008 olid 8 eeku nüüd 10 eeku (väidetavalt kohaliku võidutasandi tõstmiseks).

Ok, aastaloos, noh täpselt sama kamm, mis eelmine aastagi, isegi tarbija 24 oli teema eelmine aasta, siis väideti ei ei ei ole nii, mis te nüüd, imelik olete.

See aastaloos ei võitnud ühtegi interneti teel registreeritud piletit, hmmm...miks, hakkame pihta detailidest, jällegit prinditud inteneri piletid mingile peldiku paberile, mis pole isegi samas formaadis, mis tavaline terminali pilet. Arvatavast tüüpiline A4 paber. Krt kas pole võimalik siis panna ühte terminali neid pileteid printima, mis internetist registreeriti loosimiseks.
Paberite suurus ja formaat mõjutab loosimist, aga no ei saa ilmatargad sellest aru !!!!

Üldiselt, pole veel vaadanud, kas peab olema antud riigi kodanik, aga soovitan vaadata linke

Tipp24.de
Veikkaus

Viimase lingi pealt saab vähemalt Vikingi numbrid teada, kui meie armas Eesti Loto sait maas, mis suht tavaline komme.

No nii karvased ja sulelised...uuel aastal uue hooga...more power

Nii leidsin siin uusaasta konserte vaadates 2008 horoskoobi...vähi tähtkujule....mitte, et ma neid usuks, statistilise eesmärgiga tuleb kõrvale panna....


Sel aastal on oht, et teid võidakse kas tahtlikult või ka tahtmatult mingil moel petta, tunduvalt suurem kui mõnel muul ajal. Kui te võtate sel aastal käsile ükskõik millise kinnisvaratehingu, siis olge hästi ettevaatlik ja tähelepanelik ning püüdke kõik pisiasjadeni hoolikalt läbi analüüsida. Võtke niisugustes asjaajamistes kindlasti appi kogenud nõuandja, kuid ta ei tohiks olla Vähi päikesemärgi esindaja.
Isiklike suhete valdkonnas sujub kõik suurepäraselt. Oskate olemasolevaid suhteid muuta senisest veelgi kindlamaks, kõrvaldada neist võimalikke pingeid ja tuua sisse uut värskust. Kui olete üksik, siis arvatavasti leiate endale toreda partneri. Ka tööalastes partnerlussuhetes valitseb enamalt jaolt harmoonia ja üksmeel. Väga hea aeg igasuguste partnerlussuhete parandamiseks ja uute loomiseks on veebruari alguse ja juunikuu keskpaiga vaheline periood ning aasta viimane kuu.



Kui töötate kirjastuses, kaubanduses, õpetajana, giidina, reporterina, siis ei suju teie töö nii ladusalt, kui lootsite. Suhteliselt sagedasti võib tekkida ettenägematuid takistusi ja keerulisi olukordi. Kui te oma käitumist piisavalt ei kontrolli, siis lähete tööandjaga tülli. Võib juhtuda, et pingutate ennast tööga üle, väsite ära ja lähete närviliseks. Püüdke lõdvestuda ja ennast korralikult välja puhata, muidu võivad teil tekkida seedehäired või ka mõned muud haigusnähud.
Ka hariduse omandamise ja täiendamisega võib teil olla päris tõsiseid raskusi. Eriti palju takistusi tekib põhikoolis ja ka gümnaasiumis õppijatel. Tunnete, et te ei suuda mitte kuidagi süveneda ainetesse, mis teid väga ei huvita. Sünnipäraselt suurepärane mälu kipub teid sel aastal aeg-ajalt alt vedama. Äsja kooliteed alustanud Vähist lastel ei lähe koolirutiiniga harjumine ja klassikollektiivi sulandumine kuigi libedalt. Selles osas peaksid vanemad ja õpetajad neid igati aitama.
Ent kui teil tekib töö või millegi muuga seotud vajadus või tahtmine oma teadmisi täiendada, siis edeneb niisuguste alade õppimine, millega te varem ei ole üldse kokku puutunud, imekspandavalt hästi. Võib-olla tehakse teile sellekohane ettepanek, võib-olla avaneb selleks äkitselt intrigeeriv võimalus või ärkab teil endal huvi millegi uue vastu.
Ärge väga pikalt mõtlema jääge, sest nii head seisud ja võimalused ei kordu kuigi tihti.



http://www.ekspress.ee/2008/01/01/meelelahutus/420-pauksonite-horoskoop-vahk