Jump to content

BitMap

Active Members
  • Posts

    209
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by BitMap

  1. La interviul tehnic ar trebui sa ma astept la intrebari din OOP sau trebuie sa rezolv eu probleme pe foaie acolo?

    Cei care au fost la interviuri tehnice, cum s-a desfasurat? Foaie si pix? A decurs totul verbal?

    Pe scris sau nu, asta cred ca depinde de la firma la firma, sau pur si simplu de la cel care e prezent la interviu. Oricum nu pune mult accent pe asta, tu trebuie sa fi pregatit indiferent.

    La partea de OOP trebuie sa stii cateva reguli, o sa intalnesti concepte precum encapsulation, abstractization sau polymorphism.

    Asa ca va trebui sa citesti despre clase / obiecte / instante si diferentele dintre ele, campuri si metode de tip public, private, protected + regulile specifice, clase abstracte, interfete + diferentele dintre ele, mostenire.

    Daca urmaresti un tutorial, fie el video sau nu, incearca sa si faci cateva exemple. Eventual le mai modifici, te mai joci cu ele, gaseste o problema asemanatoare, obiecte din lumea reala pe care sa le modelezi. Pana la urma aste e OOP-ul.

  2. Nu, pentru ca exista si in SQL anumite reguli de care trebuie sa tii cont.

    Poate ai fi tentat sa crezi ca poti rula 2 query-uri de insert ( presupunand ca ai aflat intr-o oarecare masura structura bazei de date ), dar aici te limiteaza functia din PHP.

    mysql_query() sends a unique query (multiple queries are not supported) to the currently active database ...

    PHP: mysql_query - Manual

    Ce ai putea sa faci, cum spunea si dany, e sa extragi informatii, blind, urmarind efectul update-ului ( daca si ai access la el ).

    Ex:


    -- update daca exista un tabel 'users' in baza de date curenta
    update table set da = da + 1 where link = '$link' and (select count(table_name) from information_schema.tables where table_schema = database() and table_name = 'users')

    -- update daca numele bazei de date curente incepe cu litera 'a'
    update table set da = da + 1 where link = '$link' and if((substring(database(), 1, 1) = 'a'), 1, 0)

    -- ...

  3. Sus, e luna

    O zeita fermecata

    Ca nebuna

    Peste ape trece suparata

    Cantecele toamnei parfumate

    Mor de dor

    Leganate usor

    Visuri de iubire

    Spre cer zbor

    ...

    Cititi versurile foarte bine, merita, sunt frumoase ( pacat ca nu am putut sa le pun pe toate ), doar ca nu prea conteaza semnificatia lor, ci conteaza altceva.

    No hints, no PM and no Google please, just for fun :D

  4. Salut,

    Sfatul e bun :D, dar motivele sunt mai multe. Da, praful e un "inamic" al pc-urilor si nu numai, pentru ca in anumite cazuri poate deveni conductor pentru curent intre diferiti pini si nu e ok. Dar mai e un alt efect al prafului si anume ca el incetineste disiparea temperaturii, fie pentru ca astupa radiatoarele/gaurile de ventilatie sau afecteaza motorasul coolere-lor.

    Iar temperatura, e cel mai mare inamic al lor. Problemele tale cu viteza de transfer sigur au problema cu temperatura, doar ca, din cate stiu hdd-ul ar fi mai afectat de ea decat cpu-ul.

  5. - inveti sa gandesti out of the box si sa privesti orice problema din mult mai multe unghiuri/perspective, gandire analitica

    Foarte bine zis, dar asta in special imi aduce aminte de o "ghicitoare" spusa de profesoara de pedagogie in facultate, si vreau sa o las aici daca tot suntem pe subiect :D.

    In antichitate, doi dintre cei mai mari filozofi ai acelor vremuri s-au intalnit pentru a dezbate o problema. Dupa multe zile, chiar saptamani, spiritele au devenit foarte agitate deoarece fiecare avea o alta viziune asupra ei.

    Cel dintai sustinea cu tarie ca ceea ce vede el este o entitate rotunda, un cerc. Al doilea era de alta parere, chiar foarte diferita spunand ca ar fi un patrulater, patrat sau dreptunghi, nici decum ceva rotund.

    Cu toate acestea nici unul dintre ei nu vroia sa cedeze. De ce?... Pentru ca ambii aveau dreptate.

    Raspunsul sa il pastrati pentru voi, altfel nu mai are farmec.

  6. Exista reguli ? Trebuie sa folosim doar un anumit limbaj de programare?

    Nu exista reguli si nici nu ai la ce sa folosesti un limbaj de programare. Trebuie doar sa iti dai seama ce vrea sa-i spuna Greg lui Alex :D ( mesajul fiind criptat, obviously )

    Tip: Citeste post-ul cu id-ul 644836

  7. Din cate am vazut cu amandou faci cam acelasi lucru, aplicatii cu grafica.

    Salut, in ce sens grafica? Cu ambele tehnologii poti crea aplicatii desktop cu ferestre sau la consola, web ( asp.net framework ), gaming/multimedia ( directx, xna ). Deci ai de unde alege.

    Si eu cred ca ai avea mai mari sanse pe C#, iar sintaxa de la C++ te va ajuta. Cea din VB e mai "wordy".

    VB

    Imports System

    Namespace Hello

    Class HelloWorld

    Overloads Shared Sub Main(ByVal args() As String)

    Dim name As String = "VB.NET"

    'See if an argument was passed from the command line

    If args.Length = 1 Then name = args(0)

    Console.WriteLine("Hello, " & name & "!")

    End Sub

    End Class

    End Namespace

    C#

    using System;

    namespace Hello {

    public class HelloWorld {

    public static void Main(string[] args) {

    string name = "C#";

    // See if an argument was passed from the command line

    if (args.Length == 1)

    name = args[0];

    Console.WriteLine("Hello, " + name + "!");

    }

    }

    }

  8. Puteti sa imi spuneti cum se poate asa ceva?

    La modul cel mai general, compresia datelor se imparte in 2 categorii.

    • Lossy
      - spre exemplu, luam o imagine cu o rezolutie de 4000x3000, in total 12m pixeli
      - calitatea este foarte buna, dar in anumite cazuri nu avem nevoie de a calitate asa mare, sau poate ne permitem un compromis pentru a economisi spatiul, timpul sau latimea de banda ( daca trimitem imaginea prin retea ).
      - doar ca si ochiul uman are anumite limite in ceea ce priveste calitatea pe care o poate percepe, deci in unele cazuri putem 'renunta' la anumiti pixeli iar diferentele fie vor fi foarte mici, fie nu vor fi vizibile.
      - modificarile se fac pe baza unor algoritmi, nu oricum, dar ideea de baza e ca se renunta la o parte din date pentru a economisi spatiul ( loos = a pierde )
    • Loossless
      - aici treaba sta putin invers, adica datele se comprima fara a sterge sau pierde din ele, ci doar se reconstruiesc cele redundante pentru a ocupa mai putin ( loose = mai larg, liber, simplu ...)
      - daca la imaginea de mai sus nu era o problema foarte mare daca scadea putin calitatea, exista cazuri in care nici cea mai mica informatie nu trebuie sa fie corupta sau sa se stearga. Nu cred ca ai vrea sa iti lipseasca niste cuvinte dupa ce tocmai ai arhivat un document sau script.

    Uite, spre exemplu o metoda foarte simpla de compresie Loossless numita si Run Length Encoding.

    Datele de intrare:

    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBCCCCCCCCCCCC

    Ideea e sa comprimam cumva datele pentru a ocupa mai putin, dar sa le putem si reface exact cum au fost la inceput. Pentru asta trebuie identificate datele redundante, iar apoi rescrise sub o forma mai simpla.

    In exemplu avem 3 tipuri de caractere, iar fiindca se repeta consecutiv le putem rescrie stocand doar numarul de repetari si caracterul

    33A2B12C

    Daca la inceput am avut 47 caractere, acum avem doar 8 care care totusi contin toate informatiile necesare pentru a le reface la forma initiala. Nu am deschis fisierul dar ceva asemanator ai avut si tu.

  9. Daca chiar e o problema hardware, mai verifica si starea condensatorilor. Oricum, daca in load nu are probleme ( un film hd sau jocuri ), nu stiu. Exact cum ziceai, incearca sa elimini din optiuni pe cat posibil. Verifica temperaturi, o alta placa de schimb sau folosirea celei onboard e un prim pas.

    Apropo de condensatori, daca sunt usor bombati, sau desfacuti / crapati nu e ok. Se gasesc, sunt ieftini, singura problema e ca la unii ai acces mai greu.

    6Z3Hjxq.jpg

    ybLzaHS.jpg

  10. Vin si eu cu o experienta, daca tot vad subiectul deschis.

    Am facut o comanda recent tot aici ( free fast shipping for orders over 60$ ) si la final a trebuit sa platesc cu 9.51 $ in plus, ei fiind trecuti ca Freight Charges. ( si nu, nu am selectat nimic legat de asigurare sau alte checkbox-uri ).

    L-am sunat pe curier si mi-a spus ca sunt taxe ce includ ambalarea, incarcarea ... si tin si de politica firmei ( DHL in cazul meu ) iar preturile pot diferi de la firma la firma, poate unii livreaza si gratis. Sunt mai multe firme de curierat care stau si asteapta container-ele cand ajung de pe vapor, apoi le duc la un sediu central al firmei undeva in europa pentru a le distribui mai departe, iar eu am avut norocul sa nimeresc la ei. Asta mi-a explicat baiatul.

    La free shipping sau economy au venit prin posta, nu am avut probleme.

  11. And here comes the cake :D

    LA MULTI ANI !!!

    (

    (

    ) ) (

    ) (o) )

    ( (o) ) ,|, )

    (o) ,|, |~\ ( (o)

    ,|, |~\ ( \ | (o) ,|,

    \~| \ | (o) |`\ ,|, |~\

    |`\ |`\@@@,|,@@@@\ |@@@\~| \ |

    \ | o@@@\ |@@@\~|@@@@|`\@@@|`\@@@o |`\

    o|`\@@@@@|`\@@@|`\@@@@\ |@@@\ |@@@@@\ |o

    o@@\ |@@@@@\ |@@@\ |@@@@@@@@@@|`\@@@@@|`\@@o

    @@@@|`\@@@@@@@@@@@|`\@@@@@@@@@@\ |@@@@@\ |@@@@

    p@@@@@@@@@@@@@@@@@\ |@@@@@@@@@@|`\@@@@@@@@@@@q

    @@o@@@@@@@@@@@@@@@|`\@@@@@@@@@@@@@@@@@@@@@@o@@

    @:@@@o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@::@

    ::@@::@@o@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@:@@::@

    ::@@::@@@@::oo@@@@oo@@@@@ooo@@@@@o:::@@@::::::

    %::::::@::::::@@@@:::@@@:::::@@@@:::::@@:::::%

    %%::::::::::::@@::::::@:::::::@@::::::::::::%%

    ::%%%::::::::::@::::::::::::::@::::::::::%%%::

    .#::%::%%%%%%:::::::::::::::::::::::::%%%%%::%::#.

    .###::::::%%:::%:%%%%%%%%%%%%%%%%%%%%%:%:::%%:::::###.

    .#####::::::%:::::%%::::::%%%%:::::%%::::%::::::::::#####.

    .######`:::::::::::%:::::::%:::::::::%::::%:::::::::'######.

    .#########``::::::::::::::::::::::::::::::::::::''#########.

    `.#############```::::::::::::::::::::::::'''#############.'

    `.######################################################.'

    ` .###########,._.,,,. #######<_\##################. '

    ` .#######,;: `,/____,__`\_____,_________,_____

    ` .###;;;`. _,;>-,------,,--------,----------'

    ` `,;' ~~~ ,'\######_/'####### . '

    ''~`'''' - .'/; - '

  12. Daca totti a adaugat varianta cea mai scurta si dany cea mai complexa, adaug si eu ceva intre. Adica nu face mare lucru da are si multe linii :)

    Ca informatii, aduna doar numere intregi pozitive de lungime limitata.


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>PHP Challenge</title>
    </head>
    <style type="text/css">#content {text-align: center;}</style>
    <body>
    <div id="content">
    <?php if (allowed()) : ?>
    <form action="challenge.php" method="post">
    <label for="a">A: </label>
    <input type="text" name="a" value="" /><br /> + <br />
    <label for="b">B: </label>
    <input type="text" name="b" value="" /><br /><br />
    <input type="submit" value="Calculeaza" />
    </form>
    <h4><?php echo validate(); ?></h4>
    <?php else : ?>
    <img src="http://i.imgur.com/ql2uzA1.png"/>
    <?php endif; ?>
    </div>
    </body>
    </html>

    <?php

    function translate( $number ) {

    $units = array('zero', 'unu', 'doi', 'trei', 'patru', 'cinci', 'sase', 'sapte', 'opt', 'noua', 'zece', 'unsprezece', 'doisprezece', 'treisprezece', 'paisprezece', 'cincisprezece', 'saisprezece', 'saptesprezece', 'optsprezece', 'nouasprezece');
    $tens = array(2 => 'douazeci', 3 => 'treizeci', 4 => 'patruzeci', 5 => 'cincizeci', 6 => 'saizeci', 7 => 'saptezeci', 8 => 'optzeci', 9 => 'nouazeci');

    if ($number < 20) {
    return $units[$number];
    }

    if ($number < 100) {
    $quotient = floor($number / 10);
    $remainder = $number % 10;

    return $tens[$quotient] . ($remainder ? " si $units[$remainder]" : "");
    }

    if ($number < 1000) {
    $quotient = floor($number / 100);
    $remainder = $number % 100;

    return ($quotient == 1 ? " o suta " : ($quotient == 2 ? " doua sute " : "$units[$quotient] sute ")) . ($remainder ? translate($remainder) : "");
    }

    if ($number < 1000000) {
    $quotient = floor($number / 1000);
    $remainder = $number % 1000;

    return ($quotient == 1 ? " o mie " : ($quotient == 2 ? " doua mii " : translate($quotient) . ($number >= 20000 ? " de " : "") . " mii ")) . ($remainder ? translate($remainder) : "");
    }

    if ($number < 1000000000) {
    $quotient = floor($number / 1000000);
    $remainder = $number % 1000000;

    return ($quotient == 1 ? " un milion " : ($quotient == 2 ? " doua milioane " : translate($quotient) . ($number >= 20000000 ? " de " : "") . " milioane ")) . ($remainder ? translate($remainder) : "");
    }

    if ($number < 1000000000000) {
    $quotient = floor($number / 1000000000);
    $remainder = $number % 1000000000;

    return ($quotient == 1 ? " un miliard " : ($quotient == 2 ? " doua miliarde " : translate($quotient) . ($number >= 20000000000 ? " de " : "") . " miliarde ")) . ($remainder ? translate($remainder) : "");
    }

    return "Come on ... give me a break";
    }

    function validate() {
    if (isset($_POST['a']) && isset($_POST['b'])) {
    $a = trim($_POST['a']);
    $b = trim($_POST['b']);

    if ($a != '' && $b != '') {
    if ( ! ctype_digit($a) || ! ctype_digit($) {
    setcookie('forbidden', TRUE, time() + (60 * 60));
    header("Location: {$_SERVER['REQUEST_URI']}");
    } else {
    return "$a + $b = " . ($a + $ . " ( " . translate($a + $ . " )";
    }
    }
    }
    }

    function allowed() {
    return isset($_COOKIE['forbidden']) ? FALSE : TRUE;
    }

    • Upvote 1
×
×
  • Create New...