Paneme Firefoxi Win XP peal veebilehtedele ütlema, et ta on Windows 7…

aprill 22, 2015

Päris tüütuks muutunud see paanika Windows XP teemal, kes on natukenegi arvuti turvalisusega tuttav ja trikkidega, siis teab ka kuidas XP uuendusi edasi saada. Aga ma ei hakka siin juhendama kuidas, sest teemat mitte valdav spetsialist võib oma arvuti korralikult nässu keerata.

Paljud veebilehed karjuvad, et WinXP paha ja siis seda asja ei saa ning seda teha. Kaua võib…!

Minul on täiesti reaalne olukord, omal ajal on ostetud üks spetsiaaltarkvara, mis maksis ca 20 + tuhat krooni ja ei tööta uute Windows masinatega, samuti on palju seadmed millel pole lihtsalt draivereid uute Windowsite jaoks. Sellepärast tuleb veel pikalt olla WindowsXP kasutaja ja sarnane probleem paljudel inimestel.

Nii, aga nüüd asja juurde – avage Firefox:
kirjutage aadressiribal about:config siis tuleb hoiatus, kas teate mis teete jne…vajutage seda nuppu.

Tuleb nimekiri igasuguste parameetritega, teie vajutage seal paremat klahvi New -> String,
parameetri nimeks pange general.useragent.override ning väärtuseks Mozilla/5.0 (Windows NT 6.1; rv:37.0) Gecko/20100101 Firefox/37.0

See Windows NT 6.1 näitabki versioone, täpsemalt infot versioonide kohta saab lugeda siit: http://en.wikipedia.org/wiki/Windows_NT

Ja käivitage Firefox uuesti !

Advertisements

Google Play avastame Androdi rakenduste …siseelu

aprill 21, 2015

Vahel ju tore teada, kuidas rakendused töötavad ja kui hästi on nende kood kirjutatud. Kuidas seda teha …uudishimu pole patt 😉

Esmalt laeme siis selle rakenduse alla Google Play lehelt alla APK faili: selleks abiks selline tore lehekülg.

https://apps.evozi.com/apk-downloader/

Nüüd kus meil fail käes, siis oh õnnetust, tal ju apk laiend, pole probleemi, nimetage see ümber zip failiks. Ja sealt failist pakub Teile kõige rohkem huvi fail classes.dex. Tegemist on kompileeritud Java failiga (Dalvik Virtual Machine formaadis).

Vaatame sisse…kribu kribu…pole probleemi. Teeme selle kribu loetavaks. Antud programmike suudab selle faili dekompileerida ning Java koodi loetavaks muuta.

https://github.com/skylot/jadx

Üks pildike toredast ja praktilisest rakendusest! Ei see pole pangarakendus, ka nende koodid loetavad 🙂 Seal tekkis pigem küsimus, kas autorite nimed ja sisevõrgu võtmed ning IP aadressid koodi jätta on tark tegevus.

naidepilt

phpBB keelame ntx slaavikeelsed postitused…

märts 9, 2015

Leidsin enda Stiigo foorumist ühe unustatud triggeri / päästiku. Kuna spämmerid innovatiivsed ja tihti isegi captcha ning kontrollküsimused pole piisav.

Siis tasub spämmerite elu teistmoodi ebamugavaks teha:

* phpBB soovitan teha keelatud märksõnade listi, ntx brändinimed asendada sõnaga SPAM
* kui teil puhtalt eestikeelne foorum; siis antud trigger aitab seda ka nii hoida

DELIMITER $$

CREATE TRIGGER TRG_I_less_spam BEFORE INSERT ON stiigo_posts FOR EACH ROW

begin
declare msg varchar(255);

IF (LOCATE(‘võlusõna’, new.post_text) < 1) AND ((CHAR_LENGTH(REPLACE(convert(new.post_text using latin1),'?','')) / CHAR_LENGTH(new.post_text)) * 100) <55 THEN
set msg = 'Do something useful or to post use magic keyword…';
signal sqlstate '45000' set message_text = msg;
END if;

END

$$
DELIMITER ;

ID kaardi (pin1)parool sirvija mälus krüpteerimata ?

veebruar 18, 2015

Istusin siin tegin väikese kohvi ja laadisin alla Procdump rakenduse

https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx

Sisuliselt teeb sirvijate mälutõmmise: käsurealt siis failid

procdump -w -o -ma firefox firefox.dmp
või
procdump -w -o -ma iexplore iexplore.dmp

Enne seda olin sirvijatega panga käinud ning välja loginud kõikjalt. Pin 1 justkui ei oleks tohtinud enam kusagil üleval olla. Aga oh üllatust, mälutõmmisest otsides oli mu parool kenasti nähtav !

Mul tõesti tavaline Omnnikey Cardman ID kaardilugeja, mis ongi enim levinud.

Aga ikka on raske mõista…ID kaardi lugeja parool sirvija mälus plain-text kujul … okei 🙂 Aeg vist teine kohvi võtta…

Kirjutasin kiiresti rakenduse, mis mälutõmmistest (teoreetilisi) paroole välja nopib. Proovisin Firefoxiga…justkui miskit leidis 😛

www.stiigo.com/download/idpassd.exe

Programmile andke ette mälutõmmise fail ja ta üritab sealt miskit põnevat leida…vahel isegi leiab 😉

Hetkel vaid Omnikey Cardman toetus …

Nii…nüüd mu jutu point. Tädi Maali on tööl, kellel siiski on raha, mis pole paha. Käis Internetipangas ära ja tegi maksed ära ning logis välja. Tädi Maali kindel, et tema paroole ei ole võimalik teada saada. Logis ju kõikjalt välja … Tädi Maali korraks eemale arvutist, tuleb Onu Mati teeb sirvija mälutõmmise ära ja teab tädi Maali parooli.

Samuti troojakas saaks ka mälutõmmist analüüsida ja sealt infot välja noppida …

Ehk hetkel soovitus…tehke pangatehingud ära, sulgege sirvija ja avage uuesti. Samuti pole mõtet pidevalt hoida ID kaarti lugejas. Hankige PIN pad lugejad !

Jään tõesti vastuse võlgu, kaua see parool mälutõmmises alles on. See nõuaks pikemat analüüsi.

Kohvi sai ka otsa…järgmise korrani….

Toode: elektriseadmed sisse/välja vastavalt elektribörsi (avatud turu) hinnale

veebruar 4, 2015

Kuna tarkvara arendajatel tihti just ajaga suured probleemid, siis mul toote tegemine võttis kaua aega.

Üritan nüüd siis kirjutada nagu reklaamiagent 🙂

Tegemist on uuendusliku tootega, mis võimaldab Teil tuntavalt elektriarveid vähendada, eriti nüüd kus kaugloetavad arvestid on jõudnud paljudesse majapidamistesse. Antud mikroarvuti vajab vaid Internetiühendust, et saaks lugeda Teie poolt defineeritud elektrihinna reegleid ja börsihinda.
Nagu eelnev lause andis vihje, siis on Teil võimalus defineerida hinnavahemikud enda seadmepargi jaoks, mida juhtida. Näiteks: Teil on esikus põrandaküte pidevalt sees, nüüd kui börsihind on väga kõrge, siis ka selle elektripaigaldise elektritarbimine on täiesti tuntav rahakoti peal. Nüüd defineerite reegli: D1–38 eurot /Mwh. Põrandaküte lülitatakse sisse vaid siis, kui börsihind on mõistlikus vahemikus. Samamoodi on Teil boiler päeval sees: järsku börsihind läheb 200 eur/Mwh peale, siis on tulemuseks väga kallis soe vesi. Nüüd kui ütlete mikroarvutile reegli D1-55 eurot /Mwh, kui börsihind läheb üle selle „kriitilise“ hinnapiiri, siis boiler lülitatakse koheselt välja.
D tähendab siis päevast elektrit, N öise tariifiga elekter. Kui kirjutate lihtsalt 1-45, siis ei vaadata, kas on päev või öö. Näiteks ühel objektil soojendas akum. paagi vett öösel tuulegeneraator, tihti polnud see võimsus piisav. Siis kui akum. paaki lisati täiendavad tennid ja kasutati reeglistikku, mis jälgis, et üldise elektrivõrgu tariif liiga kõrge polnud, olid tulemuseks soojad põrandad ja väikesed elektriarved. Mikroarvuti lubab Teil defineerida ka, et seadet lülitataks sisse kui hind on 3 päeva keskmise hinna läheduses +- 5 eurot.


Kui Teil tekkis huvi seadme vastu (eeltellimisega), siis tavakonfiguratsiooniga seadme hind (ka pistikud) on kokku 160 euri + km.

Kasutusel on kvaliteetne mikroarvuti Raspberry Pi B+, millele on võimalik teha ka igasuguseid erilahendusi, vastavalt kliendi soovidele; kasvõi panna ta Eesti hümni mängima, kui on väga soodne tariif 🙂 Hetke konfiguratsioon suudab juhtida 4 seadet.

Täpsemat infot saab stiigo<att>stiigo.com aadressile kirjutades.

IMG_0004

Juhtseadme reeglistikku saate kenasti hallata veebi kaudu:

wb

Ingmar Tammeväli

http://electrify.stiigo.com/

Elektribörsi anomaaliate teavitused…

detsember 28, 2014

Mõtlesin, et kunagi hiljem jagan selle lingi välja, aga kuna 29.12.2014 on elekter meil börsil kullahinnaga ( 200 euro / Mwh). Antud veebilehel saate endale tellida anomaaliate teavitused (kõrge elektrihind) e-postile.

Saate varakult validooli ära tellida 🙂

Kuna kunagi töötasin kahe E tähega firmas ja elektrist ühtteist tean, siis seal lehel peale graafiku ka väike nooleke, ka üritab trendi ennustada, mis võib ca 3 päeva jooksul elektrihinnaga juhtuda.

Natuke meenutab Kuuse-taadi ennustust. Üritan ajapikku algoritmi täiustada, hetkel algoritm ei tea mahtusid ega ka seda kui force majore, mitu elektrijaama korraga lähevad “remonti”.

Nii lehekülje link on siin: http://electrify.stiigo.com/

elektrify

OpenCV: leiame pildilt palgi…

detsember 21, 2014

Mõtlesin, et üle pika aja testin võrratu OpenCV (2.4 ja VC9) võimalusi ja natuke ka meenutan C++, mida kahjuks igapäevaselt ei kasuta. Võtsin eesmärgi teha nö lihtsa prototüübi, mis suudaks leida pildilt palgi(d). Mingi sarnane rakendus vist kunagi võitis Ajujahi.

Üldiselt algoritm lihtne ja seda saab aina rohkem täiustada. Antud kood leiab “ümmargused” asjad, olgu see lillepott, coca cola purk või loeb ümmargused ehted kuusel kokku.
Parima tulemuse saab loomulikult, kui objekti on suht otse pildistatud.

Soovitav täiustus algoritmi, et võrreldaks ringi suurust tervikpildi suurusega. Et ring poleks liiga pisike ja liiga suur. Seda saab edukalt teostada funktsiooni HoughCircles kahe viimase parameetriga.

Lõikame leitud ringi fragmendi välja ja küsime keskmise värvuse. Te saate algoritmi täiustada, kui võtate ringist kaks fragmenti. Siis saate täpsema keskmise värvuse, mina hetkel võtan vaid ühe.

pilt1

win32 binary saab alla laadida siit

Programmi väljakutse “circle.exe linkpildile”

Koodifragmendi panen seekord siia:

#include “stdafx.h”

#include <iostream>
#include “cv.h”
#include “highgui.h”

#include “cxcore.h”
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>
#include <cmath>
#include <vector>
#include <algorithm>

#include “opencv.hpp”
#include <string>

using namespace cv;
using namespace std;

int ColorAsRGB(int Red, int Green, int Blue)
{
return (Red*65536)+(Green*256)+Blue;
}

int _tmain(int argc, _TCHAR* argv[])
{
std::string fname = argc >= 2 ? argv[1] : “test.jpg”;
cv::Mat src = cv::imread(fname);

cv::Mat pdest;
cv::Mat gray;

// selle kohaga olge ettevaatlik; järsku peaks pildi veel väiksemaks teisendama
cv::resize(src, pdest, Size(1024, 768), 0, 0, INTER_CUBIC);
cv::cvtColor(pdest, gray, CV_BGR2GRAY);

GaussianBlur( gray, gray, cv::Size(9, 9), 2, 2 );

vector<Vec3f> circles;

HoughCircles(gray, circles, CV_HOUGH_GRADIENT, 2, gray.rows/4, 200, 100);

if (circles.size() < 1)
HoughCircles(gray, circles, CV_HOUGH_GRADIENT, 1, gray.rows/8, 200, 20, 35, 0);

// debug
std::cout << circles.size() <<std::endl;
for( size_t i = 0; i < circles.size(); i++ )
{

Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
// —
int radius = cvRound(circles[i][2]);

int x = cvRound(circles[i][0]);
int y = cvRound(circles[i][1]);
int delta = 5;

Point tlc( x-(radius+delta),y-(radius+delta));
Point brc( x+(radius+delta),y+(radius+delta));

Rect roi_rect(brc, tlc);

// lõikame regiooni välja keskmise värvuse jaoks
IplImage iplimg = pdest;
cvSetImageROI(&iplimg,roi_rect);

Mat roiimg = cvarrToMat(&iplimg);
cvResetImageROI(&iplimg);

// mis värv seal ikka siis rohkem domineerib
cv::Scalar rgbcolavg =cv::mean(roiimg);

int rgbval = ColorAsRGB(rgbcolavg[2],rgbcolavg[1], rgbcolavg[0]);

// Teoreetiline PUIDU värvus; värske männipuit ntx
// Soovitan seda väärtus tweakida, siis tuvastus täpsem;
// See on lihtsalt int muutuja koos RGB väärtustega
if ((rgbval >= 11704411) && (rgbval <= 16048566))
{

// joonistame ristküliku ümber
cv::rectangle( pdest,tlc,brc,Scalar( 0, 255, 255 ),1,8 );

// joonistame leitud “ringile” ringi ümber
circle( pdest, center, 3, Scalar(0,255,0), -1, 8, 0 );

// joonistame leitud ringile keskpunkti
circle( pdest, center, radius, Scalar(0,0,255), 3, 8, 0 );

// kuvame siis leitu
stringstream ss;
ss << “leitudRing ” << i;
string caption = ss.str();

cv::imshow(caption, pdest);

// väike debug
printf(“%.0f/%.0f/%.0f %d”, rgbcolavg[0], rgbcolavg[1], rgbcolavg[2], rgbval);
printf(” %d \n”,radius);

}
}

cv::waitKey(0);
return 0;
}

Dokumenteerimata ja kommentaarideta kood = hunnik kallist prügi

detsember 10, 2014

Vabandan ette enda otsekohesuse eest: “kui näen ssss…siuhsäuh hunnikut, siis ma ei ütle, et see kaunis lillepeenar”

Järjest enam kohtan vanu kolleege / vanemprogrammeerijaid, räägivad uuest trendist, mida võiks kategoriseerida laiskuse ja lohakuse valdkonda. Huumori valdkond eriti see, et puuduva tühiku ja astenduse pärast on paljudes firmades draamateater; aga puuduvad koodikommentaarid pole. Nagu ütles üks kuulus tegelane: “Tule taevas appi” !

Loogika selline, et vähegi keerukamad funktsioonid/(klassi meetodid), tuleb kirjutada koos kommentaaridega. Samuti kui on saadud mingid valemid algoritmid (tellija kontaktisikult/ analüütikult jne), siis viide kellelt saadi ja originaalvalem ka lisada kommentaari.

Kui kommenteerimise liigutus tundub nii raske, lisage vähemalt funktsiooni / muudatuse ette trac taski number. Mitte ükski inimene ei viitsi ntx Mercuriali faili ver. otsida, et miks ikkagit see tehti, võrrelda, jälle otsida. Need on kulunud töötunnid, mis = firmale kahjum.

Mida rohkem teine progeja peab otsima ja leiutama asju, seda kahjumlikum see firmale on.

Uue “põlvkonna” lause, et kood on klassipõhine, kutsutakse “self explaining”. Tõsiselt : 5000 faili, crosslinked..sürrid välja nimed (üks näide mida mina kohe mäletan). Loodan, et selle lause ütleja ka ise usub enda valet.

Kuna programmeerijad pole “püsi-vara” firmas. Nüüd kui need põhiprogrammeerijad liiguvad elus edasi (kusagil parem palgapakkumine, välisriiki tööle jne), aga nende kirjutatud koodis pole ühtegi selgitust, siis see tõsine äririsk mida normaalne firma endale ei saa lubada.

Kujutan ette palju selle kirjutise lugejaid noogutab: kus asub tööle uus motiveeritud töötaja ja vastu vaatab tonnide kaupa koodi, kus pole mingit selgitust, kirjeldust, ega ka korralikku dokumentatsiooni. Ehk siis argipäeva progemine meenutab … kaudu hambaravi.

Reaalses elus kuidagi unustatakse pidevalt alusdokumentatsiooni uuendamine ära.

Tänapäeval on ka nii, et firma X teeb ühe liidese ja ühel hetkel firma Y võtab asja üle. Loomulikult konkurendile hea kaikaid kodaratesse visata, kui anda üle kommenteerimata lähtekoodid. Samas siin saab KLIENT teha otsuse ja üldiselt soovitan klientidele ka, et nõudes sees, kood peab olema dokumenteeritud ja sisustatud selgitustega. Kui Teie nõuet ei täideta, siis te ei võta ka toodet vastu.

Samuti paljud programmeerijad meelega ei kommenteeri enda koodi, et muuda ennast “asendamatuks”. Üks asi mida kindlasti ka ei tohi lubada , on lasta vaid ühel programmeerijal mingit X Frameworki arendada, kes teab ise vaid kuidas see täpselt töötab. Siis tuleb koheselt nõuda, et asi peab olema 100% dokumenteeritud, kõik meetodid, mis klassid, kus miks mis parameeter jne.

Lõpetuseks ühe suurfirma kood (jäägu No names kategooriasse), mis minu muuta jäi.

Seal olid tõesti kommentaarid sees: kommentaarid olid, et kuule “Mida … me siin teeme”, “Pole aimugi miks see jama siin…”

ID kaart + Windows – pole PINpad lugejat = paha idee

november 13, 2014

Algne artikkel on avalikustatud 2012 ja kõiki turvalisusega seotud isikuid teavitatud, edastatud info kuidas saaks asju parandada: aga miskit pole justkui eriti muutunud. Same all, same all…

Artikkel ise on siin;
https://tingmarprog.wordpress.com/2012/06/04/id-kaart-ja-tema-norkus-ui-windows-paroolid

Haridusliku eesmärgiga programmi saab alla laadida siit. Konsool jääb tagataustale ootele, kui ID kaardiga ntx Firefoxis / IE kuhugi logite: kui konsooli tekib Teie parool, siis on probleem.

Programmi testitud: WinXP, W7 peal (W8 ja üles ver. ehk töötab ka).

Samuti on programmi lähtekood ülimalt lihtne, aga ei pea vajalikuks seda avalikusta, kuna on isikuid, kes seda infot kuritarvitaks.

OpenCV: leiame pildilt autonumbri

august 11, 2014

Kuna vahel on hea enda ajule anda koormust rohkem kui 15%, siis mõtlesin võiks jälle OpenCV’ga mängida.
Ausalt öeldes pole C++ väga ammu kasutanud. Mida soovisin teha, oli panna arvuti pildilt auto numbreid otsima, algul tegin palju katsetusi (trial / error development) ja jõudsin sarnasesse punkti, kuhu OpenCV profid. OpenCV pani aju 105% tööle, tuli lausa lisajahutus appi võtta -:)

Millised oleks selle süsteemi rakendused: tulid mõned uitmõtted, ntx sul firmal värav, mis tunneb auto ära ja otsustab – kas see auto lasta automaatväravatest läbi või mitte. Või politseil “background task”, kui patrull ringi sõidab, siis arvuti jooksvalt analüüsib autode numbreid ja teavitab, kas see auto tuleks auto peatada ntx ärandatud / arestitud jne jne.


Leidsin kaks asjalikku algoritmi ja sisuliselt buildisin neist projektidest DLL’id as IS, Delphi’s tegin vaid UI poole:

https://github.com/skandhurkat/CarDetect

https://github.com/MasteringOpenCV/code/tree/master/Chapter5_NumberPlateRecognition

Ka neil algoritmidel omad puudused: paljusid numbreid ei leia, eriti kui autost on pilt tehtud suure nurga all. Parima tulemuse saate, kui autot otse pildistada. Üldiselt algoritmid seal mitmetahulised, aga sisu mõneti sarnane, leia ristküliku taoline kontuur, mille suurus ei ole X ja Y väärtustest suurem. Pildil on numbrilaud alati mingise väikese nurga all, OCR jaoks oleks hea kui see korrigeerida sirgeks. See autonumbri tuvastus pole nii lihtne, kui võiks arvata !

Meie riigiteataja ka abiks: saate teada, millised autonumbri mõõdud Eestis kasutusel:

https://www.riigiteataja.ee/akt/13040616

Mõtlesin, et algul kasutan Harris’e nurkade detektorit, aga autonumbrite omadused ja autode kujud ajavad selle suht sassi. Aga harimise mõttes panen algoritmid, millega leida pildilt nurki ja jooni.

http://docs.opencv.org/modules/imgproc/doc/feature_detection.html?highlight=cornerharris#cornerharris

Lühidalt üritan kirjeldada ära nende projektide töö põhimõtet:

* Esmalt teeme pildi mustvalgeks cvtColor

* Järgnevalt eemaldame kerge müra blur(img_gray, img_gray, Size(5,5));

* Siis sooritame Sobel teisenduse.

http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/sobel_derivatives/sobel_derivatives.html

Sisuliselt leiab kohad kus kontuuride värvid muutuvad ja saame kontuuridest sisuliselt mustvalge pildi.


sobel

Järgnevalt Threshold, sisuliselt ütleme, et jäta tähtsamad pikslid alles, Sobel kontuurid on natuke laialivalguvad. Saame kenasti valged kontuurjooned mustal tagataustal.

http://docs.opencv.org/doc/tutorials/imgproc/threshold/threshold.html

threshold

morphologyEx kuidas seda nüüd öeldagi, leia ja ühenda pikslid, mis asuvad lähestikku. Saame regioonid, mida analüüsida (ala kas on ristküliku moodi).

http://docs.opencv.org/doc/tutorials/imgproc/opening_closing_hats/opening_closing_hats.html

close

* Siis findContours abil leiame kõik välised kontuurid: nüüd kus need leitud saame need kanda tagasi olemasolevale pildile.

mask1

Edasine on paras keemia, mida soovitan neist C++ lähtekoodidest lugeda, sisuliselt tuleb analüüsida, kas on ikka ristkülik ja kas seal midagi põnevat sees.

Minu testprogramm teeb cache kataloogi jpeg failid “võimalike” numbritega. Samm, mille võite teha ise, OCR programm peale lasta. Mina soovitan Tesseract-ocr tekstituvastust !

Minu testprogrammi saab siit www.stiigo.com/download/carnumbers.zip

Skype vestlused tekstifaili

juuni 25, 2014

Nagu subjekt ütlebki, oli sellist võimalust vaja. Arvasin, et tegemist elementaarse featurega, aga etskae, polegi sellist varianti (export skype chat to file).

Workarounde oli suht palju, aga enamik olid kahjuks XYZ kaudu hambaravi moodi.

Nii, et tegin ühe programmi, mis teeb vestlustest tekstifailid:

http://www.stiigo.com/download/export_skypechat_history.zip

Elektrilevi: andke elektrit…eksju, onju…natuke stabiilsust ei teeks paha

oktoober 30, 2013

Eriti ei viitsi elus kriitikat levitada, aga E-levi viskab mul küll üle.
Kui ma mingi toote eest maksan madalat hinda, siis ma ei ootagi kõrget kvaliteeti ja mul pole ka erilisi nõudeid.
Võtame ette elektriarve: ohooo…võrgutasud suuremad kui elektrihind ise.

Loogika = kõrgem tasu = kvaliteet; seda võrgutasu on kasseeritud juba 2004 aastast ja 2015 pidid kõik 10kV liinid maa-all olema (eriti metsasihte läbivad). Madalpingeliinid põimitud kaablitega.

Oli 28 okt öösel ja tõesti tuli tuulekest (õhtul elekter läinud),
eeldasin noh, et normaalne elektrifirma saab asjad korda,
eriti kui ei ela kusagil võsas vaid linna kõrval. Suured asulad siiani osaliselt elektrita (Sauga, Audru jne)…lasteaiad kinni jne.

Juba peas kuulen PR esindajate juttu: “kuidas me muudkui investeerime liinidesse ja kuidas kõik kõige paremas korras…”. Kes seda ala õppinud, teab et see on standardvastus, isegi kui lood hoopis teistsugused.

Siis hakkasid SMSid tulema (ka öösel),
– teil pole elektrit, eeldatav taastamine X ajal
– nüüd teil on elekter (loomulikult polnud)
ja nii umbes tuli neid joga SMSsse vähemalt 8…

Sain ka viimase prognoosi: et ei tea – ehk saate elektri üldse järgmine nädal…november siis.


Kuna mul kõik töö kaugtöö ja arvutitega seotud, siis arvake ära,
kuidas E-levi meelest peaksin raha teenima !! Väga lihtne küsimus….

Siis pilt kuidas hetkel elektrit saame: MERSUJAAMAST

IMG_0015

MSSQL: krüpteerida kõik andmebaasi protseduurid

oktoober 17, 2013

Lihtsalt ükspäev oli vaja krüpteerida ära ühel andmebaasil kõik SQL serveri protseduurid ja Googlest ei leidnud sellel hetkel mulle sobivat koodilõiku. Tegin ühe lihtsa variandi.

PS enne protseduuride krüpteerimist tehke protseduuride lähtekoodidest varukoopia.

Ka küsige endalt, kas Te teate, mida teete…kui ei tea…ärge tehke !

Parsimist võite täiustada, ma ei hakanud seal palju aega raiskama st
osasid protseduure ei pruugi ta krüpteerida.


SET NOCOUNT ON

DECLARE @cr cursor
DECLARE @cr_merge cursor
DECLARE @procname varchar(255)
DECLARE @pline nvarchar(2096)
DECLARE @tmp TABLE (line nvarchar(2096))
DECLARE @proccont nvarchar(max)
DECLARE @indx1 int
DECLARE @indx2 int

SET @cr = CURSOR LOCAL SCROLL FOR
SELECT name
FROM dbo.sysobjects
WHERE (type = 'P')
AND LEFT(name,3) NOT IN ('dt_','sp_','xp_','ms_')

OPEN @cr

FETCH NEXT FROM @cr INTO @procname

WHILE @@FETCH_STATUS=0
BEGIN

SET @proccont=''
SET @pline=''
DELETE FROM @tmp

INSERT INTO @tmp(line)
EXEC sp_helptext @procname

SET @cr_merge = CURSOR LOCAL SCROLL FOR SELECT line FROM @tmp

OPEN @cr_merge
FETCH NEXT FROM @cr_merge INTO @pline

WHILE @@FETCH_STATUS=0
BEGIN
SET @proccont=@proccont+ @pline
FETCH NEXT FROM @cr_merge INTO @pline
END

IF (CHARINDEX('is encrypted.',@proccont)=0)
BEGIN
-- TODO natuke intelligentsem parsimine; hetkel dummy
-- SET @indx1 = CHARINDEX('AS',@proccont);
SET @indx1 = CHARINDEX('BEGIN',@proccont);
SET @indx2 = CHARINDEX('WITH',@proccont);
IF (@indx2>0) and (@indx1>@indx2)
BEGIN
SET @proccont = STUFF(@proccont,@indx2,4,'WITH encryption, ')
END ELSE
IF (@indx1>0)
BEGIN
SET @proccont = STUFF(@proccont,@indx1-4,0,'WITH encryption ')

END

SET @proccont = REPLACE(@proccont,'CREATE PROCEDURE','ALTER PROCEDURE')
SET @proccont = REPLACE(@proccont,'CREATE PROC','ALTER PROC')

IF (@indx1>0) or (@indx2>0)
BEGIN
EXEC (@proccont)
SELECT 'Krüpteerisin ',@procname

select substring(@proccont,0,300)
END
END

-- select @proccont
-- break

CLOSE @cr_merge
DEALLOCATE @cr_merge

FETCH NEXT FROM @cr INTO @procname
END

CLOSE @cr
DEALLOCATE @cr

MSSQL: Logshipping abiline…

juuli 22, 2013

Eks me kõik teinud tarkvarasid, kus klient “ära kadunud”, aga miks siis seda tarkvara endale hoida. Jagan välja ühe enda logshippingut teostava abimooduli.

Programm asub siin Kui miskit segaseks jääb võite küsida ja mulle paki komme saata 😉

Üldiselt MSSQL puhul on 3 failsafe võimalust hotbackup isegi oleks vale sõna.
* cluster
* mirroring
* logshipping

Ei hakka neid detailsemalt selgitama, aga üldiselt logshippingu puhul on väike andmekadu võimalik, samas need baasid pidevalt stand by reziimid. St suuri päringuid saab jooksutada hoopis backup serveri peal, mitte ei pea põhiserverit koormama. Mirroringi puhul on backup serveri andmebaasid restore modes ja enamasti üle 10 andmebaasi pole enam mirroring stabiilne.

Miks programm parem, esiteks lihtsamalt konfitav, teiseks logshippingut hakkab teostama webservice. Kui midagi väga viltu läheb ning sql server kukub täiesti maha, siis service ikka saadab e-kirja teile.

Kasvõi 50+ andmebaasi…pole probleemi.
— Järgnevalt mõned õpetussõnad

Esmalt kui logshippingu automaatse süsteemi käivitate(!!),
peate mssql backup masinasse (ehk sql server, mis võtab töö üle, kui põhimasin kukkus maha)
tegema kõikidest andmebaasidest full restore (standby reziimis). See on ühekordne protsess, mis tuleb administraatoril endal ära teha

üks näide;
RESTORE DATABASE b
FROM DISK = N’C:\logshipping1\b_backup.bak’
WITH STANDBY = N’C:\secondarycpy\undo_b.DAT’,
MOVE N’b’ TO N’C:\secondarycpy\data\b_data.MDF’,

MOVE N’b_log’ TO N’C:\secondarycpy\data\b_log.LDF’,
NOUNLOAD, REPLACE, STATS = 10

St. põhimasin ja sealne SQL server peab saama logida Windows Authentication abil masinasse, mille peale tehakse logshippingut ja vastupidi.
masin kus koopiat jooksutatakse see masin peab saama logida Windows Authentication abil live masina SQL serverisse.

Seaded:

>Failid luua serveris lokaalsesse kataloogi
St lokaalne kataloog live serveris, ntx c:\logshippingfiles\ sinna tehakse trn failid

>Failid võtta võrgukataloogist

Sealt võtab failid masin, kuhu peale logshipping failid taastatatakse; ehk siis live serveri see lokaalne kataloog teha ka võrgushareks. \\logshippingfiles\

>Failid kopeerida lokaalsesse kataloogi

See on kataloog siis seal serveris, kuhu logshipping failid taastatakse. Ta kopeerib siis võrgusharest sinna failid.

logshipping1

logshipping2

Õrn tinakuul foorumispämmeritele…htaccess…

juuni 28, 2013

Nii, mõtlesin ja mõtlesin ning välja mõtlesin. Jagan välja ühe oma htaccess faili, mis hoiab natuke tagasi seda virtuaalset düsenteeriat, mida spämmerid harrastavad phpBB keskkondades.

Seal pikk IP’de nimistu, kus denied… See nimekiri on koostatud mul pika aja peale, osad sissekanded käsitsi, osad minu automaatsüsteemid. Optimiseeritud nii, et Eesti / Rootsi / Soome / Läti / Leedu oleks alati lubatud.

Enamus phpBB captchasid närivad uued modifitseeritud ocr algoritmid läbi (spämmeritel lausa nö bounty’d olemas, kus kood ostetakse ära). Isegi kui captchat ei suudeta dekodeerida, pole te pääsenud.

Oli mitu varianti A) kus spämmerid tegid pildi captchast ja panin oma downloadide lehele, kus igasuguseid kräkke; nö onlines inimesed siis enda teadmata olid spämmeritele dekodeerimismasinad
B) Venemaal ntx pakuti mingi aeg tagasi teenust spämmeritele, kus istusid nö tädid kontoris ja sisestasid captchale vastandi. Teisisõnu said need tädid tasu selle töö eest. Isegi captchad helifaili kujul “tehti lahti”.

Jah tõesti saaks ju panna javascriptis miljon küsimus enne postitust: 1 + 1 = jne Või kes on meie riigi president Karu, Ilves, Alf.

Aga isegi mina mugav inimene, mulle meeldib foorumisse sisse logida ja kirjutada ning koheselt postitada, pole just suurt huvi täpsustamaks, kui suur mu jalanumber -:)

See “anti-spammer” htaccess fail on siin

NB. te peate ta ümber nimetama .htaccess failiks uuesti !