Desi nu prea obijnuiesc sa ma uit la TV prea des, zilele acestea am vazut un documentar pe arte, un post TV destul de avangardist in felul sau ..dar nu despre asta este vorba. In documentar era vorba despre diverese proiecte hi-tech, printre aceste unul foarte intersant numit Blue brain.
Cica tipii astia ce se ocupa de proiectul respectiv vor sa fac un reverse-enginering pe creierul mamiferelo si sa produca un fel de simulator al neocoretexului folosind un supercomputer.Se vorbea la un moment dat despre posibilitatea de a creea un calculator care este capabil sa invete precum invata un copil sau chear se merge mai departe, teoretic s-ar putea creea un avatat al unei persoane adica proiectia constiintei sale intr-un calculator, evident problema prinicipala ar reprezenta-o interfata intre creierul uman si calculator..dar zic eu ca nu suntem pe departe …si matrix vi se parea pura fictiune .
Am gasit pe youtube un filmulet destul de intersant
Asa ca si un fel de concluzie : omul este masura tuturor lucrurilor.
Un tutorial interesant interactiv dureaza cam 15 minute merita sa incercati ..cine stie poate cineva se va apuca sa programeze masiv in el.La prima vedere limbajul este destul de dragut ..cumva orientat pe cod se vede ca a evoluat din un limbaj de scripting .
Pentru cei care nu stiu cross site scripting-ul est o vulnerabilitatea de securitate ,specifica aplicatiilor web, ce permite injectare de cod distrugator in paginile web vizualizate de catre utilizator. Ea este o vulnerabilitate client side adica nu are efect propriu-zis asupra informatie de pe server ..ati putea spune ca nu este un pericol din moment ce este client side dar sa ne imaginam urmatoare situatie : ce ar insemna daca pe site-ul unei banci , pe una dintre pagini exista un fromular in care toti clientii sunt rugati sa isi introduca datele personale, iar infromatia se va trimite undeva in internet,..ei bine in acest caz este grav.
Pentru a rezolva problema a inputurilor nesecurizate am realizat utmatoarea Continue reading »
Daca tot avem fani MS pe aici hai sa amintim de un nou produs MS, gratuit, pt. cei ce vor sa invete programare, simplu: SmallBasic.
Nu l-am testat insa am citit un pic despre el si am vazut citeva exemple de cod. Targetul sint persoanele ce vor sa invete programare, pornind de la Basic (oarecum), intr-un limbaj ce are cit mai putine cuvinte cheie. Are vreo 4 Mb pt. download insa necesita .NET Framework 3.5 (vezi manualul PDF in eng.).
Avantajul care il vad eu pe linga simplitate e ca ii invata pe oameni programarea cu obiecte (de genul TextWindow.WriteLine() sau GraphicsWindow.Clear() ) ce apoi poate fi usor inteleasa in contextul .NET.
Editorul e foarte simplu, cu help inclus. De exemplu programul gen ‘hello world’ e cam asa:
Interesat oarecum de clasamentul actual al limbajelor de programare am inceput sa caut in stanga si in dreapta si printre tonelede informatii inutile afisate de Google am dat si peste un site http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html in care este dat clasamentul cica oficial:
Pe cat de mare mi-a fost uimirea sa constat ca Java este primul in top pe atat am fost de dezamagit de C# , ma asteptam ca el sa fie folosit de o comunitate mult mai vasta apropiata ca si numar de Java. Poate ca ma asteptam la pre multe
Dupa cum bine se stie PHP-ul este un limbaj orientat pe cod iar suportul pentru clase a aparut abia mai tarziu.
Astazi m-am gindit sa va arat un mic tutorial, si ca sa fiu mai practic am sa realizez citeva clase ce implementeaza majoritatea operatiilor necersare in lucrul cu baza de date in principiu este vorba de patru clase MysqlQuerry MysqlConnector MysqlController si MysqlResource.
Si ca sa profitam la maxim de flexibilitatea oferita de progrmarea obiectuala haideti ca si clasele noastre sa implementeze fiecate cite o interfata…poate considerati acest pas inutil dar sa ne inchipuim ca dorim sa realizam o aplicatie ce foloseste un server de Mysql dar in timp s-ar putea sa facem o migratie catre un alt server tot ce trebuie sa facem este sa realizam clase ce implementeaza interfetele si modificariile in aplicatia noastra vor fi minime minime atita vreme cit interfata este respectata.
Mai jos este dat codul pentru fiecare dintre interfete
DbQuerry
Cod:
interface DbQuerry {
/**
* @ReturnType void
* @ParamType querry
*/
public function execQuery($querry);
}
DbController
Cod:
interface DbController {
/**
* @ReturnType void
* @ParamType name string
* @ParamType colomns
*/
public function createTable($name, $colomns);
/**
* @ReturnType void
* @ParamType name string
*/
public function deleteTable($name);
/**
* @ParamType name string
* @ParamType clone string
*/
public function cloneTable($name, $clone);
/**
* @ParamType name string
* @ParamType connector Database.DbConnector
*/
public function createDatabase($name);
/**
* @ParamType name string
* @ParamType connector Database.DbConnector
*/
public function deleteDatabase($name);
/**
* @ReturnType Database.DbResource
*/
public function getLink();
}
DbConnector
Cod:
interface DbConnector {
/**
* @ReturnType Database.DbResource
*/
public function getLink();
/**
* @ReturnType void
*/
public function disconnect();
/**
* @ReturnType void
*/
public function reconnect();
}
DbTable
Cod:
interface DbTable {
/**
* @ParamType colomns
* @ParamType values
*/
public function insert($colomns, $values);
/**
* @ParamType condition
*/
public function delete($condition,$operation=’AND’);
/**
* @ParamType colomns
* @ParamType values
* @ParamType conditions
*/
public function update($colomns, $values, $conditions);
/**
* @ParamType condition
*/
public function select($colomns,$condition=”");
/**
* @ReturnType Database.DbResource
*/
public function getData();
/**
* @ReturnType integer
*/
public function getRowsNumber();
}
Aplicatia va lucra doar cu interfatele (de fapt cu implementari ale interfetelor) si in acest mod se respecta bine cunoscutul principuiu al segregarii interfetelor de implementare.
Acum haideti sa arunacam o privire asupra implemetarii interfetelor
/**
* @ParamType colomns
* @ParamType values
*/
public function insert($colomns, $values) {
if(is_array($colomns))
$colomns=implode(”,”,$colomns);
if(is_array($values))
$values=implode(”,”,$values);
$this->execQuery(”INSERT INTO $this->name ($colomns) VALUES (’$values’)”);
}
/**
* @ParamType condition
*/
public function delete($condition,$operation=’AND’) {
if(is_array($condition))
$condition=implode(” $operation “,$condition);
$this->execQuery(”DELETE FROM $this->name WHERE $condition”);
}
/**
* @ParamType colomns
* @ParamType values
* @ParamType conditions
*/
public function update($colomns, $values, $conditions) {
if(!is_array($colomns))
$colomns=explode(”,”,$colomns);
if(!is_array($values))
$values=explode(”,”,$values);
if(is_array($conditions))
$conditions=implode(” AND “,$conditions);
if(count($colomns)!=count($values))
throw new SintaxErrorException(”values and colomn must have the same size.”);
$this->execQuery(”UPDATE $this->name SET $rez WHERE $conditions”);
}
/**
* @ParamType condition
*/
public function select($colomns,$condition=”") {
if(is_array($colomns))
$colomns=implode(”,”,$colomns);
if(is_array($condition))
$condition=implode(” AND “,$condition);
if($condition!=”")
$this->tableResource=$this->execQuery(”SELECT $colomns FROM $this->name WHERE $conditions”);
else
$this->tableResource=$this->execQuery(”SELECT $colomns FROM $this->name “);
}
/**
* @ReturnType Database.DbResource
*/
public function getData() {
if($this->tableResource==null)
throw new MysqlTableException(”no data selected in table”);
return new MysqlResource($result);
}
/**
* @ReturnType integer
*/
public function getRowsNumber() {
if($this->tableResource==null)
throw new MysqlTableException(”no data selected in table”);
return mysql_num_rows($this->tableResource->getResource());
}
/**
* @ParamType querry
*/
public function execQuery($querry) {
return $this->controllerLink->execQuery($querry);
}
};
Pentru a trata diversele erori ce pot aparea in timpul lucrului cu baza de date se lucreaza cu exceptii.Iata un exemplu ce foloseste clasele de mai sus, sa presupunem ca avem un tabel cu doua cimpuri id si nume:
O observatie foarte importanta este ce in cazul catchurilo ordinea este importanta astfel de exmplu daca aveam primul chatch MysqlException de fiecare data cind aparea o exceptie se intra pe primul catch deoarece MysqlException este o calsa din care se deriveaza celelalte tipuri astfel o exceptie de tipul MysqlSintaxException este si de tipul MysqlException.
Pentru a va face o face o imagine asupra ierarhiei de clase am atasat o imagine
Today I am going to show you how to create a simple script that will shutdown you’re computer. First of all it works just on Windows first of all open notepad and write the code above
shutdown -s -t [xx]
first of all replace the [xx] with a value in seconds by example 30 and then save the file with extension .bat a very important aspect, the name can by whatever you want.
OK …for start some words about me: my name is Andrei and I am a student on Computer Since I am passionated by all what is mean computer, programming and computer graphics . Because when I was at beginning I get a lot of help from others now is time for payback: is my time to help others so here you will find a lot of interesting things, things that you will not find them in other places for free. I hope to have enought time to spend on writing intersting things on this blog .