Regex : a must know
Unul dintre lucrurile extrem de utile pe care le-am descoperit in facultate au fost expresiile regulate.
Probabil ca cel mai tare am dat cu nasul de ele la un curs de compilatoare unde se foloseau in scrierea parserului pentru a extrage atomii lexicali din fisier.
Un alt moment in care m-am lovit de ele a fost in dezvoltarea de aplicatii web unde le-am folosit pentru validarea datelor de input si “curatarea” lor ( care e traducerea romana acceptata pentru “Sanitize” ??? )
Si evident un utilizator de linux le descopera utilitatea atunci cand descopera un sed sau cand isi da seama cat de util poate fi grep combinat cu regEx.
Pentru un mic ghid introductiv, sau un refresher puteti sa cititi tutorialul de aici:
Atoi is evil :D
Unul dintre avantajele majore ale limbajelor de programare de nivel inalt e ca pun la dispozitie functii/metode/proceduri care degreveaza developerul de “operatiile de bucatarie” gen : obtinerea atomilor dintr-un string, calculul unei puteri sau transformarea unui sir de caractere intr-o valoare intreaga.
Dar aceasta degrevareis co este o sabie cu 2 taisuri. Un programator poate folosi o functie de biblioteca care ii salveaza 10 minute de coding dar care odata ce programul ajunge sa fie folosit “in production” se poate dovedi a fi o alegere proasta ce diminueaza considerabil performanta aplicatiei.
E adevarat totusi ca nu toate aplicatiile sunt atat de “pretentioase”, dar eu cred ca e bine sa stii totusi cat de bine functioneaza metodele pe care le folosesti.
Un articol interesant pe tema asta aici
Sony XPERIA X1
I love Nokia. Daca maine ar trebui sa-mi aleg un telefon nu as ezita si mi-as lua unul facut de firma finlandeza. Pe de alta parte intotdeauna am avut a soft spot pt seria P de la Sony-Ericsson ( gen asta ).
Bineinteles ca mai exista si favoritul numarul 1 al oamenilor trendy-cool : the iPhone. O jucarie simpatica dar careia ii lipsesc unele facilitati. Vorba aia … de la Apple nu merita sa-ti iei niciodata prima generatie dintr-un produs. Partea cool la iPhone este ca a speriat putin companiile producatoare de telefoane mobile care acum vor investi mai mult in R&D.
Si rezultatele nu intarzie sa apara. Uitati-va la aceasta mica bijuterie:
Touch-screen, camera de 3.2MP, Windows Mobile 6, Radio, Java, IE ( vorba celor de pe gizmodo …il inlocuim cu Opera ), RSS pentru a fi constant la curent cu evolutia blogosferei
, design simpatic, SD card, quad band….
It seems like i have a new wish for this Xmas.
A beautiful quicksort
Google TT :
A beautiful function
Una dintre diferentele intre un programator bun si unul slab este demonstrata de urmatoarea functie :
Hello world!
Basic :
10 PRINT “HELLO WORLD”
Bash
#!/bin/sh
echo hello, world
C
#include
#include
int main(void)
{
printf(”Hello, world\n”);
return EXIT_SUCCESS;
}
C++
#include
int main()
{
std::cout << “Hello, World.” << std::endl;
}
Html - not really a programming language :p
JavaLanguage:
public class Hello {
public static void main(String []args) {
System.out.println(”Hello World”);
}
}
Object oriented Java
class Greeting {
void greet(Named target) {
System.out.println(”Hello, ” + target.getName() + “!”);
}
}
interface Named {
String getName();
}
class World implements Named {
String getName() {
return “World”;
}
}
class Main {
public static void main( String[] args ) {
Greeting greeting = new Greeting();
greeting.greet(new World());
}
}
Swing Java
public class Hello {
public static void main(String []args) {
JOptionPane.showMessageDialog(null,”Hello, world!”);
}
}
JavaApplet:
import java.applet.*;
import java.awt.*;
public class Hello extends Applet {
public void paint(Graphics g) {
g.drawString(”Hello World”, 25, 50);
}
}
JavaScript:
document.writeln("Hello, World");
Pop up:
alert("Hello, World");
PL/SQL
BEGIN
DBMS_OUTPUT.PUT_LINE(’Frank and Beans’);
END;
Python
You copy the following text into a file and call the file (hello.py) (remember python is sensitive of it’s indenting, which rocks
)
print "hello world"
Now invoke the interpreter and pass it your file with the single command: python hello.py