Archive for 22. okt. 2009

Raamatupidamistarkvara saagad Eesti moodi jätkuvad….

oktoober 22, 2009

Tarkvaramüüjad panid raamatupidajad sundseisu

Vanem postitus:

Kui uut tarkvara ei osta, enam vana kasutada ei tohi ?

Tasuta raamatupidamistarkvara www.stiigo.com

Üldiselt ma ei tea, kas see nüüd halb uudis või hea uudis. Aga mõtlesin taolistele saagadele vastu hakata ning väga omapäraselt – Freeware rp. tarkvaraga. Halb uudis on ehk see, et ma suudan esimese testrelease välja anda alles aasta pärast 😦

Tean, enamus ei usu, et mul see õnnestub – vahepeal ise ka kahtlesin, õnneks entusiastid aitasid sellest üle saada. Mitmeid kordi kuulsin Ingmar tee üks normaalne raamatupidamistarkvara.

Aga nüüd minu poolne pöördumine – mul olemas üks väga hea konsultant raamatupidamise alal, kahjuks hetkel tal väga kiire. Kui leidub veel abilistest entusiaste, kes usuvad, et ma suudan selle välja vedada ning nad tegelevad raamatupidamisega, siis andke endast teada. Ütleme nii, konsultantidel on “priority level 1” ehk nende soovid tarkvaras täidetakse esimesena !

Programmeerimine see kõige lihtsam osa, olen ikka igasugu asju elu jooksul teinud, kuid tõesti raamatupidamist veel mitte ! Selletõttu vajangi nutikaid konsultante. Kontakt : ingmar<ätt>planet.ee

Väike demo screenshot, tõestamaks, et ma ei aja udujuttu.
pretest

Üldiselt algul saab backend olema Postgre – JAH ta hakkab ka Linuxil tööle. Native application, tulevikus tuleb ka SOA osa kindlasti.

——————
Võimalik, et ajan enda varju taga, võimalik, et mitte…

Advertisements

Salvestame lugusid Youtubest…

oktoober 19, 2009

Üldiselt tean tean, “3.14-raa-tlus” paha paha. Aga seal niipalju selliseid lugusid, mida pole võimalik enam kusagilt saada (osta). Pean ütlema ka 95% tuttavate arvamuse, et hetkel Eesti popmuusika meenutab kassi kräunumist. Esmalt tasub õppida eesti keeles laulma, siis alles inglise keeles. Analoog: panin 90ndate muusika mängima – kass rõõmsalt mängib lõngakeraga, tuleb meie uuema ajastu popp, kass teeb omale lõngakerast silmust mida kaela panna, isegi tema närvikava jaoks see liig, mis liig.

Aga see selleks…

Tean, et olemas selline asi nagu YouTube Downloader Üldiselt mina ei saanudki seda tööle X viga, loobusin sellega mässamast (minu arvuti ehk ületurvatud). Ps. selle programmi installeerimisel võtke kindlasti maha toolbaride linnukesed (2 tk), muidu on teil mitu päeva kirumist garanteeritud.

Siis mul arvutis selline tore programm Audacity

audacity_save

Sealt ülevalt menüüribalt paremalt poolt valida: “Stereo Mix” ja Volumega saad siis salvestatavat helinivood reguleerida. Mis seal ikka paned programmid kõrvuti, Youtubes lugu mängima ning Audacity Record nupp alla ning lugu läbi, siis Stop. Tihti puuduvad paladel sujuvad lõpud, siis selekteerige umbes 5 sekundit loo lõpust, siis menüüst Effect->Fade out.

Salvestamisel ikka jälgige ka, et Youtube lugu oleks stereos, üldiselt inimene juba kõrvaga tunneb selle ära. Aga kui üleval see VU – meter … tõlge koht, kus postikesed hüppavad. Need postikesed ei tohi ühtemoodi pidevalt hüpata, siis tegemist monoga.

Loo salvestamiseks -> File ->Export ja sealt lihtsalt Ok vajutada. Vaadake, et siis salvestustüüp oleks MP3 (soovitav).

Kui olete mingi portsu faile salvestanud kataloogi, siis on soovitatav ka failide valjudus enam-vähem samaks timmida. Mina olen kasutanud selleks: MP3Gain nimelist programmi.

Lõpetuseks KINDLASTI saab tunduvalt lihtsamalt lugusid salvestada, aga see meetod oli minu jaoks üks lihtsamaid. Ei mingit vaeva ja karja tundmatuid programme ning kunagi ei tea, millal tuleb tahtmine lugusid kokku miksida 🙂

Interneti raadiote salvestamisega lihtne: Screamer Radio

Jälle need vaesed reklaamid…

oktoober 16, 2009

Seekord huvitav artikkel Äripäevast.

Kas AdBlocki kasutaja on varas?

Konflikt on üha teravnenud, sest Firefox ja AdBlock koguvad aina enam populaarsust. Michael Lankton Connected Internetist väidab, et kasutajatel ei ole õigust reklaame blokeerida. „Minu lehele tulles on sul õigus klikkida ükskõik millisel reklaamil või jätta klikkimata ning mitte pöörata neile tähelepanu. Kui sa aga blokeerid reklaamid, siis sa varastad minu lehte külastades,“ väitis Lankton.

On ka veebilehti, näiteks MediaFire, kust on tulnud ähvardusi asuda Firefoxi kasutajaid blokeerima. Mozilla on aga keeldunud sellist sorti väljapressimisele allumast.

Pole midagi teha, reklaamipakkujad peavad muutma reklaamid huvitavaks, mitte kuvama “vilkuvat läbu”. Tulevikus vist ehk enamus reklaame WebGL abil tehtud 🙂

6 API’t, mis nullivad Windowsi turvalisuse

oktoober 13, 2009

Üldiselt, kui alustada, siis ma ikka nö Windowsi sisemise eluga kursis alates win 95 ja mis kõige hullem, tee nii hea programm, kui vähegi suudad, on antud op.süsteemi jäetud API’d, mis programmi turvalisuse sisuliselt ära nullivad. Vista küll küsis kõike ja küsis veelkord kõike, aga kui mingi programm oli käivitatud, siis toimus kõik vanamoodi. Windowsis lihtne ntx tavauser ei saa programme modifitseerida , mis töötavad system kasutajanime all: ntx serviced. Samas saab ta modifitseerida programme mälus, mis töötavad tema õigusruumis. Troojakate lemmik explorer.exe sinna ikka lisatakse igasugust jura.

Vistas on tõesti ka mõiste Protected Processes. Minu arvates peaks enamus protsesse seda tüüpi olema, ükski teine protsess ei tohiks tulla teist “sodima”. Inside the Windows Vista Kernel: Part 3

Further, to prevent compromise from within, all executable code loaded into a protected process, including its executable image and DLLs, must be either signed by Microsoft (WHQL) with a Protected Environment (PE) flag, or if it’s an audio codec, signed by the developer with a DRM-signing certificate obtained from Microsoft. Because kernel-mode code can gain full access to any process, including protected processes, and 32-bit Windows allows unsigned kernel-mode code to load, the kernel provides an API for protected processes to query the “cleanliness” of the kernel-mode environment and use the result to unlock premium content only if no unsigned code is loaded.

API’d, mis on täiesti “saatanast”. Nende APIde kasutamine peaks nõudma kasvõi seda, et exe sertifitseeritud või midagi taolist.
SetWindowsHookEx Rõõmus API, ei tea kas meelega disainitud, et keyloggerid saaks tegutseda (WH_KEYBOARD/WH_KEYBOARD_LL/WH_JOURNALRECORD) ja firmad oma turvatarkvara tooteid müüa. Miks ma nii ütlen ?
On üks tore hook WH_DEBUG, seda kasutasin oma Pcturva programmi juures (2000 aastal), kui polnud veel korralikke keyloggerite avastajaid.

typedef struct {
DWORD idThread;
DWORD idThreadInstaller;
LPARAM lParam;
WPARAM wParam;
int code;
} DEBUGHOOKINFO, *PDEBUGHOOKINFO;

Nummi struktuuri, kas pole. Aga oih… idThreadInstaller Ühest hetkest NT’s maailmas hakkas see 0 näitama, et poleks kuidagi moodi võimalik teada saada, kes “haagi” paigaldas.

Tore ka sündmus, et see “haak” ning temaga seotud DLL laetakse kõikide protsesside külge. Osa tarkvarasid väidavad, et välistavad nö haake “user levelis”, tegelikkuses nende programmide efektiivsus sõltub, kas nad on esimesena käivitatud. Nad lihtsalt panevad ise ka “haagi” püsti, aga CallNextWindowsHooki ei edasta mingitel juhtudel. Siis ongi teised logijad pimeduses.

CreateRemoteThread

Creates a thread that runs in the virtual address space of another process.

Sisuliselt saad suvalise protsessi külge panna tööle oma lõime(d); kuna lõim protsessi küljes, ei keela lõimel mitte mingi asi olemasolevat protsessi muuta. Sõltub Windowsi SP, üldiselt mõnikord pead omale SE_DEBUG_PRIVILEGE õigused küsima.
Kuna antud kiu protseduur peab asuma samas protsessi mälupiirkonnas, siis tuleb appi järgmine protseduur.
WriteProcessMemory
Writes data to an area of memory in a specified process
Rõõmsalt saab kirjutada andmeid teise protsessi mälupiirkonda. Okei…kui väike mälukaitse peal, siis võtame sõbra VirtualProtectEx appi, muudame mälulehekülgede kaitseatribuute ja roheline tuli paistab.

VirtualProtectEx
Changes the protection on a region of committed pages in the virtual address space of a specified process.

Aga pole ilus kirjutada programmi koodi jooksvalt, eriti kui täpselt ei tea, mis seal toimub, siis tuleb appi järgmine API sõber
VirtualAllocEx
Reserves or commits a region of memory within the virtual address space of a specified process.

Temaga küsime teise protsessi piirkonda ühe lehekülje mälu või kui julged küsid kohe kaks 🙂

Nii ja nüüd teeme API piruka, mida troojakad tihti küpsetavad :

– esmalt otsime Psapi abil omale sobiva [ohvrist] protsessi, kelle koodipiirkonda lõim luua.
Küsime ka SE_DEBUG_PRIVILEGE õigused. Lahe, miskit anti… Kiul võiks olla ka mingi ülesanne, mida ta teise protsessi piirkonnas teeb. No loome pseudokoodi, mis laeb DLL faili, miks ma seda ei demostreeri, sest ma ei taha, keegi rumal teeks veel mõne troojaka. Küsime VirtualAllocEx sinna piirkonda mälu…Siis võtame ja kopeerime WriteProcessMemory abil selle DLL laadimise koodi mälupiirkonda, milles saime VirtualAllocEx apiga. Olemas…lahe.
CreateRemoteThread anname ette meie protsessi ning VirtualAllocEx abil saadud mälupiirkonna aadressi ja vuala, võime ntx explorer.exe või firefox.exe jne jne sundida laadima igasuguseid suvalisi DLL’e.

DebugActiveProcess
Ka paras katastroof “API”. Sisuliselt muutume debuggeriks, teine programm hakkab meile alluma. Ntx. mingi programm küsib seerianumbrit, EIP pointeri muutmisega hüpatakse sellest lihtsalt üle.

ReadProcessMemory
Reads data from an area of memory in a specified process

Järgmises kirjutises toon näite, kuidas programm saab kindlaks teha, kas tema IAT tabelit on muudetud.

Internetireklaamist…

oktoober 2, 2009

Viimasel ajal palju räägitud reklaamist ja bänneritest, mõtlesin ka natuke sõna võtta antud teemal.

Kui ma nö (alguses) enda tarbeks IE’le reklaamiblokeerijat tegin adBlackout , tekkisid mul mõneti süümepiinad. Teised näevad kõvasti vaeva, et reklaame välja töötada ning müüa ja mina teen vahendi, mis lihtsalt neid ekraanile ei luba.

Miks ma üldse hakkasin internetireklaame vihkama ? Ennekõike nende esituse ja paigutuse tõttu !

Täiesti talumatud on lehed:

  1. kes kasutavad veel pop-up reklaame (enamus sirvikutel juba popup blokeerijad)
  2. kes sunnivad klikkima reklaamlehel, et saaks liikuda põhiartiklite juurde (Äripäeva stiil)
  3. “monster top bänner”, sisuliselt lehe päises siuhke jurakas, et kogu lehe liigendus juba metsas
  4. karjuvad ja vilkuvad flash bännerid; jubedus kuubis. Kui istud arvuti taga ja ma suunaksin strobo valguse näkku, kaua te vist seal laua taga viibida ei tahaks . Sama käib ka veebilehe kohta.
  5. bännerid, mis jooksevad artiklite peale ja nö kui soovid artiklile klikkida, siis tehtud nii, et “tahtmatult” klikid reklaami peale

Kui mingi leht müüb reklaami, soovitan siiralt vaadata, kaua võtab aega nende lehe laadimine. Mida rohkem võtab lehe laadimine aega, sest suurem tõenäosus, et inimene lahkub sealt.

Ka tasub analüüsida, palju need Flash objektid protsessorit hõivavad, samuti mälu. Lugejal on ka taluvuse piirid, kui neid ei ületata, siis kaob ka soov reklaame “mõrvata”.

Õppust võiks võtta Google tekstireklaamidest, nad eriti ei häiri ning uskumatu, mõnel isegi klikin, sest Google on jälginud mu soove ja eelistusi ning vastavalt sellele ka reklaame kuvanud.

Nüüd tuleb natuke üllatav koht, õpetan kuidas reklaamiblokeerijaid ka vältida (see jäägu reklaamiesitajate südametunnistusele) !

1. urlid tuleb hoida mittemidagi ütlevad: kui on url ads.geenius.ee või banner.geenius.ee või http://www.geenius.ee/disp.php?width=468&height=60

Parim viis, et reklaam tuleks samast domeenist, kus artiklidki:
ntx: http://www.geenius.ee/disp.php?id=15 see ntx avab mingi artikli; aga samas http://www.geenius.ee/disp.php?id=16 tagastab bänneri.

2. reklaamid luua CSS või javascript abil. Pole midagi lihtsamat kui keelata ära pilt: <img src=”http://superads”&gt;
Kui mul nüüd konteiner <div id=”a04555FFA”></div> ja sinna sisse luuakse reklaam javascript abil, on seda palju tülikam blokeerida, eriti kui seda veel peaks SetTimeri abil tehtama

CSS pseudokood: reklaamide kuvamine ilma IMG elemendita

wx4551xa.css
div.xsize
{
width:468;
height:60;
}

#a04555FFA div.xsize
{
background: url(images/p9001111a.jpg) no-repeat;
}

3. hoia elementide nimed unikaalsed, mis pidevalt muutuvad; ära kasuta <div id=”banner”> või <div id=”ads”>; või <div id=”a04555FFA” style=”width:468px;height:60px;”></div>

Parem oleks kui <div id=”a04555FFA” class=”Wxiduniq”> ehk mõõdud tulevad “kusagilt” CSS failist, see tähendab, et meie vaesed blokeerijad peame rohkem tööd tegema ning DOM mudelit skäneerima. Muidu saaks koheselt enne html parsimist osad sektsioonid välja visata.

4. mida rohkem elemente javascriptiga luuakse, seda tülikam blokeerimine. AGA, mida rohkem javascriptiga objektide laadimist, seda aeglasem ka lehe laadimine.

5. ära kasutada standardnimega js faile ntx Flashi laadimiseks SWFObject.js

6. bänneri piltidele erinev suurus: reklaampilt 468×60 tegelikkuses; 477×69; nö see +9 osa jätta kuvamata st reklaamikonteiner piirab nähtava osa 468×60 peale. Nüüd, kui mööda DOM mudelit liikuda, saame suvalisi bänneri mõõte, lihtsamad reklaamiblokeerijad lollitab ära.

7. IFRAME unusta ära, sest ükski “normaalne” leht ei sisalda IFRAME. IFRAME’d jäänud hetkel vaid reklaamimaailma jaoks. Tõesti, kui veel AJAX maaniat polnud, siis tehti trikke IFRAMEDE abil.
Kui IFRAMET kasutad, siis anna talle samuti mõõdud CSS abil.

Aga nüüd rikun peo ära (“party pooper”), kui mina reklaamiblokeerijat peaksin täiustama , siis lihtsalt tuleks lisada tsentraalne server, millest blokeerijad omale reegleid küsivad. Ja on nö trusted kasutajad, kes reklaami ilmnedes selle peal klikivad ja blokeerivad, see info edastatakse tsentraalsesse serverisse.

Ehk pisike moraal – selle asemel, et üritada imetrikke, tasuks mõelda inim(silma)sõbralikele reklaamidele !