vineri, 26 iulie 2013

Open source - Scilab

Scilab - introducere 


Scilab este un mediu de dezvoltare extrem de usor de utilizat. Poate fi utilizat pentru calcul si analiza statistica, permite manipularea matricelor, vizualizarea functiilor, implementarea algoritmilor, crearea de interfete grafice(GUI) si poate interactiona cu alte aplicatii. Matematica devine extrem de usoara cu aceasta aplicatie. Nu credeam sa ajung sa invat matematica, pana cand am descoperot programul Scilab, caruia ii datorez faptul ca am reusit sa ma descurc cu matricele.

Scilab - interfata grafica (GUI) I


Scilab [Sailab] este un mediu de dezvoltare multiplatformă (Windows, Linux, MacOS) pentru calcul si analiza statistica care permite manipularea matricelor, vizualizarea functiilor, implementarea algoritmilor, crearea de interfete și poate interactiona cu alte aplicatii.

In acest tutorial v-om explica pas cu pas cum sa creem o interfata grafica. Avantajul utilizarii interfetelor grafice este acela ca face lucrul pe calculator mult mai intuitiv si usureaza procesul de invatare.

Functia care creaza interfata grafica in Scilab este:

h = uicontrol(PropertyName,PropertyValue,...)
h = uicontrol(parent,PropertyName,PropertyValue,...)
h = uicontrol(uich)
 
Pentru a afisa o fereastra:

1:  fereastra = figure();  
2:  // se deschide o fereastra  
3:  h=uicontrol(fereastra, "style", "listbox", "position",[10 10 150 160]);  
4:  // crearea unei liste  
5:  set(h, "string", "item1|item2|1tem3");  
6:  //umplerea listei  
7:  set(h, "value", [1 3]);  
8:  //close(fereastra);  
 
În partea dreapta este fereastra
rezultata dupa executarea codului de mai sus. 
















Scilab - determinarea anului bisect


Scilab [sailab] este un mediu de dezvoltare multiplatformă (Windows,
Linux, MacOS) pentru calcul si analiză statistica care permite manipularea matricelor, vizualizarea funcțiilor, implementarea algoritmilor, crearea interfetelor si poate interactiona cu alte aplicații.
Fiind un program cu sursă deschisa dezvoltarea de functii si librării este la indemana oricarui utilizator.
În urmatoarele rânduri v-om prezenta un program care determina daca un an este bisect sau nu.
1:  a = input("Introduce-ti anul: ")  
2:  if (modulo(a,4)==0) then  
3:    if(modulo(a, 100)==0) then  
4:      if(modulo(a, 400)==0) then  
5:        disp("este bisect")  
6:      else  
7:        disp("nu este bisect")  
8:      end  
9:    else  
10:      disp("este bisect")  
11:    end  
12:  else  
13:    disp("este bisect")  
14:  end  
Alte articole despre Scilab:
Programul Scilab poate fi comandat din:
Scilab este un mediu de dezvoltare pentru calcul si analiza statistica care permite manipularea matricelor si vizualizarea functiilor, implementarea algoritmilor, crearea de interfete si poate interactiona cu alte aplicatii.
Functiile sunt colectii de comenzi executate in interiorul acestora, astfel variabilele functiei sunt izolate de  variabilele declarate in afara functiilor.
De exemplu daca dorim adunarea a doua numere, putem foarte usor declara aceasta functie:
-----------
Startup execution:
  loading initial environment
-->function add=adunare(a,b)
-->add=a+b
-->endfunction
-->adunare(3,7)
 ans  =
    10.
 ---------------------------------
Functia declarata in consola o putem folosi prin denumire si atribuire a doua argumente. Acest exemplu a creat o functie simpla, dar modelul este acelasi ca si in cazul functiilor complexe.
-------------------------------
-->function add=adunare(a,b)
-->add=a+b
-->endfunction
----------------------------------------
Aceasta functie poate fi scrisa si in editorul SciNote si incarcata direct din editor in consola si apoi utilizarea functiei se face la fel ca si la declararea din consola. Acest aspect face ca Scilab sa poata fi extins cu alte functii.
Alte articole despre Scilab:
Programul Scilab poate fi comandat din:

Scilab - monitorizarea tensiunii arteriale


Scilab este un program de calcul matematic și emulare grafica care poate fi extins cu functii scrise de utilizatori. Dupa cum am aratat in postarea anterioara este un program foarte usor de invatat si utilizat.
Scilab este un mediu de dezvoltare pentru calcul și analiză statistică care permite manipularea matricelor, vizualizarea functiilor, implementarea algoritmilor, crearea de interfețe și poate interactiona cu alte aplicatii.
Vă propun în rândurile următoare să încercăm monitorizarea tensiunii arteriale și să realizam un grafic cu valorile pe care le-am obținut. Să presupunem că avem următoarele valori, stocate in matricea inregistrari.
inregistrari  =
    100.5    116.    88. 
    96.      122.    71. 
    96.      116.    62. 
    96.6     111.    76. 
    96.1     118.    68. 
    95.      114.    71. 
Pentru a putea utiliza aceste valori scriem urmatorul cod:
------------------------------------------------------------------------------------------------
//sanatate
inregistrari=[100.5 116 88; 96 122 71; 96 116 62; 96.6 111 76; 96.1 118 68; 95 114 71]
greutate=inregistrari(:,1)
syst=inregistrari(:,2)
dyst=inregistrari(:,3)
plot(greutate,syst, greutate, dyst)
xlabel("Greutatea in kg")
ylabel("Tensiunea SYS/mmHg, DIA/mmHg")
title('Greutate vs Tensiunea SYSmmHg, DIA/mmHg')
//xgrid(1)
legend("SYS/mmHg", "DIA/mmHg")
----------------------------------------------------------------------------------------------------
Graficul care este afisat mai jos este rezultatul executiei codului de mai sus:
Programul Scilab și manualul de utilizare poate fi comandat de aici . Scilab are versiuni si pentru sistemele de operare linux, ex: UBUNTU care poate fi comandat impreuna cu un scurt manual de utilizare aici .

Scilab 5.4.1 - calcul matematic si editor grafice

Acest tutorial se doreste un material care să vă ghideze primi pași în utilizarea Scilab, manualul complet și softul Scilab pot fi comandate de aici.
Scilab este un program de calcul matematic si emulare grafică a rezultatelor obtinute care poate fi extins prin adaugarea de module aferente si altor domenii ale stiintei (fizica, inginerie, etc.).
Urmarind invatarea matematicii si fizicii, Scilab este de un real ajutor celor ce doresc utilizarea sa in rezolvarea problemelor de matematica. Oferind un mediu de lucru simplu si eficient acesta se adreseaza atât elevilor incepand cu clasa a V si pana la cele mai avansate medii academice.
Codul ce urmeaza:
x = 1:10;
y = log(x);
plot (x,y)
Va afisa urmatorul grafic:
În editorul Scinote codul scris arată :

sâmbătă, 6 iulie 2013

Open source - Python și Pygame


Python si Pygame - creați jocuri


Python este un limbaj de programare dinamic multi-paradigmă, creat în 1989 de olandezul Guido van Rossum. Van Rossum continuă și în ziua de astăzi a fi un lider al comunității de dezvoltatori care continuă să perfecționeze limbajul Python și implementarea de bază a acestuia, CPython, scrisă în C. Python este folosit de companii și organizații ca NASA, Google, Yahoo!, utilizat ca limbaj de scriere în multe aplicații, inclusiv aplicații lider în sfera graficii 3D. Multe sisteme bazate pe Unix, inclusiv Linux, BSD și Mac OS X includ din start interpretorul Cpython.

Dar Python este puternic tipat, adică interpretatorul nu permite operații de tip cast ca în C, deși sunt unele excepții logice ca lucrul cu numere întregi și numere float.
Pygame este un modul multi platforma al python, construit pentru realizarea jocurilor care include si o librarie sonora pentru a fi utilizata cu limbajul Python. Libraria Pygame a fost scrisa de pete Shinners și a fost lansata sub licență free.
Descarcare și instalare Python
Software-ul Python poate fi descarcat de pe site-ul oficial http://www.python.org .

Dar Python este puternic tipat, adică interpretatorul nu permite operații de tip cast ca în C, deși sunt unele excepții logice ca lucrul cu numere întregi și numere float.

Python este un limbaj de programare dinamic multi-paradigmă, creat în 1989 de olandezul Guido van Rossum. Van Rossum continuă și în ziua de astăzi a fi un lider al comunității de dezvoltatori care continuă să perfecționeze limbajul Python și implementarea de bază a acestuia, CPython, scrisă în C. Python este folosit de companii și organizații ca NASA, Google, Yahoo!, utilizat ca limbaj de scriere în multe aplicații, inclusiv aplicații lider în sfera graficii 3D. Multe sisteme bazate pe Unix, inclusiv Linux, BSD și Mac OS X includ din start interpretorul Cpython.
Limbajele dinamice sunt deseori caracterizate prin tipizare dinamică, sunt interpretate, au management de memorie automatizat (garbage collecting) și au un nivel înalt de abstractizare. Tipizarea dinamică permite declararea variabilelor fară declararea tipului variabilei, interpretatorul determinînd tipul variabilei după conținutul sau operațiile efectuate.
Dar Python este puternic tipat, adică interpretatorul nu permite operații de tip cast ca în C, deși sunt unele excepții logice ca lucrul cu numere întregi și numere float.
Python este un limbaj multi-paradigmă, concentrându-se asupra programării imperative, orientate pe obiecte și funcționale, ceea ce permite o flexibilitate mai înaltă în scrierea aplicațiilor. Din punctul de vedere al sintaxei, Python are un număr de contrucții și cuvinte cheie cunoscute oricărui programator, dar prezintă și un concept unic: nivelul de indentare are semnificație sintactică. Blocurile de cod sunt delimitate prin simplă indentare. În C un astfel de blocuri sunt deseori desemnte prin paranteze acolade, {<cod>}, dar în Python nu este nevoie de astfel de construcții. Nivelele de indentare poartă același rol. Această importanță a indentării este foarte suprinzătoare pentru mulți noi utilizatori ai limbajului Python, chiar dacă sunt programatori cu experiență. Dar o astfel de utilizare a indentării permite codului să fie mai ușor de citit și mai compact. Programatorii cu experiență oricum indentează codul sursă, oricare ar fi limbajul, fiindcă aceasta permite a structura codul sursă și al face mai citeț și mai pe înțelese, iar Python face din această deprindere folositoare o cerință strictă. Un exemplu analogic ar fi Java, care forțează programatorii să delimiteze clasele în fișiere aparte, din motive de organizare și sporire a eficienței de scriere a softului în echipe.
Python programare
Pe un sistem Ubuntu 12.10 deschideti un terminal si introduceti urmatoarea comanda:
----------------------------------------------------------------------------
#python
#Python 2.7.3 (default, Sep 26 2012, 21:53:58)
#[GCC 4.7.2] on linux2
# Type "help", "copyright", "credits" or "licence" for more information.
# >>>
# pt. a iesi din python executati comanda Ctrl+D si intrati din nou in terminal
# in terminal rulati comanda $ mkdir mystuff
# $ cd mystuff
# folositi editorul de texte pentru a edita fila test.txt
# $ ls
# test.txt
# $
# tot ce va trebuie este programul gedit pt. a scrie programe, python pt. a le
# rula
print "Salut eu sunt un program Python"
print "Sunt Mihai C. si va scriu acest tutorial pt Python"
print " Data: 25.05.2013"
print " pt a rula programul rulati python ex1.py"
-----------------------------------------------------------------------------

Python joc de antrenarea memoriei


În jocul de pazzle, pe care îl vom prezenta in urmatoarele pagini, ne vom folosi de niste patrațele albe care vor acoperi un numar de doua imagini asemanătoare. Jucătorul poate apasa două patrațele pentru a vedea ce este dedesupt, daca imaginile sunt la fel acestea răman descoperite. Jucatorul câștigă atunci când toate imaginile sunt descoperite. Pentru a oferi un avantaj jucătorului la inceputul jocului imaginile vor fi afisate pentru scurt timp.

Inainte de a purcede la treabă, vom explica un concept care va fi folosit in aproape toate jocurile. Ciclurile for imbricate și constă in folosirea unui ciclu for in corpul altui ciclu for, de exemplu in shell-ul Python:
Python 2.7.3 (default, Aug 1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "copyright", "credits" or "license()" for more information.
==== No Subprocess ====
>>> for x in [0, 1, 2, 3, 4]:
for y in ['a', 'b', 'c']:
print(x, y)

(0, 'a')
(0, 'b')
(0, 'c')
(1, 'a')
(1, 'b')
(1, 'c')
(2, 'a')
(2, 'b')
(2, 'c')
(3, 'a')
(3, 'b')
(3, 'c')
(4, 'a')
(4, 'b')
(4, 'c')
>>>

Ciclurile for imbricate sunt utilizate pentru a combina liste. Daca schimbam ordinea ciclurilor for, rezultatul este urmatorul:

>>> for y in ['a', 'b', 'c']:
for x in [0, 1, 2, 3, 4]:
print(x, y)

(0, 'a')
(1, 'a')
(2, 'a')
(3, 'a')
(4, 'a')
(0, 'b')
(1, 'b')
(2, 'b')
(3, 'b')
(4, 'b')
(0, 'c')
(1, 'c')
(2, 'c')
(3, 'c')
(4, 'c')
>>>

În jocul nostru, avem nevoie de ciclurile for pentru a itera pe coordonatele X și Y ale ferestrei pentru a ne asigura ca am epuizat toate combinatiile.


miercuri, 3 iulie 2013

Ubuntu 13.04 un sistem de operare complet




UBUNTU 13.04 RARING RINGTAIL

Ubuntu 13.04 este o versiune intermediară între 12.04 (versiune care se bucură de suport tehnic timp de 5 ani, și versiunea Ubuntu 14.04 care va marca debutul convergenței intre PC-uri, tablete și telefoane mobile.

Versiunea pe care o putem oferi pe CD pentru instalare oferă o interfață Unity actualizată. Aceasta oferă acum animații și ferestre de previzualizare noi, meniuri noi pentru sincronizare cu Ubuntu One și controlul modulului Bluetooth, comutare rapidă între aplicații deschise cu ajutorul Quicklists sau a derularii deasupra aplicației dorite și controlul mai bun asupra integrării social media.





Ubuntu 13.04 vine cu un pachet software care îl face capabil să concureze cu Windows ca mediu de lucru office cât și pentru utilizare particulară. Oferă și un centru de software(Ubuntu Software Center) în care aplicațiile pot fi descarcate și instalate asemănător Android.
Pentru comenzi CD imagine iso de instalare trimiteți adresa dvs. la mhcrnl@gmail.com

duminică, 30 iunie 2013

NimbleX sistem de operare românesc bazat pe linux






NimbleX – distribuție Linux romanească




NimbleX poate fi descarcat de la adresa http://www.nimblex.net/ si are 400MB putând rula de pe CD sau USB.

Pentru distributie pe CD inscriptionată cu imaginea iso vă puteți adresa la tel: 0722.27.07.96 sau la e-mail: mhcrnl@gmail.com .









luni, 6 mai 2013

Ajax - discutia cu serverul

Acum trebuie sa invatam sa utilizam proprietatile si metodele obiectului XMLHTTPRequest pentru a-i permite sa trimita cereri catre server si sa primeasca date de la acesta.

Dupa cum ati vazut in tutorialul trecut:

Crearea obiectului XMLHTTPRequest este destul de simplu, urmeaza sa creem si trimite cereri catre server si analiza raspunsurile primite.

Sa trecem direct la lucru si sa creem un obiect XMLHTTPRequest si apoi o functie JavaScript pentru a trimite o cerere asincrona:
-------------------------------------------
function getXMLHTTPRequest(){
var req = false;
try {
req = new XMLHTTPRequest();
}
catch(err1)
}
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err2)
{
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err3)
{
req = false;
}
}
}
return req;
}
var myRequest = getXMLHTTPRequest();
function callAjax() {
//declararea unei variabile care sa pastreze informatiile transmise catre server
var lastname='Smith';
//construirea adresei URL a scriptului de server pe care dorim sa-l apelam
var url = "myserverscript.php?surname=" + lastname;
//cerem obiectului nostru XMLHTTPRequest sa deschida o conexiune la server
myRequet.open("GET", url, true);
//pregatirea unei functii responseAjax() care va rula la sosirea raspunsului
myRequest.onreadystatechange = responseAjax;
// trimiterea cererii
myRequest.sent(null);
---------------------------------------------------------------------------------------------------------------

Sa dezvoltam aplicatia sa vedem daca functioneaza. Avem nevoie de urmatoarele fisiere:

  • index.html
-----------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="ajaxreq.js">

</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
------------------------------------------------------------------------------
  • ajaxreq.js
--------------------------------------------------------------------------------
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","index.txt",true);
xmlhttp.send();
}
-------------------------------------------------------------------------------------
  • index.txt
----------------------------------------------------------------------------------------
Salut!
Acesta este un fisier de pe Server.
-----------------------------------------------------------------------------------------

Dupa rularea scriptului trebuie sa fie afisat mesajul din index.txt.
"+"Joe Reed

duminică, 5 mai 2013

AJAX - anatomia unei aplicatii

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>

</body>
</html>

Let AJAX change this text





  • Obiectul XMLHTTPRequest
- este acceptat de aproape toate browserele moderne, si este suportat de o multitudine de platforme.
Scopul obiectului XMLHTTPRequest este de a permite ca JavaScript sa formuleze cereri HHTTP si sa le trimita catre server. Aplicatiile web programate in mod traditional relizeaza de obicei astfel de cereri in mod sincron, ceea ce are ca rezultat transmiterea catre browser a unei pagini noi sau actualizate.

Utilizand insa obiectul XMLHTTPRequest puteti pune pagina sa efectueze astfel de apelari in mod asincron, in fundal, ceea ce va permite utilizarea paginii fara intreruperi cauzate de reimprospatarea browserului.

Pentru majoritatea browserelor care accepta XMLHTTPRequest ca un obiect nativ(Mozilla, Opera si restul), crearea unei instante a aecestui obiect este simpla si directa:

var request = new XMLHTTPRequest();

Pentru Microsoft Internet Explorer trebuie sa creati un obiect ActiveX:

var request = new ActiveXObject("Microsoft.XMLHTTP")



MethodDescription
open(method,url,async)Specifies the type of request, the URL, and if the request should be handled asynchronously or not.

method: the type of request: GET or POST
url: the location of the file on the server
async: true (asynchronous) or false (synchronous)
send(string)Sends the request off to the server.

string: Only used for POST requests

Metoda open()
- pregateste obiectul XMLHTTPRequest pentru a comunica cu serverul si are cel putin 2 argumente obligatorii:

  1. precizarea metodei HTTP pe care intentionati sa o utilizati GET sau POST,
  2. adresa URL de destinatie a cererii, pentru GET aceasta adresa trebuie sa fie codificata corespunzator.
Din motive de securitate, obiectului XMLHTTPRequest i se permite sa comunice doar cu adrese URL din interiorul propriului domeniu.
The url parameter of the open() method, is an address to a file on a server:
xmlhttp.open("GET","ajax_test.asp",true);
The file can be any kind of file, like .txt and .xml, or server scripting files like .asp and .php (which can perform actions on the server before sending the response back).

Metoda send()

Dupa ce ati pregatit obiectul cu metoda open(), puteti trimite cererea cu metoda send(). 

Limbajul PHP

Prima data trebuie sa raspundem la intrebarea: Ce poate face PHP?

Orice. PHP este axat în principal pe scripting de partea server-ului, deci puteți realiza cu el orice poate realiza un alt program CGI, cum ar fi colectarea datelor din forme, generarea conținutului dinamic al paginilor sau trimiterea și primirea cookies. Dar PHP poate face mult mai multe.
Sunt trei domenii principale, unde scripturile PHP sunt utilizate.
  • Scripting de partea serverului. Acesta este cel mai tradițional și de bază domeniu al PHP. Aveți nevoie de trei lucruri pentru ca aceasta să funcționeze. Analizatorul PHP (în calitate de CGI, sau modul pentru server), un server web și un navigator web. Trebuie să rulați serverul web cu o instalare PHP conectată la el. Puteți accesa ieșirile programului PHP cu navigatorul web, vizualizând pagina PHP prin server. Toate acestea pot rula pe computerul dumneavoastră de acasă, dacă doar experimentați cu programarea în PHP. Citiți secțiunea cu instrucțiuni de instalare pentru informații suplimentare.
  • Scripting în linia de comandă. Puteți să faceți un script PHP să ruleze fără un server și navigator web. Aveți nevoie doar de analizatorul PHP pentru a-l utiliza în acest mod. Acest mod de utilizare este ideal pentru script-uri executate în mod regulat cu cron (pe *nix sau Linux) sau cu Task Scheduler (pe Windows). Aceste script-uri pot fi utilizate de asemenea pentru lucrări simple de procesare a textelor. Citiți secțiunea despre Utilizarea PHP în linia de comandă pentru informații suplimentare.
  • Scrierea aplicațiilor de birou. PHP probabil că nu este cel mai potrivit limbaj pentru a crea o aplicație de birou cu o interfață grafică a utilizatorului, dar dacă cunoașteți PHP foarte bine și doriți să utilizați unele facilități avansate ale PHP în aplicații de partea clientului, puteți să utilizați PHP-GTK pentru a scrie asemenea aplicații. De asemenea aveți posibilitatea să scrieți în acest mod aplicații ce vor rula pe mai multe platforme. PHP-GTK este o extensie a PHP, care nu este disponibilă în distributivul de bază. Dacă v-a interesat PHP-GTK, vizitați » propriul său website.

sâmbătă, 4 mai 2013

Vizualizati ora exacta in diferite orase din lume - KDE

Utilizatorii desktopului KDE pot urmarii ora exacta din foarte multe orase de pe glob.

Pentru asta trebuie sa configurati ceasul digital din bara de stare, seta ora si selecta orasele pe care sa le adaugati.
Dati click-dreapta pe ceasul digital din bara de stare si alegeti Digital Clock Settings, dupa care selectati Time Zones, scrieti numele orasului pe care il cautati. In momentul cand l-ati gasit selectati casuta corespunzatoare. Urmati acelasi proces si pentru urmatoarele orase.

Pentru a incheia setarea apasati OK. Vizualizati orele din orasele selectate ducand cursorul mouse-ului deasupra ceasului din bara de stare.

marți, 30 aprilie 2013

HTML5 - puterea interfetelor


Webul reprezinta platforma pentru toate tipurile de dispozitive, iar prin API-urile din HTML5, avem posibilitatea sa cream lucruri despre care nu am crezut ca ar fi realizabile.

Camera
Desi WebRTC(http://www.webrtc.org/) evolueaza, primul pas fiind facut prin accesul la camera foto a dispozitivului. Implementat in Firefox si Chrome pe Android permite utilizatorului sa faca clic pe un buton, sa-si faca o fotografie si sa o partajeze direct cu pagina web:
<input type="file" id="take-picture" accept="image/*">


luni, 29 aprilie 2013

Lista distributiilor linux pentru emisie radio pe internet

Linux is new anymore, there are many custom Linux operating system that was designed for ham radio operators. Here are the list of famous Linux operating system for ham radio usage 1. KB1OIQ - Andy's Ham Radio Linux DVD - This is a remastered version of Ubuntu Linux. As of version 13, there are 32-bit and 64-bit versions available. 2. hamOS - A Debian based Live and Installable operating system for radio amateurs. hamOS contains many preinstalled ham radio applications as well as a custom menu. This respin is geared toward the newer linux user. hamOS uses the lightweight LXDE desktop environment and is therefore suitable for older hardware. Check out the GetExtras folder on the desktop to run some custom scripts that will automatically grab flash, codecs, and other non-libre software. 3. Ar-knoppix 4. Harv's Hamshack Hack 5. Digipup - based on puppylinux (lightweight linux distribution) 6. Shackbox - Shackbox provide linux AND windows software like the famous ham radio deluxe, trunking software and a lot of other software related to electronics, antenna design and else. 7. Hamux - CentOS based repository with ham radio software. However, you can choose any linux distro you like and install any ham radio applications that you desired. Since linux is opensource operating system, you can hack the source to suit your taste. Google, Yahoo also powered by linux operating system and small hardware such as switch, routers, acces point also powered by linux nowadays. Most of websites running on linux webservers. Happy Hamlinux-ing!

Citirea elementelor CSS in jQuery


Citirea elementelor CSS

Proprietatile CSS ale unui element HTML se pot citi /prelua cu urmatoarea sintaxa:

$('selector').css('proprietate_css');
- selector - reprezinta un element HTML.
- proprietate_css - proprietatea CSS ce va fi citita.

Preluarea culorii de background dintr-un element div.
<!DOCTYPE html>
<html>
<head>
<style>
div { width:60px; height:60px; margin:5px; float:left; }
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<span id="result">&nbsp;</span>
<div style="background-color:blue;"></div>
<div style="background-color:rgb(15,99,30);"></div>
<div style="background-color:#123456;"></div>
<div style="background-color:#f11;"></div>
<script>
$("div").click(function () {
var color = $(this).css("background-color");
$("#result").html("That div is <span style='color:" +
                   color + ";'>" + color + "</span>.");
});
</script>
</body>
</html>


Preluarea valorilor width, height, text color si background color la apasarea unui element div.
<!DOCTYPE html>
<html>
<head>
<style>
div { height: 50px; margin: 5px; padding: 5px; float: left; }
#box1 { width: 50px; color: yellow; background-color: blue; }
#box2 { width: 80px; color: rgb(255,255,255); background-color: rgb(15,99,30); }
#box3 { width: 40px; color: #fcc; background-color: #123456; }
#box4 { width: 70px; background-color: #f11; }
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<p id="result">&nbsp;</p>
<div id="box1">1</div>
<div id="box2">2</div>
<div id="box3">3</div>
<div id="box4">4</div>
<script>
$("div").click(function () {
var html = ["The clicked div has the following styles:"];
var styleProps = $(this).css( ["width", "height", "color", "background-color"] );
$.each( styleProps, function( prop, value ) {
  html.push( prop + ": " + value );
});
$( "#result" ).html( html.join( "<br>" ) );
});
</script>
</body>
</html>


Schimbarea culorii unui text la trecerea mouse-ului peste el.
<!DOCTYPE html>
<html>
<head>
<style>
p { color:blue; width:200px; font-size:14px; }
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<p>Just roll the mouse over me.</p>
<p>Or me to see a color change.</p>
<script>
$("p").on( "mouseover", function() {
  $(this).css( "color", "red" );
});
</script>
</body>
</html>