Jump to content
php.lv forumi

bubu

Administratori
  • Posts

    8,897
  • Joined

  • Last visited

Everything posted by bubu

  1. bubu

    NUL Character

    1) ar notepad nezināšu kā to pārvērst, bet ar php (vai jebkuru citu programmēšanas valodu) ir vienkārši: <?php file_put_contents("fails_out.txt", str_replace("\ 0", "?", file_get_contents("fails_in.txt"))); ?> Starp \ un 0 izdzēst atstarpi (forums neļauj tos kopā iepostēt). 2) UTF-8 ir mutli-byte kodējums. Tas simbolu attēlo sākot ar 1 baitu, beidzot pat ar 4 baitiem. Skat šeit: http://en.wikipedia.org/wiki/UTF-8
  2. Jā: X(n+1) = X(n)+1. Tik tas nebūs bezgalīgi ilgi (skat nākamo rindiņu). Tas būs tikai bez atkārtojuma. Tikai kautkādā ciklā, kā Grey_Wolf saka - mūžīgā ciklā. Datus tas nevar izdot ārā bezgalīgi, jo atmiņas daudzums ir limitēts.
  3. Tāpēc jau datora "randomu" sauc par pseido-randomu. Īstu randomu datorā dabūt tikai no piesprausta ārējas iekārtas, kas, piemēram, ķer radio-viļņus un pārveido tās digitālā formātā. Viss pārējais ir izrēķināts randoms. Vienkāršs un tipisks datora randoms ir linear congruential (netulkošu latviski) ģenerators. Tas sastāv no seeda (globāla stāvokļa) un formulas. Piemēram. X(n+1) = (1664525*X(n) + 1013904223) mod 2^32. Var redzēt, ka par seedu kalpo pats outputs. Izvēloties vienu konkrētu sākuma seedu visi randomi kritīs fiksētā secībā. Piemēram, ja X0 = 0, tad: 1013904223, 1196435762, 3519870697, 2868466484, 1649599747, 2670642822, 1476291629, 2748932008, 2180890343, 2498801434. Šie skaitļi izskatās pietiekoši randomiski. Šī linear congruential ģeneratora periods ir ar kārtu 2^32. Tas nozīmē, ka paies tikai pēc ~2^32 izkritušajiem skaitļiem tie sāks atkārtoties. Acīmredzami, ja X(i) = X(j), tad X(i+1) = X(j+1). Daudz labāks randoma ģenerators ir Mersenne twister. Tā periods ir 2^19937 - 1 (šausmīgi gigantisks skaitlis - daudz daudz lielāks pat par visuma vecumu gados). Un tas ir arī ļoti ātrs.
  4. Skatos, ka esi palicis par lielu offtopic-māsteri :) Domā es to pašu nevaru pateikt par Tevi? - Ne Tu mani radīji, ne tu mani mācīsi. Vienmēr vajadzīgs te Tavu morāli ielikt? Neredzu nekādu morāli. Es tikai izteicu savas domas. Morāle būtu, ja teiktu ka šitā ir slikti un vajag darīt savādāk un tml garā. Jā, un "tur arī" pilnīgi nekas par izglītību nebija teikts.
  5. Nu ja jau var iemācīties, ko nemācies? Pilns internets ar informāciju, sākot jau ar wikipēdiju. Skaitīšanas sistēmā B skaitlis N izsakās sekojošā formā: N = x0 * B^0 + x1 * B^1 + x2 * B^2 + ... xI * B^I, kur x0, x1, x2, ..., xI ir skaitļa N cipari B skaitīšanas sistēmā. No šejienes attiecīgi var dabūt pārvēršanas formulas uz skaitīšanas sistēmu B: x0 = N % B x1 = (N - x0 * B^0) % B^2 x2 = (N - x1 * B^1 - x0 * B^0) % B^3 ... xI = (N - ... - x2 * B^2 - x1 * B^1 - x0 * B^0) % B^I Savukārt, ja ir doti skaiļa N cipari B-nieku skaitīšanas sistemā: x0,x1,x2,...,xI, tad tos pārvērst uz skaitli N var ar jau augstāk minēto formulu: N = x0 * B^0 + x1 * B^1 + x2 * B^2 + ... xI * B^I. Praktiskā nozīme ir jebkur. Tava datora procesors viszemākajā līmenī māk skaitīt tikai bināri. Tāpēc, ja gribēsi programmēt zemā līmenī, tad agrāk vai vēlāk nāksies saprast un lietot bitwise operācijas. Ar bitwise operācijām var izpildīt jebkuru "augsta" līmeņa operāciju - saskaitīšanu, atņemšanu, ... Vēl tipisks piemērs bitu-flagi. Ja ir kautkādas īpašības, kuras ir neatkarīgas viena no otras, tad tās var neglabāt 10 atsevišķos boolean mainīgajos, bet gan vienā 10-bitīgā skaitlī, kurā katrs bits nozīmē attiecīgo īpašību (1-ir, 0-nav). Attiecīgi OR jālieto, lai uzstādītu flagu, AND - lai noņemtu, XOR - lai pamainītu uz pretējo, NOT un shifti - lai izveidotu vajadzīgās maskas bitu uzstādīšanai/noņemšanai. Lai gan PHP no tā nebūs īsti nekādas jēgas, jo tur tāpat viss izpildās relatīvi lēni, taču zema līmeņa programmēšanas valodās atkarībā no situācijas tas var izrādīties ievērojami ātrāk.
  6. bubu

    CSS format tables

    imho nevar. Ņem pamodificē to savu sorttable.js, lai to rindu stils uzstādās no javaskripta.
  7. Tur jau nekā sarežģīta nav. 21 uzraksti binārā formā: 10101 21 << 14 nozīmē pabīdīt skaitli par 14 bitiem pa kreisi, tb labajā pusē pierakstīt 14 nulles: 10101 << 14 = 1010100000000000000 Pārvērt skaitli atpakaļ uz decimālo sistēmu, dabūsi atbildi: 344064 Vēl viens triks ar bitwise shift operācijām ir, ka tās reāli nozīmē reizināšanu/dalīšanu ar divnieka pakāpi. Vispārīgajā gadījumā x<<y = x * 2^y un x>>y = x / 2^y (kur ar ^ apzīmēju kāpināšanas operāciju). Tad 21<<14 = 21 * 2^14 = 21 * 16384 = 344064 A visas pārējās bitwise operācijas ir diezgan elementāras: | - or - bitus rēķina katru ar katru, rezultāta bits ir 0 tad un tikai tad, ja abi inputa biti ir 0 & - and - bitus rēķina katru ar katru, rezultāta bits ir 1 tad un tikai tad, ja abi inputa biti ir 1 ^ - xor - bitus rēķina katru ar katru, rezultāta bits ir 0 tad un tikai tad, ja abi inputa biti ir vienādi ~ - not - rezultāta biti ir vienkārši samainīti uz otru bitu (tb 1->0 un 0->1) Galvenais ir pārvērst skaitļus binārā formātā (vai arī hex, jo ar to ar var diezgan viegli operēt), un viss pārējais ir nieks. Wikipēdijai nav ne vainas, tur nemaz neskatījies? http://en.wikipedia.org/wiki/Bitwise_operation <offtopic>Te nu redzam vienu piemēru pie kā noved tava attieksme pret IT izglītību universitātē.<offtopic>
  8. Ierakstot gūglē tekstu "embed xhtml" jau pirmajos divos links ir tava atbilde: Paskati arī citus linkus tur.
  9. bubu

    Latin Square

    Tak es jau augstāk teicu - funkcijai atgriezt boolean true, kad viss ir ok, ir normāli. Īpaši jau tādai funkcijai, kuras vārds saucās Is... Ērtāk apstrādes ziņā. Ja tev funkcija var nobrukt n-tos dažādos veidos, katrā veidā atgriežot citu kļūdas informāciju, tad nav ērti izmantot n-tos globālos mainīgos/parametrus pēc referencesvai vēl citas dīvainības: try { do_something_very_dangerous($argA, $argB); } catch (InvalidArgumentException $e) { echo "Invalid argument passed ", $e->argument_number; } catch (FileSaveException $e) { echp "Failed to save data to file ", $e->filename, " reason: ", $e->reason; } catch (Exception $e) { echo "Something is really strange... ", $e; } Atliek tikai izmest attiecīgo exceptionu pie kļūdainā nosacījuma iekš funkcijas un visa vadība nonāks tur kur tai jānonāk. C++'ā (un citās dažās valodās) papildus tam tiks korekti rewindots steks iznīcinot uzkonstruētos objektus stekā. Ar error kodiem ir riebīgi vēl tas, ka tie ir jāvelk līdzi no izsauktajām citām funkcijām, ja tās arī var atgriezt kļūdas stāvokli.
  10. bubu

    Latin Square

    Nūū.. ja tā parsēšana ir kā standalone programma, tad jā. Bet ja tā ir kā funkcija, tad labāk ir throwot exceptionu. Errorkodi ir viena ķēpīga padarīšana.
  11. bubu

    Latin Square

    Ko nozīmē laba pieeja? Tā nav pieeja, tā tas vienmēr ir bijis :) Imho tāpēc, ka 0 ir viena vienīga, visi pārējie skaitļi ir kautkas cits. Un kļūda vai nu nav, vai arī ir kautkāda specifiska. Tāpēc 0 tika izvēlēta par ok stāvokļa paziņošanu. Web projektos īsti ar neredzu, kur to iebāzt, ja nu vienīgi kādu komandrindas tūļu darbībā un palaišanā.
  12. bubu

    Latin Square

    Tas nav tikai C++. Tā ir visur windowsā/DOSā/Linuxī neatkarīgi no valodas. Runa jau nav par funkcijas atgriezto bool tipa vērtību (true - viss ok, false - nav ok). Runa ir par programmas atgriezto error code, vai arī kā Delfins saka - WinAPI error kodu (vai citu API, piemēram OpenGL).
  13. bubu

    Latin Square

    Parasti pieņemts no programmas atgriezt 0, ja viss notikās korekti. Vai arī jebkuru citu vērtību (visbiežāk 1), ja kautkas notikās slikti.
  14. bubu

    Latin Square

    Kādu vēl hašu jāizmanto?
  15. Grey_Wolf: AS keywords MySQLā ir opcionāls. Bez tā var mierīgi iztikt.
  16. Pēc autora vēlmēm turpmākais spams tiek diseiblots. Darbinieki esot jau dabūti.
  17. Labojums: bet ne visu programmētāju darbu ne visi prot novērtēt un novērtēt kā darbu...
  18. Varbūt neliels offtopiks - bet ārprātīga lapa. Gan krāsu ziņā, gan fonta lieluma ziņa, gan logo izmēra ziņā. Pats lapas galvenais teksts sākas tikai zem lapas vidusdaļas (uz 1280x1024 monitora). Un tavs teksts par to, ka portāls ir "Latviešiem LV un pasaulē"... Man palasot "portāla" tekstu tā nešķiet vis.
  19. Robi, tak viduvējo interneta lietotāju pokemonu vai "40-gadīgu" mājsaimnieci, kas viedo lielāko daļu interneta lietotāju, galīgi nu ne tikai neinteresē urļa izskats, bet arī nav ne jausmas, ko nozīmē vārds urlis. Es bez šaubām piekrītu, ka urlis garumā 400 simbolu pa vairākām rindām ir dikti nelaba doma, taču GET mainīgos redzēt vai neredzēt - uz to viņi neskatās. Uz to skatās tikai IT geeki un oldskūlīgi neta lietotāji, kuri domā, ka viss internets sastāv no statiskām HTML lapām (kirils).
  20. Kautkāds kraps. Javascript popupi.. phe. Iesaku palasīt šo: http://www.google.com/search?q=seo Jā, un cross-forum postings nerullē.
  21. Ja tev ir divas konekcijas uz diviem dažādiem serveriem. Tad ar šo konektu tu norādītu uz kura servera izpildīt kuru kveriju.
  22. CVS ir Concurrent Version System - versiju kontroles sistēma. Diezgan novecojusi. Tā vietā iesaku lietot kautvai SVN.
×
×
  • Create New...