July 2009
M T W T F S S
« Apr    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Wireless signal power detector

wireless signal power

wireless signal power

Zilele trecute mi-am cumparat un router wireless nou, unul care sa bata o distanta mai mare pentru a-mi oferi un grad mai mare de portabilitate, curios de performantele noului router am cautat pe net un tool care sa imi indice putere semnalului si calitatea deoarece eram nemultumit de cel existent in sistemul de operare . Dupa cateva minute de cautare pe google in care nu am gasit nimic (nimic care sa ma satisfaca) imi suflec manecile si ma hotarasc sa imi scriu propriul programul care sa imi calculeze calitatea si puterea semnalului, dupa cate ore de programare am schitat un programel care m-am gandit ca poate ar mai putea fi util cuiva. Daca sunteti intersati aplicatia o puteti descarca de aici

aQua beta release -un utilitar remote desktop connection/control

In sfarsit am reusit sa imi fac timpul necersar pentru a publica primul proiect, este vorba de un utilitar ce va permite sa va conectati de oriunde si oricand la computerul de acasa/la servici si sa preluati controlul, de asemenea ar putea fi folosit ca si o unealta pentru a supraveghea activitatea ce se


inteprinde pe un calculator.
Trasaturi:

Criptarea traficului
Suport pentru control mouse si tastatura
Suport pentru WOL (wake on lan) momentan doar pentru pachet magic
Calitate inalta a imaginii.

Mai multe aici

Componente vizuale in c#

C#

C#

Desi nu imi  place trebuie sa reunosc ca limbajul de la Microsoft c#, principalul rival al lui Java, este o adevarata “unealta” atunci cand vine vorba de productivitate si viteza in a realiza un program, iar paltforma .net este o adevarata “lada plina de unelte” in sensul ca aici poti gasi o sumedenie de clase gata facute pentru tine ce asteapta sa le folosesti.  O sa incerca sa ilustrez cele mentionate printr-un exemplu practic si anume o componenta vizuala pe care o putem folosi ori de cate ori dorim in orice proiect. Pentru cei care au mai relizat astfel de compoente in alte limbaje cum ar fi c++ sau vb se se poate observa simplitatea cu  care realizam o munca relativ complexa daca stam sa ne gandim la principiile care stau la baza unei componente vizuale.

Prima componenta vizuala in c#

P.S. Pentru cei care probabil ca va inrebati de unde vine numele asta de c# (citit c sharp) iata raspunsul aici

Windows sub licenta GNOT

In sfarsit Windows este open-source. Codul sura este redat mai jos.  Deja ne putem face o imagine la cum ar arata sursa la Windows 7 :D .

Prototipuri in JAVASCRIPT

Desi javascript nu suporta clase totusi se poate poate programa obiectual si anume folosind prototipuri. Javascript este un limbaj in care gasesti atat cele mai mari idiotenii posibile care s-au putut inventa in vre-un limbaj de programare cat si unele cu adevarat geniale, printre acestea se numara faptul ca un obiect in Javascript este un container generic la care ii poti adauga oricand o noua proprietate sau “metoda”. Mai jos este un exemplu de “clasa” (un echivelent al unei clase din limbaje care suporta asa ceva) ce incapsuleaza mecanismul cunoscut si sub denumirea de AJAX.

Pentru cei care nu stiu AJAX este un mecanism de comunicare asicrona cu server-ul, adica pentru a aduce informatie nu este necesara un refresh de pagina.

Continue reading Prototipuri in JAVASCRIPT

Web browser in 2 pasi

Recent intr-un proiect am avut nevoie de un web browser propriu. In loc sa folosesc un activeX de Internet Explo(r/d)er am ales sa imi constriuesc propria componenta din mai multe considerente: in primul rand proiectul era in Java si  nu doream sa folosesc JNI (java native interface- pentru cei care nu sunt familiarizati cu termenul in doua cuvinte este vorba de o tehnologie ce va permite sa accesati cod nativ din programele de java.)  si al doilea motiv era ca nu aveam nevoie de un web browser foarte complex care sa suporte ‘nspe mii de plugin-uri.
Iata un exemplu minimal :

import javax.swing.event.HyperlinkEvent;
import javax.swing.*;
import java.io.*;
import javax.swing.event.HyperlinkListener;

public class SimpleWebBrowser {
static JEditorPane jep = new JEditorPane();
public static void main(String[] args) {

String initialPage = “http://www.google.ro/”;
if (args.length > 0) initialPage = args[0];

jep.setEditable(false);

jep.addHyperlinkListener(new HyperlinkListener() {

public void hyperlinkUpdate(HyperlinkEvent e) {
try {
jep.setPage(e.getURL());
} catch (IOException ex) {
Logger.getLogger(SimpleWebBrowser.class.getName()).log(Level.SEVERE, null, ex);
}
}
});

try {
jep.setPage(initialPage);
}
catch (IOException e) {
System.err.println(”Usage: java SimpleWebBrowser url”);
System.err.println(e);
System.exit(-1);
}

JScrollPane scrollPane = new JScrollPane(jep);
JFrame f = new JFrame(”Simple Web Browser”);
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.getContentPane().add(scrollPane);
f.setSize(512, 342);
f.show();

}

}

Si iata cum ar arata “miniborwser-ul”

Javscript si fractali

Desi un limbaj destul de nabagat in seama de majoritatea programatoriilor Javascript incepe sa isi arate adevarata valoare odata  cu dezvoltarea aplicatiilor web. Am ramas destul de mirat intr-un mod placut de http://azarask.in/projects/algorithm-ink un site ce ofera un engine de generare a fractaliilor 2d in browser. M-am intersat mai mult si se pare ca engine-ul respectiv este open source, se poate descarca de la http://azarask.in/projects/algorithm.tar.gz .

Reveal password

Pentru astazi va propun un mic tutorial in care o sa va arat cum se ‘dezvaluie’ un string dintr-un input de pe orice forumlar care este mascat..ma refer la campurile acelea in care se introduce parola.
Ideia de baza este una foarte simpla tot ce trebuie sa facem este sa luam fiecare proces in  parte si daca acesta contine un fomular ce are campuri mascate atunci le dezvaluim( trimitem un mesaj catre componenta pentru a reseta carcaterul de masca).Haideti sa aruncam o privire la cod, am incercat sa ma folosesc doar de WinAPI pentru a evita eventualele dependente de platforme sau mai stiu eu ce.

//declarare functii
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam);
BOOL CALLBACK EnumWindowsProc2(HWND hwnd,LPARAM lParam);

//functia principala
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
 EnumWindows(EnumWindowsProc,0);
  return 0;
}          

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
    // se 'enumereaza' toate procesele ce contin ferstre
    EnumChildWindows(hwnd,EnumWindowsProc2,lParam);
    return TRUE;
}          

BOOL CALLBACK EnumWindowsProc2(HWND hwnd,LPARAM)
{
    //se reseteaza caracterul de masca pentru input-ul de parola
    ::SendMessage(hwnd,EM_SETPASSWORDCHAR,0,0);
    InvalidateRect(hwnd,NULL,FALSE);
    return TRUE;
}

Iata o demonstratie:

Singura remarca care s-ar putea face este ca programul nu functioneaza pentru procesele care contin formulare ierarhizate pe mai mult de 2 nivele. Acest neajuns se poate rezolva printr-o tehnica mult mai avansata ,care cere anumite cunostiinte destul de serioase despre sistemul de operare, si anume DLL injection, tehnica pe care sper sa am timp sa o abordez ceva mai pe larg in masura in care timpul mi-o permite si mai ales daca sunt cititori intersati :D .

Blue brain

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 :D .
Am gasit pe youtube un filmulet destul de intersant

Asa ca si un fel de concluzie : omul este masura tuturor lucrurilor.

Despre MS

Vad ca s-au adunat mai mutle stiri despre MS in ultima vreme pe care as vrea sa le punctez sau sa le comentez un pic.

O prima chestie, ce s-a anuntat la PDC2008 am impresia ca nu a prins foarte tare pe net, pt. ca nu se vorbeste atit de mult despre Azure sau .NET 4.0 pe cit ar merita (mai multe discutii totusi despre Win7). Cel mai probabil pt. ca sint anunturi pt. lansari peste multe luni de acum incolo, nicidecum produse disponibile imediat. E drept ca .NET 4.0 CTP este disponibil pt. download, doar ca atentie, este peste 7Gb !!! Ce naiba e asa mare? Doar pt. a-l testa trebuie tone de video care sint convis ca sint puse acolo + tone de alte prostii? Plus cerinte hardware mari, sint convins. Asa ca spun pas, deocamdata.

Inscrierea pt. Azure inca din prima zi sta bine mersi, neonorata. Sper ca totusi cindva sa fie aprobata pt. ca personal sint tare curios de aceasta tehnologie.

Insa citeam aici despre nou lansatul program MS numit BizSpark (sau pe net vezi asta). Similar cu programeel academice pt. studenti, e un program pt. start-up-uri care pot beneficia gratuit de tehnologia MS, in anumite conditii (ce mi se par foarte rezonabile). Ideea e de a spriji aceste firme la inceput, evident ghidindu-le spre tehnologia MS, ce in mod normal costa bine. Mi se pare o idee excelenta pt. ca pune in situatie de win-win ambii parteneri: firma are acces la tehnologie ce altfel costa peste puterile ei, iar MS are un nou partener ce atunci cind va creste si va deveni rentabil ghiciti ce va folosi. Sa vedem doar cum va fi aplicata, inclusiv in RO, pt. ca citesc despre niste parteneriate interesante de promovare a programului.

Apoi nu pot sa nu zimbesc la stirea de la Yahoo ce pune iar pe tava preluarea lor de catre MS, discutie redeschisa de aceasta data de CEO Yahoo (si co-fondator), Jerry Yang (via eduard.ro). Insa in conditii total schimbate, cu pretul actiunii actuale la mai putin de jumatate din ce a fost. Adica jumate de pret cel mult fata de ce s-a discutat acum citeva luni. Interesant.