webdesign / development + awesome
archivovaný archívny archív
Nový kurz WordPress pre programátora
V kurze Webrebel som spomenul, že vývoj (pompézne slovo pre "robenie") webových aplikácií (pompézne slovo pre "stránky") sa delí na front-end a back-end. Webrebel je o front-ende. Čiže vieme spraviť to, čo používateľ vidí, na čo kliká, čo používa. Ale ak nám ten poskytne nejaké údaje, nevieme ich spracovať.
Na to treba back-end. To, čo beží na serveri. Čo presne to znamená? Ja vám poviem, čo presne to znamená. A čo sa s tým robí. A ako sa to robí. A prečo sa to robí.
V novom kurze Webrebel PHP - Mysql - Laravel ;)
Kto pozná HTML a CSS, vie spraviť tzv. statické stránky. HTML kód sa vezme taký, aký je, a vyprdne sa na obrazovku. Kto pozná back-endové jazyky (PHP, Ruby, Python, ...) vie robiť tzv. dynamické stránky. Kde človek príde na adresu stránky a server zoberie alebo vygeneruje kúsky HTMLka a poskladá ich do výslednej stránky.
Jednak nám to umožní nejakú tú automatizáciu (napr. môžem vyrobiť jeden header a footer a nechať ho vložiť do každej podstránky) a jednak počas skladania stránky do nej môžem nahádzať veci vytiahnuté z databázy - články, produkty, whatever. A môžem mať používateľov. A registrácie a prihlasovanie a napojenia na facebooky a kade tade a odosielanie emailov a spracúvanie údajov z formulára, ...
Všetko toto a kopu ďalšieho sa naučíte v tomto novom kurze. Budú sa "dynamizovať" stránky a vytvárať rôzne mini aplikácie a možno aj nejaké tie maxi aplikácie a todo listy a blogy a fóra a skutočnejšie firemné stránky a API rozhrania a všetko možné. Úplne že naozajstné stránky, také že naozajstné, so všetkým!
Budeme sa učiť PHP a MySQL a Laravel.
A ľudia sa budú pýtať, že prečo tieto veci a prečo nie iné veci.
Pre nich som spravil videá.
:: Webrebel PHP: Čo sú backend jazyky a prečo PHP?
:: Webrebel PHP: Čo sú frameworky a prečo Laravel?
Teraz si môžete hovoriť, že o tom rozprávam akosi vágne. A nekonkrétne. Pretože, PRETOŽE! A tu príde tá zaujímavá časť - kurz ešte nie je dokončený:) (edit: už je, viď dole) A napriek tomu si ho môžete kúpiť! A učiť sa PHP! Už dnes! Pretože už existujú videá! Zopár.
Rozhodol som sa ho spraviť v Early Access štýle. To je to, kde si na Steame môžete kúpiť hru, kým ešte nie je dokončená a sledovať celý progres až do finišu. Prípadne ho ovplyvňovať. Ide to o to, že si seriál môžete kúpiť hneď, aj keď esťe nie je hotový a pozerať nové videá okamžite, ako ich dokončím. Budete to dostávať postupne. Namiesto čakania na hotový produkt.
Tieto veci trvajú. Niekoľko mesiacov. A v poho môžete počkať, nebudem nikoho nútiť, aby išiel do nedokončeného seriálu. V pohode môžete počkať a keď bude všetko hotové, naraz kúpiť balík desiatok a desiatok (a ďalších desiatok?) videí. Kto sa však chce učiť hneď, má tú možnosť. Byť pri tom od začiatku. Zapájať sa do diskusie, dávať návrhy a pripomienky a sťažnosti a tým pádom korigovať vývoj seriálu.
Kurz bude koncipovaný tak, aby z neho všetci niečo mali. Podobne ako Webrebel. Čiže prejdeme aj cez úplné základy všetkého a budú tam aj videa s absolútnymi základmi programovania. Tak začneme a postupne prejdeme k pokročilým veciam. Je to však kurz primárne určený začiatočníkom. Možno s výnimkou Laravel časti, ktorá predpokladám, že bude na konci zakúpiteľná samostatne.
Bude sa robiť množstvo stránok. Budú sa robiť v čistom PHP, pridá sa k tomu MySQL, budeme sa venovať aj MySQL samostatne, neskôr sa budú robiť v Laraveli. Nie je to iba Laravel kurz. Je to kurz o troch technológiách (PHP, MySQL, Laravel) podobne ako Webrebel bol o troch technológiách (HTML, CSS, JavaScript). Je to kurz pre začiatočníkov a teda nebudeme hneď skákať do frameworkov.
Kurz bude v podobnom rozsahu ako Webrebel, ktorý má cez 120 videotutoriálov, okolo 22 hodín videa a množstvo kontrolovaných domácich úloh (edit 28.6.2015: ok, momentálne je tam cez 50 videí a som možno v štvrtine, takže rozsah bude určite väčší, ako v prvom kurze).
A kto si ho zakúpi v "Skorom štarte", čiže teraz, bude prakticky na úrovni Revolucionárov. Kupujete si to isté, čo mali Revolucionári a tí to mali za 199. Toto stojí 129. Uvidíme, ako sa cena zmení za konci, ale kým kurz nie je dokončený, máte to za zľavnených 129€.
Edit: cena 129 platí do konca mája, potom do konca júna 149, po dokončení bude kurz stáť 199eur. Takže kto má záujem, ponáhľajte:) Samostatný Laravel sa zatiaľ objednať nedá. To potom, keď budú hotové všetky videá.
Edit (2. júl): zmena, odsunul sa dátum "Ostrého štartu" PHP kurzu na 31. augusta. Takže máte zľavnenú cenu o mesiac dlhšie, wheeee! Prečo? Pretože nestíham. Prečo nestíham? Pretože kurz sa rozrastá - bude toho viac, ako som zamýšľal. Každá časť (PHP + MySQL, OOP + Laravel) bude takmer v rozsahu prvého Webrebela, bude toho kopa. Takže odsúvame dátum finišu na neskôr a tiež sa zvyšuje finálna cena. Čo vám ale nemusí vadiť, pretože vy ste šikovní a kupujete kurz teraz, kým je vo vývoji a v akciovej cene:) Samozrejme kto si kurz už kúpil, toho sa zmeny cien netýkajú.
To je myslím pre začiatok dosť infa:) Kurz už beží. Momentálne, ako píšem tento článok, existuje 8 videí (nižšie v článku je neustále rastúci zoznam videí, ktorých je výrazne viac, než 8). A okamžite ako dokončím nové, pribudne tam. A takto sa budú zbierať. Jedno za druhým. Až k finišu. Takže kto pri tom chce byť od začiatku, nech sa páči:) Kto sa chce učiť už dnes, nech sa páči. Registrácie sú otvorené, kurz beží, ideme do toho! Poď aj ty:)
edit: Pôvodne som v článku napísal, že Webrebel má 8 hodín videa. Neviem, odkiaľ som vyhrabal to číslo, možno HTML časť má toľko, Webrebel má dokopy okolo 22 hodín videa a k podobnému číslu chceme smerovať aj v novom kurze.
edit 2: aktuálny (stále rastúci) zoznam epizód ( 4. august 2015 )
edit 3 (4. august 2015): týmto dňom považujem výrobu PHP + MySQL časti za ukončenú. Pôvodne som písal, že PHP + MySQL + Laravel bude trvať okolo 20 hodín. Toľko trvá iba samotné PHP + MySQL. Kurz sa teda rozdeľuje na 2 kurzy, druhý sa bude venovať OOP a frameworku Laravel, bude podobného rozsahu. Kto si kurz kúpi teraz v Skorom štarte, dostane oba (PHP + MySQL aj OOP + Laravel). Neskôr bude možné zakúpiť každú časť samostatne.
Keďže PHP + MySQL časť ja ukončená, pridal som ďalší článok, Webrebel 2 - OOP a Laravel, kde budem zdieľať info o tom, ako postupuje tvorba OOP + Laravel časti. Vrátane rastúceho zoznamu epizód.
---
Btw, prvý Webrebel stále existuje a funguje, tie videá sa dajú stále zakúpiť a zostanú vám naveky, takže môžete pozerať koľko chcete, kedy chcete, ako chcete, neexistuje žiaden "termín ukončenia", každý ukončí kurz kedy chce. Rovnako to bude pri tomto novom. Pointa je, že kto nemá zmáknuté HTML a CSS alebo Javascript, môže sa kedykoľvek doučiť;)
Webrebel žije!
Registrácie do kurzu Webrebel sú znova otvorené. A pravdepodobne naveky. Čiže si to môžete kúpiť kedy chcete, iba ten support je časovo obmedzený do leta. To bol hlavný dôvod, prečo mal kurz v prvom kole obmedzené registrácie a štartovací dátum - aby sme obišli situáciu, že niekto si kurz kúpi o 3 roky a bude chcieť 3 mesačný support. To by som potom poskytoval podporu do konca života a nezostal by mi čas na iné veci.
Ako napríklad na nový kurz.
Začal som s frontendom, chce to nejaký backend. Po konzultácii s facebookom a twitterom voľba padla na PHP a Laravel framework. PHP nie je v posledných rokoch zrovna sexy jazyk, ale absolútna väčšina jobov u nás chce práve PHP programátorov. Entry-level joby sú PHP, preto je to stále solídna voľba pre začiatočníka. A na to netreba zabudnúť - toto bude seriál pre začiatočníkov. PHP možno "nie je budúcnosť", ale ak má ten kurz byť reálne užitočný, zvoliť najpoužívanejšiu technológiu neznie ako blbý nápad.
Ruby už má pokryté learn2code, s ostatnými klasikami nemám veľké skúsenosti a Node.js, React/Flux, Meteor sú zaujímavé skôr pre skúsených programátorov. Nechcem začiatočníkom modzgy mútiť všetkými tými javascriptovými divočinami a navyše pri nových technológiách si treba dať pozor. Taký Angular bol nedávno druhý príchod Krista, dnes sa naň už nadáva. Nechcem dať mesiace života do niečoho, čo na konci už možno bude out:) Takže bude to pre začiatočníkov a bude to overená technológia, ktorá ešte pár rokov nikam neodíde.
Ešte nemáme stanovený žiadny dátum, ale niekedy tento rok. Medzičasom sa môžete nahlásiť do Webrebela, prípadne ho podarujte známym, bude celý veselý z toho:) A tu je môj článok O úspechu. Rozoberám v ňom, či považujem rebela za úspech a čo vlastne to slovo pre mňa znamená. Tam budem dávať také osobnejšie veci, brm zostane na tech stuff.
24. 3. tiež začína ďalší learn2code Webdesigner kurz so mnou ako inštruktorom. To je ten, kde učím naživo, v triede s ľuďmi. Tak sa prihláste, kým je čas! Hlavne, ak ste ženy, pretože come on, hádam nenecháte mužov vyhrať:)
V krátkosti - začal som točiť nové videotutoriály. Chcem prejsť cez základy (HTML, CSS, PHP, MySQL) k ďaľším technológiám, možno jazykom, postupom. Chcem spraviť seriál pre PHP framework Laravel, chcem dokončiť WordPress. Niektoré seriály chcem vydať, až keď budú hotové celé. Čas od času možno vydám video samostatne.
Chcem, aby vychádzali na novej stránke. Začal som na nej pracovať. Neviem, kedy bude hotová. Snáď čoskoro. Neviem, v akom poradí, v akej forme a ako často budú videá a seriály vychádzať. Treba tomu dať čas, treba sa zamyslieť, treba skúsiť, všetko sa uvidí. Niektoré seriály budú možno platené.
Teší ma úspech predošlých seriálov a som veľmi rád, že napriek dlhej odmlke sa stále nájdu ľudia, ktorí chcú viac. Ja tiež chcem. Baví ma to. Zároveň však dúfam, že neutečiete, ak si občas vypýtam nejaký peniaz:) Nie za všetky videá. Za niektoré. Spraviť niečo a spraviť to dobre, stojí naozaj veľa času. A toho voľného moc nazvyš nie je. Snáď sa dohodneme:) Sľubujem, že spravím všetko pre to, aby sa to prípadným platiteľom oplatilo.
Ďakujem za čakanie.
A ďakujem za pozornosť.
Keď budú novinky, podelím sa o ne. Tu alebo na twitteri. Aj keď teda tam budete musieť znášať kopu tutoriálov-sa-netýkajúcich žvástov, takže je to vás:)
Držte palce, nech to ide rýchlo.
3 malé tipy, s ktorými si ušetríte pár riadkov kódu a budete takí ťažkí frajeri, že sa už nezbavíte ženských (chlapov, v prípade, že to číta nejaká programátorka (do they even exist?:)).
Predstavte si, že vaša životná púť dospeje do situácie, kedy chcete niečo zapísať do MySQL tabuľky, ale nechcete sa zapodievať kontrolami, či daný záznam už existuje. Čo s tým..
1) Chcem vložiť riadok do tabuľky. Ak už existuje, nič sa nebude zapisovať.
INSERT IGNORE INTO vajcia (id, nazov, kaliber) VALUES(NULL, 'Vajčisko', 'masívny')
Úplne normálny INSERT
s tým rozdielom, že keď ak by sa bili primárne kľúče alebo unikátne kľúče (čiže záznam už existuje), query sa odignoruje. Vloženie sa odignoruje alebo riadok sa uloží neočakávaným spôsobom aj ak bude obsahovať iné chyby, na čo si treba dávať pozor.
2) Chcem vložiť riadok do tabuľky. Ak už existuje, chcem update-núť jeho údaje
INSERT INTO checkins (id, id_user, id_venue, count, last_checkin) VALUES (NULL, 230, 6434, 1, NOW()) ON DUPLICATE KEY UPDATE count = count + 1, last_checkin = NOW()
Príklad ukazuje niečo ako "check in" na 4square. Pri prvom raze sa vloží záznam, že som na nejakom mieste vôbec bol, pri ostatných razoch sa zvýši počítadlo návštev a čas posledného check-in-u sa aktualizuje. Je to v podstate INSERT
a UPDATE
spojený do jednej query.
3) To isté čo druhý prípad, s malým rozdielom
Ak by som vkladal nejaký dlhý text, musel by som ho v predchádzajúcom spôsobe zopakovať 2x (raz v INSERTE
a raz v UPDATE
časti). Pri extrémne dlhých textoch by nám to teoreticky mohlo vadiť. Situáciu zachráni REPLACE
.
REPLACE INTO poznamka (id, id_projekt, datum, text) VALUES (NULL, 42, '2012-12-12', 'Všetko som vybavil, môžme spustiť tú apokalypsu... [1MB dalsich kecov]')
Je tu však jedna zradafeature. Ak záznam existuje, vymaže sa a vloží sa nový, čiže sa zmení aj primárny kľúč (ak je AUTO_INCREMENT
ovací).
Bonus
Prvý prípad s INSERT IGNORE
sa dá riešiť trocha lepším, ale divnejším spôsobom, použitím ON DUPLICATE KEY UPDATE
, takto:
INSERT INTO vajcia (id, nazov, kaliber) VALUES(NULL, 'Vajčisko', 'masívny') ON DUPLICATE KEY UPDATE id = id
Výhoda je, že sa neignorujú žiadne chyby, iba duplicitné kľúče. Nevýhodou je trocha mätúca syntax.
Teraz si už len treba dávať pozor na tie ženské.
Tento návod som sa rozhodol napísať, keďže už dosť ľudí po mne chcelo, nech im vysvetlím ako sa dajú tvoriť vlastné web stránky, ako to všetko okolo nich funguje a kde sa to naučiť. Samozrejme, že si môžu nakúpiť knihy, ale tie bývajú spravidla tak rozťahané, že ich veľa ľudí ani nedočíta. Plus zaťažujú množstvom detailov, ktoré na začiatku iba mýlia a zdržujú.
Preto píšem tento návod čo najstručnejšie, aby slúžil ako alternatíva k prehnane ukecaným knihám a aby ste namiesto zbytočného čítania mohli radšej kódiť. :p
Najskôr zbežný prehľad o tom, čo všetko sa deje, keď si v prehliadači otvoríte nejakú stránku. To aby ste vedeli kde sa vlastne používajú všetky tie technológie ako je HTML, CSS, PHP, SQL, JavaScript, jQuery, AJAX a iné.
1) Zadáte URL adresu - to je celý ten text, čo vidíte hore v address bare prehliadača.
2) Na základe názvu stránky (t.j. domény) sa zistí IP adresa servera, na ktorom sa nachádza hľadaná stránka. (Na toto slúži DNS server, ktorého adresu poznáme)
Jedným z dosť užitočných MySQL príkazov, ktorý nie je až taký známy, ako by sa na užitočnosť takého kalibru patrilo :), je GROUP_CONCAT. Používa sa ako agregujúca funkcia (s GROUP BY), podobne ako napríklad funkcia AVG, akurát že nerobí priemer zo všetkých prvkov stĺpca, ale ich pospája za sebou do jedného stringu.
Ako to funguje a načo je to dobré?