Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Webdeveloping cz.0

Spędziwszy kilka ostatnich dni, a może nawet tygodni głównie na forum dp (zamiast kończyć wpis o OSSTMM. Obiecuję, że dokończę) doszedłem do wniosku, że zapaleńców próbujących tworzyć strony internetowe są setki. Niestety - generalna większość pisząca na forum dp.pl ma braki w podstawach. Rzuciła się na głęboką wodę, dzięki googlowi wyszukawszy interesujących ich skrypt. Bez zrozumienia wrzuciła na swoją stronę i wsadziła do internetu. Internet jak papier, zniesie wszystko. Problemy pojawiają się, gdy cokolwiek, podkreślam - cokolwiek - trzeba zmienić w skrypcie. Wówczas okazuje się, że taki skrypt robi wielką magię i nic nie jest jasne. Odpowiadanie na proste problemy jest fajne, ale to jak dawanie ryby, zamiast wędki. Teraz chciałbym dać wędkę.

W kolejnych częściach popiszę trochę o pisaniu stron internetowych na poziomie przyzwoitym, domowym. Nie będą to aplikację na wielką skalę, za to wystarczające dla przeciętnego homepage`a i z całą pewnością - zrozumiałe. Będzie więc o PHP (a w nos się ugryźcie wszyscy, którzy się właśnie skrzywili. Znajdźcie teraz tani i przyzwoity hosting z IIS i do tego osobę, która ogarnie dla potrzeb domowych .NET), JavaScript (pod postacią jQuery) oraz CSS. Wszystko przede wszystkim proste (zgodnie z zasadą KISS).

Zanim jednak zacznie się mięso - podstawy. Arcypodstawy. Podstawy podstaw. Bez wiedzy na ten temat raczej nie warto się brać za robienie stron internetowych (o aplikacjach oczywiście nie wspominam). Jednak, jak uczy moje kilkutygodniowe doświadczenie, dla niektórych webdeveloperów - amatorów, może to być nowość.

Środowisko

Pierwsza zasada - zawsze utrzymuj przynajmniej dwie wersje kodu, a wersję na produkcji wersjonuj. Oznacza to także, że nigdy nie należy edytować kodu na produkcji. Warto jest więc posiadać środowisko preprodukcyjne / deweloperskie, odseparowane logicznie, a najlepiej także fizycznie.

Dlatego na komputerze każdego dewelopera powinien się znajdować serwer WWW odpowiadający (w stopniu przynajmniej podstawowym) temu, znajdującemu się na serwerze produkcji. Najpewniej będzie to jakiś apache, z jakimś PHP i jakąś bazą danych. Warto zadbać, żeby wersje się zgadzały (zwłaszcza PHPa).

VHost

Tutaj warto nadmienić prostą sprawę. Wszystkie znane mi serwery WWW zapewniają wsparcie dla VHostów. Te ostatnie służą temu, żeby na jednym serwerze WWW możliwa była konfiguracja więcej niż jednej aplikacji WWW korzystającej z tego samego lub innego portu (o portach za chwile). O samej konfiguracji vhostów pisał już dość dawno temu slepciu, dodam tylko, że nagłówek host wspaniale sprawdza się przy decydowaniu o sposobie uruchomienia aplikacji (tzn, na przykład wywołując aplikację przez adres http://aplikacja.local odpalamy wersję deweloperską itd.). Zwracam uwagę, że vhost może być dowolnym ciągiem znaków i nie musi wskazywać istniejącego hosta, gdyż istnieje plik...

Hosts

Hosty są interpretowane przed odpytaniem serwerów DNS w poszukiwaniu nazw domen. W tej chwili nie mogę sobie wyszukać odpowiedniego artykułu na dp.pl (choć prawie jestem pewny, że taki był), więc w krótkich słowach. Hosts to plik testowy, który w systemach linux znajduje się w /etc/, w systemach windows c:\windows\system32\drivers\etc\. Jego konstrukcja jest prosta jak budowa drabiny. Linie zaczynające się od # są ignorowane, pozostałe interpretowane. Poprawna konstrukcja jest następująca:

127.0.0.1 nazwa_domeny druga.nazwa trzecia.nazwa.pl

Widać więc, że zaczyna się od adresu IP, a następnie podawane są domeny, które powinny kierować pod adres. Domeny rozdzielane są spacją. Cała filozofia.

Porty Apache`a i bazy danych

Apache`a domyślnie używa dwóch portów - 80 (dla połączeń http) oraz 443 (dla ssl). Można oczywiście zmienić te porty. Wystarczy wyszukać dyrektywę Listen, która określa interfejsy oraz właśnie port, na którym serwis ma nasłuchiwać. Zwracam uwagę, że jeśli już jakaś aplikacja zbindowała sobie port, to apache się nie uruchomi (netstat powie nam, jaka aplikacja nasłuchuje na portach).

Bazy danych nasłuchują na różnych portach:

  • MySQL - 3306
  • PostgreSQL- 5432
  • MSSQL - 1433

Portów tych lepiej nie zmieniać. Ale jeśli serwer www łączy się z bazą danych istniejąca na innym hoście, trzeba zadbać, by port ten był otwarty.

SVN

Lub jakikolwiek inny system kontroli wersji (popularny obecnie jest git). Pomaga on zapanować nad kryzysową sytuacją, gdy "coś się nadpisało". Również w krótkich słowach. W nomenklaturze SVN mówi się o trunku (wersja aplikacji, którą się aktualnie rozwija) oraz branchach (gałęzie kodu, które powstały na przykład na specjalne zamówienie. Kod ten będzie rozwijany niezależnie od wersji trunk), commitach (czyli aktualizacji kodu w trunku [lub innej gałęzi svn] po wprowadzeniu zmian na wersji lokalnej), merge`ach (czyli "synchronizacji" zmian między trunkiem a branchem [lub innej gałęzi]) i up`ach (czyli na przykład podnoszenie wersji kodu na produkcji z trunka).

Oczywiście to tylko przykład wykorzystania SVN. Jest to bowiem elastyczny system i każdy może sobie określić reguły pracy na nim według własnych potrzeb. Dla windowsowców - istnieje coś takiego jak VirtualSVN.

Narzędzia

Skill w programowaniu nie jest proporcjonalny do prostoty edytora. Nigdy. Gdy się tylko da trzeba korzystać z ułatwień. Należy więc sięgnąć po dedykowany dla naszych potrzeb edytor, który podpowie składnie (korzystając z wyszukiwania w projekcie podpowie jakie metody i właściwości posiada obiekt, z którego korzystamy. Ale także podpowie jakich argumentów wymaga funkcja), ułatwi korzystanie z SVN (lub jakiegokolwiek innego systemu kontroli wersji), podkreślą ładnie błędy i inteligentnie pomoże z prowadzeniem projektów. Wybieramy więc IDE jakie nam pasuje najlepiej, ja polecam: NetBeans, PHPStorm (uwaga - płatny w pewnych okolicznościach) lub Eclipse.

Posiadając już wybrane IDE nie można zapomnieć o edytorze dla bazy danych. Tutaj wybór jest również bogaty: dla MySQL - MySQL WorkBench, dla Postgre - PGAdmin, dla MSSQL - SQL Studio (rules!), albo cokolwiek innego (na przykład ze stajni EMS). W każdy razie kolejny raz warto zadbać, by narzędzie było wygodne i bogate w opcje (podpowiadaczka to minimum).

A teraz będzie pewnie kontrowersyjnie. Przeglądarka. Ja osobiście ubóstwiam FF. Z dodatkami. Dokładniej - firebugiem oraz web developerem. Sprawdzają się doskonale (głównie do debugowania JS, formularzy, ciastek, responsywności i flow aplikacji).

Oczywiście możecie korzystać z dowolnej przeglądarki i dowolnych narzędzi. Ja wiem ile razy mi się sprawdziły te dodatki i za nic ich nie zamienię.

Strony w pliczkach, czyli jak to tak naprawdę jest...

Z grubej rury - chcesz pisać w PHP - wybij sobie z głowy slogan, że strona jest w pliczku (aż mi się coś dzieje, jak taki tekst słyszę). Apache z PHP działa mniej więcej tak:

  • Serwer www (apache) dostaje żądanie. Jest ono interpretowane wstępnie (na przykład przez mod_rewrite). Następuje rozwinięcie. Żądanie może być przekazane innemu systemowi. Tak właśnie dzieje się z plikami PHP (dokładniej - tymi, które interpretowane są jako application/x-httpd-php)
  • PHP przechwytuje żądanie i następuje jego interpretacja. Współcześnie przechwycenie następuje najczęściej przez tzw. bootloader, który na podstawie parametrów w GET przekazuje je do odpowiednich kontrolerów
  • PHP wykonuje zaprogramowane działania i zwraca do apache`a przygotowany kod HTML. Ten zwracany jest do przeglądarki i wyświetlany

Nic więc nie każe już trzymać nam podstron w osobnych plikach PHP (o MVC dalej), nie ma to oczywiście także żadnego, najmniejszego wpływu na SEO (nie mogę dojść do siebie od momentu, gdy przeczytałem, że ktoś uważa, że ma).

MVC

Chce Wam w dalszych częściach zaprezentować framework CodeIgniter. Jest on może nie najlepszy pod względem "jakości programowania" (zwłaszcza ze względu na magię, jak dzieję się przy ładowaniu libów itd.), ale jest łatwy, uczy MVC oraz posiada doskonałą dokumentację.

Czy MVC jest? Pisałem już o tym tutaj. Nie będę się więc powtarzał. Tym razem jednak możecie liczyć na więcej praktyki (w części następnej). Jednak dodam tylko, że tutaj w osobnych plikach trzymać będziemy modele, widoki i kontrolery. Wszystko, mam nadzieję, KISS.

Nagłówki

Z tym jest częsty problem, a sprawa jest naprawdę prosta. Nagłówki to ta część komunikacji między przeglądarką a serwerem WWW, której nie trzeba oglądać przy przeglądaniu stron, a zapewnia odpowiednią konfigurację tej komunikacji. Na przykład odwiedzając znaną skądinąd stronę www.dobreprogramy.pl nasza przeglądarka wysyła następujące nagłówki:

GET / HTTP/1.1 Host: www.dobreprogramy.pl User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Cookie: DP_Auth=xxxxx; cookie_msg=1; ASP.NET_SessionId=xxxxx; loadExtendedPage=1 Connection: keep-alive

Czyli - pobierz główną stronę (GET /), znajdującą się na hoscie www.dobreprogramy.pl (host: www.dobreprogramy.pl). Ja korzystam z useragenta firefoxa (User-Agent itd), akceptuje w odpowiedzi kod html, xhtml, itd (Accept:), akceptuję język polski, angielski itd (Accept-Language), akceptuje kodowanie (metody kompresji) gzip i deflate (Accept-Encoding). Dla tego hosta i ścieżki mam takie cookie (Cookie:), a połączenie będzie podtrzymywane w celu obsłużenia kolejnych żądań.

W odpowiedzi dostaniemy kilka innych, ale ich prostota i oczywistość jest niezaprzeczalna. Spis nagłówków zgodnych ze standardem komunikacji HTTP znajdziecie tutaj. Istnieją oczywiście inne, niezgodne ze standardem. Te natomiast są marginalne i nie mają większego znaczenia.

Dobrze programuje czyli jestem leniem

Na koniec nieco teorii. Elementy programowania, o których będę pisał nie są nastawione na super wydajność, a raczej na zwiększoną wielokrotną użyteczność. Może to źle, ale dziś mniejszy jest problem z uzyskaniem zasobów, które zapewnią pracę niewydajnemu systemowi, niż czasu na stworzenie systemu bardzo wydajnego. Dlatego programuje się jak najszybciej ignorując nieco zapotrzebowanie na wydajność.

Na szczęście naprzeciw tym problemom wychodzą biblioteki i frameworki. Tutaj też nie ma co czarować. Jeśli ktoś to napisał i przeznaczył do wykorzystania przez innych to, o ile rozumiemy jak działa, należy to wykorzystać. Zwłaszcza jeśli jest dobre. Dlatego bez cienia wstydu skorzystam z klasy ActiveRecord z codeignitera do budowania zapytań SQL oraz z jQuery (i może jQueryUI, jeśli będzie potrzeba). Nie chce wymyślać koła na nowo.

Postaram się napisać coś, co pokaże też jak skorzystać częściej niż raz z jednego obiektu w aplikacji :)

A może macie jakieś sugestie w sprawie aplikacji? Póki co przychodzi mi do głowy jakiś prosty system typu CMS (bardziej jakiś blog...), ale chętnie sięgnę po Wasze pomysły... bo jestem leniem. 

programowanie

Komentarze

0 nowych
przemol96   5 #1 03.06.2013 19:04

Ciekawe wpisy się zapowiadają ;) Ja jestem za aplikacją w stylu bloga.

drobok   14 #2 03.06.2013 19:12

MMORPG :)

Autor edytował komentarz.
KyRol   18 #3 03.06.2013 19:16

Proponuję użyć Drupal PRO do dalszej serii wpisów. Jest dostępny w formie maszyny wirtualnej https://drupal.org/project/drupalpro jak i livecd https://drupal.org/node/1759492. Środowisko wypada zaktualizować. Firefox jest nadziany przydatnymi wtyczkami, poza tymi, które podałeś jest YSlow czy też Selenium IDE. Oczywiście to nie wszystko, jest to dystrybucja Ubuntu wypełniona narzędziami do pracy z tego typu frameworkami...

Co do koncepcji aplikacji: myślę, że z blogu lepiej zrezygnować. Zazwyczaj początkujący chcą pisać CMS tylko dlatego, że np. do Joomli trzeba się przyzwyczajać, a z Wordpressa takim ciężko zrobić CMS. Często argumentem jest ociężałość w/w rozwiązań. Myślę, że taki kompaktowy CMS byłby tym czymś - obsługa formularzy i zapytań do bazy jako podstawa, jakaś galeria, prosty backend i frontend.

Autor edytował komentarz.
alucosoftware   7 #4 03.06.2013 20:11

@tfl
+1
Może zamiast bloga (ileż to ich już w sieci leży) spróbowałbyś utworzyć bardzo, bardzo uproszczony sklep z 3, 4 towarami (możliwość edycji opisu, zdjęcia, ceny, KISS). Niejednokrotnie tego właśnie nam trzeba, a niepotrzebnie sięgamy po 'zbyt wiele'...

Frankfurterium   10 #5 03.06.2013 20:20

Coś do wspomagania pracy ośrodka opieki zdrowotnej, bo ostatnio spore jest na to wzięcie ;-)

  #6 03.06.2013 20:22

Akurat chciałem zacząć uczyć się kodować w PHP :-D Chętnie będę czytał :-P Powodzenia :-P

underface   14 #7 03.06.2013 21:11

Pewnie mój "genialny" temat na forum Cię do tego sprowokował ;-)

soanvig   10 #8 03.06.2013 21:37

Blog jest najpopularniejszym tutorialem - pokazuje wiele podstawowych zagadnień w praktyce. Oprócz tego jest praktycznie zawsze w oficjalnych tutorialach do frameworków (RoR, CakePHP etc.).

soanvig   10 #9 03.06.2013 21:37

Toteż jestem za blogiem :-)

soanvig   10 #10 03.06.2013 21:39

@alucosoftware
Czymże sklep różni się w praktyce od bloga? Pomijając koszyk, płatności i bezpieczeństwo?

M@ster   17 #11 03.06.2013 22:00

Prawdę mówiąc, odkąd PHP ma wbudowany serwer www darowałem sobie apacha. Pracuje tak od początku gdy to wprowadzili i jakoś daje radę :)

alucosoftware   7 #12 03.06.2013 22:13

@soanvig
Pożytkiem.

KyRol   18 #13 03.06.2013 22:31

Widzę, że lista życzeń się rozciąga i rozciąga. Trzeba by wypracować pewien kompromis. A jakby zrobić takie combo, czyli tradycyjny CMS połączony z blogiem i sklepem? Ponoć w branży panuje właśnie w/w trend celem przyciągnięcia i zainteresowania klienta na dłużej...

Oczywiście to wszystko powinno opiewać na prostym schemacie aby się nie okazało, że powstanie kolejna dystrybucja ala Joomla, zamiast prostego cyklu blogowego, którego intencją jest przedstawienie schematu pracy z frameworkiem, ;P

Shaki81 MODERATOR BLOGA  38 #14 03.06.2013 23:19

Zapowiada się ciekawie, czekam więc na kolejne wpisy.

stasinek   11 #15 04.06.2013 00:57

Niemiecka szkoła webdevelopingu, co drugie zdanie mnie przeraża(aż strach sie bać) ale ma to też jakiś sens.
Mam zapotrzebowanie i zarazem pytanie, skoro mowa o czymś w rodzaju CMS
Czy można i jak to zrobić bez używania php, jedynie w JavaScript stworzyć system którym np. na stronie html w dokumentacji swojego projektu dodawać np. wpisy historii zmian, mam coś w ten deseń:

function WriteToFile(sText){
var fso = new window.ActiveXObject("Scripting.FileSystemObject");
var s = fso.OpenTextFile("C:\\database.txt" , 8, true);
s.WriteLine("helloworld\r\n");
s.Close();
}

aktualizować wpisy lokalnie(np. przy użyciu hta - browser i html nie pozwoli na zapis do plików na dysku), a użyć funkcji odczytywania z pliku bazy i wyświetlenia w sposób modyfikowalny w dowolnym momencie żeby nie wpisywać treści w trwałej formie.(serwer nie ma sql ani php)

Jako leń skłaniam sie do napisania programiku który otworzy html odnajdzie magiczne słówko ukryte w komentarzu(wybranego diva) i dopisze kolejny wpis ale problem polega na tym że trwale ograniczam sposób wyświetlenia, miło by było wykorzystać kalendarz i wyświetlać jedynie wybrane wpisy przy użyciu funkcji JavaScript, wiem - chce wymyśleć koło na nowo.
Ale - jestem leń nie mam najmniejszej ochoty analizować mega bibliotek albo uczyć sie php, asp net itd. Maxymalnie łatwy do zrozumienia

PS jak dodawać fragment kodu html do komentarza? (żeby nie znikał)

Autor edytował komentarz.
kamil_w   10 #16 04.06.2013 00:58

Strona jest w pliczku? Może jako *.zip ;) Ja swego czasu robiłem stronki w PHP i żeby cała strona działała u klienta to tworzyłem je z użyciem JAMPa.
http://jamp.joomla.pl/

command-dos   18 #17 04.06.2013 07:40

"Będzie więc o PHP (a w nos się ugryźcie wszyscy, którzy się właśnie skrzywili" - wręcz odwrotnie :) czekam z niecierpliwością na kolejne części...

tfl   8 #18 04.06.2013 08:32

@stasinek

Jesli dobrze rozumiem, to rozwiazania, ktorych oczekujesz nie uda sie ogarnac bez activex (dostep do dysku) lub html5. Pewnie nie bedzie to dla Ciebie satysfakcjonujace rozwiazanie, ale jest tez cos takiego jak nodejs : http://nodejs.org/

@all

Teraz presje mam taka, ze chyba nie podejme sie pisania :) Zartuje oczywiscie, kolejne czesci beda za jakies 2 tygodnie - akurat zaczynam urlop (dance).

Co do rodzaju aplikacji... Jak pisalem na poczatku - wedka, nie ryba. Na pewno nie chce pisac wszystkiego "pod klucz", na gotowe. Na poczatek pewnie pojdzie blog (sieganie do bazy i zapisywanie w niej, paginacje, ogarnianie html przez php), potem autoryzacja, jquery i jqueryui. Potem sie bedzie myslalo :)

drobok   14 #19 04.06.2013 08:42

@tfl imo jemu chodzi o zapis na dysku serwera (ale mogę się mylić)
@stasinek a hasło do tego logowania niby gdzie chciałbyś trzymać ? Kod js jest jawny, jakiego cms'a byś nie napisał byłby on dziurawy nawet dla laika.
Jak już chcesz edytować swój blog mając tylko html, tworzysz program w c++/c#/java na hasło, który łączy się z automatu z ftp (inne hasło), po czym tam zmienia zawartość twojej strony :))

Autor edytował komentarz.
januszek   19 #20 04.06.2013 09:09

Wszystko OK ale jeśli ktoś nie ma o sprawie pojęcia to po tym wpisie nadal nie ma o sprawie pojęcia ;P

manieKMP   7 #21 04.06.2013 09:49

@januszek, nom, innymi słowy prócz wędki, trzeba byłoby resztę osprzętu wędkarskiego podarować (od "kaloszy", po haczyk), a na koniec wyszłoby, że jednak łatwiej było dać tą rybę... ;)
Ale nie generalizujmy, jakimś wędkarzom się to przyda, inni będą dalej kupować w supermarkecie lub innym rybnym.

tfl   8 #22 04.06.2013 10:27

@manieKMP

Co twoim zdaniem jest jeszcze potrzebne webdeveloperowi ? Jakos niebezpiecznie mi sie to kojarzy z facetem, ktory potrafi zrobic grafike na www, podtuningowac serwer www, konfigurowac firewall i instalowac office. Czyli taki student, ktory po studiach dziwi sie, ze oferty pracy dla niego koncza sie na tych do 1500 netto.

Jim1961   7 #23 04.06.2013 12:47

@autor
Jedynie co się moge przyczepić to hosty. W 99% przypadków nie są do niczego potrzebne, a nowym niesamowicie utrudniają "zajarzenie", gdzie się tak na prawdę znajdują.

Autor edytował komentarz.
McDracullo   17 #24 04.06.2013 19:43

Jeśli cała seria utrzyma taki poziom jak obecnie to widzę tu pretendenta do nagrody kwartału :)

drobok   14 #25 04.06.2013 21:45

"inni będą dalej kupować w supermarkecie lub innym rybnym."
Albo żebrać o nią wśród rybaków :P

marrrysin   6 #26 05.06.2013 02:09

Nie rozumiem - po co stawiać własny serwer? Ta praca się na 90% nie zwróci (10% to brak dostępu do sieci) - zewnętrzny serwer kosztuje 50zł/rok, czas przesłania pliku po ftp jest pomijalny - odciążenie własnego procka i pamięci odczuwalne.

Jak dla mnie - zmarnowany czas, szczególnie, że krótko bym tego nie stawiał - no i na Windowsie, bo webdeveloping na linuksie to jak drapanie się lewą ręką po prawym uchu - da się, tylko po co, skoro jest niewygodnie (testowanie IE)?

Wersjonowanie - załatwiam serwerem roboczym na subdomenie i docelowym. Jak to działa w ogóle mnie nie interesuje, ma działać i tyle. Nie muszę znać działania samochodu, żeby mieć prawko - szczególnie, gdy korzystam z nie-swojego pojazdu (hosting na serwerze). Z Gita nie umiem korzystać, do niczego mi się nie przydaje (pracuję i tak sam), kopie zapasowe plików trzymam w ogólnodostępnej chmurze (dropbox).

Autor edytował komentarz.
flaszer   10 #27 05.06.2013 06:31

A to niespodzianka, sam chciałem ostatnio coś skrobnąć na ten temat a tu proszę, przechytrzyłeś mnie ;) Zgadzamy się w wielu kwestiach, od wyboru środowiska NetBeans do prostego frameworka jakim jest bez wątpienia CI. Dodałbym tylko, że nie zawsze warto posiłkować się całym IDE (NetBeans), o wiele lżejszy i posiadający multum możliwości jest Sublime.

Autor edytował komentarz.
stasinek   11 #28 05.06.2013 09:38

@tfl - istnienie nodeJS znam od niedawna po wielu godzinach, dniach poszukiwan i rzeczywiście docelowo wydaje sie najlepsze bo multiplatformowe, chociaż nie do końca satysfakcjonuje, bo to zbyt ogolne - to baza do napisania takiego cms, a interesuje mnie gotowiec w stylu easy-comment, mało tego wydaje sie być swietnym zamiennikiem php i czymś w co warto inwestować czas, wadą php w przypadku takiej stronki z dokumentacją projektów, jednocześnie stronki udostępnianej publicznie jest to o czym pisałeś - strona nie istnieje w pliczku, tzn. w pliczku który mozna sobie otworzyć bez instalowania serwera, dołączyć do exe'ka a nawet wyświetlić wewnątrz programu jako help, właśnie z tego powodu nie lubie php,
czysty html i js jest bardziej mobilny i fizycznie namacalny a php to zabawa w instalacje serwerów.
node.js owszem ma podobną wade, ale przynajmniej wszystko obsługuje javascript można jakby..tworzyć na jednej przestrzeni, konfigurować na jednej przestrzeni, uwzględniając jedynie obecność lub brak tego czy owego w tym samym kodzie js
nie mam ochoty się uczyć php bo moim konikiem jest cos innego, (html, css, js znam od listopada - do konkretnego celu - dokumentacja) ale ułatwienie - uniwersalny klocek bez ryzyka popsucia byłby wygodny
No i są osoby które nie chcą znać się na programowaniu a mają jakieś projekty.
CMS jest w cenie, właściwie większość osób która coś robi prędzej czy później otwiera własną strone i trafiają do magików naciągających ich na grubą kapuste udostępniając narzędzie - będące przerostem formy nad treść, podczas gdy można zrobić to czego oczekują zdecydowanie prościej... bez uzależniania się od mogika

PS ActiveX jest wygodne, HTA jest wygodne i działa ale na Windows - powinno dzialać na WINE(?), sprawdziłem tworzy plik, odczytuje, moge sobie sformatować, stworzyć dodawanie komentarzy jako osobny formularz tj. uruchamiany wyłącznie lokalnie, nie ma tego złego co by na dobre bo sam fakt że uruchamiany wyłącznie lokalnie to też jakiegoś rodzaju zabezpieczenie przed modyfikowaniem z zewnątrz, ale przez powyższe ograniczenia(platforma systemowa) i prostote zastosowania wydawało mi się bardziej uniwersalne napisać uniwesalny program w C
HTML5 i http://www.html5rocks.com/en/tutorials/file/filesystem/ wydaje się być najlepszym rozwiazaniem multiplatformowym ale jakby jeszcze nie w pełni wdrożonym i cycki opadają

Ręczna dłubanina to tworzenie koła na nowo, stąd pytanie(wole wiedzieć na 100%), utwierdzasz w kilku przekonaniach - pierwszym, czas poświęcony na poszukiwania to niejednokrotnie czas stracony, zakładanie że ludzkość stworzyła sensowne wygodne narzędzia a inna ludzkość je zna i będzie miała ochote o nich pisać to nainwność, nawet jeśli zna to "zna ale nie powie" - lepiej poprostu robić po swojemu
Bo łebscy magicy delektują się takimi rozwiązaniami>
http://kurde.pl/katalog/linuks-a-sprawa-spluczki.php
jak wędkarze, nie chodzi przecież o ryby, ale o delektowanie się połowami i rozprawianiem na ten temat(?)

Więc jak? Można spodziewać się kursu na przykladzie CMS w Twoim wykonaniu?
Ja zajmę się swoim bo szkoda czasu na jałowe dyskusje o wędkach - ryby zdążą pouciekać

Autor edytował komentarz.
KyRol   18 #29 05.06.2013 10:30

Ale niektórzy mają pokręty tok rozumowania. Mam nadzieje, że dając takim wędkę, inni rybacy nie odniosą obrażeń podczas tego eksperymentu ;P

@marrrysin:

"Nie rozumiem - po co stawiać własny serwer?"

O masz Ci

"Jak dla mnie - zmarnowany czas"

No niekoniecznie, jest na tyle wiele różnych środowisk, że wypada łapać choćby postawy dlaczego i co nie działa lub gdzie tego szukać, bądź dlaczego nie warto zadawać głupich pytań obsłudze technicznej twojego hostingu.

"no i na Windowsie, bo webdeveloping na linuksie to jak drapanie się lewą ręką po prawym uchu"

Chyba piszesz o IIS, bo w przypadku php to raczej winda robi tu za nocnik.

"da się, tylko po co"

Gdybyś przejrzał sobie dokumentację niektórych frameworków opieranych o php, to dowiedział byś się, że nie jednokrotnie jest napisane: a tego w windows się nie da, a to trzeba obejść tak a srak, a jeszcze to nie działa wcale. W samym php manual wiele funkcji tak opisuje z uszczerbkiem dla windy właśnie. Nie wspomnę, że narzędzia do frameworków też są ograniczone w windzie, np. Drush do Drupala.

"(testowanie IE)?"

Maszyna wirtualna + przekierowane porty?

"Wersjonowanie (...) jak to działa w ogóle mnie nie interesuje, ma działać i tyle"

Wiem, wiem - piszesz z perspektywy swojego ego, ale nad wielkimi, porządnymi projektami (za które można zarobić więcej niż rzeczone 1500 netto) pracują grupy ludzi. Musi to być usystematyzowane. Jeśli chcecie mieć dobre podstawy, dobre zaczątki, to trzeba zmienić myślenie. A jak ktoś nie chce wędki, to niechaj co rybobranie kupuje ryby, a innym da spokój. Takich tutoriali dla takich samotnych rycerzy w sieci jest pełno, od serii tych wpisów się odczep.

"Nie muszę znać działania samochodu, żeby mieć prawko"

No nie musisz, ale jak Ci spadnie poziom oleju poniżej krytycznej i zatrzesz silnik - miej pretensje do siebie.

"szczególnie, gdy korzystam z nie-swojego pojazdu"

Nigdy Ci nie pożyczę samochodu ;P

"Z Gita nie umiem korzystać, do niczego mi się nie przydaje"

A na lepszych hostingach jednak się przydaje: http://www.mydevil.net/oferta.html

"kopie zapasowe plików trzymam w (...) dropbox."

No comment

Autor edytował komentarz.
manieKMP   7 #30 06.06.2013 07:55

@tfl, biorąc pod uwagę forumowe tematy (a chyba tym się kierowałeś rozpoczynając serię), odnoszę wrażenie, że spora ich część (jeśli nie większość) zakładana jest przez osoby, które tworzą stronę(y) na zasadzie "copy/paste" tego co zostało wygrzebane z internetu i "przeważnie" niezadające sobie trudu zagłębiania w tematykę lub chociaż tego, jak działa to, co zostało z sieci pobrane w ich "projekcie". Tym samym dalej brnie się w zasadę "kopiuj/wklej" tego, co zostało znalezione + oczekiwanie na "konkretne" odpowiedź, czy wynik, również bez wnikania w ich szczegóły...
Przypomina to w pewnym stopniu aktualną formę nauczania w szkołach, gdzie uczniom nie chce się tracić czasu np. na przeczytanie książki, bo łatwiej i szybciej jest bazować na gotowym streszczeniu, a potem dalej jest to praktykowane...

W takim, ogólnym wypadku, dawanie przysłowiowej wędki raczej nic nie da (trzeba byłoby wiedzieć, jak się nią posługiwać i co ważne, chcieć jej użyć).

Ale jak już wspomniałem, "nie generalizujmy", nie wszyscy opierają się tylko wyżej wymienianej zasadzie/formie działania, a wędka którą chcesz podarować, z pewnością komuś się przyda.

"Co twoim zdaniem jest jeszcze potrzebne webdeveloperowi ?..."
Nie jestem pewien, czy po tym co napisałem powyżej (i Twój wniosek we wpisie nt. "zapaleńców"), określenie kogoś takiego "webdeveloperem" jest właściwe... ;)

PS. Tak dla klarowności moich wypowiedzi w tym temacie, nie neguję, tak dawania "podarunków wędkarskich", jaki i tworzenia czegoś poprzez "copy/paste". Jedyne co mnie "bodzie", to braki w zaangażowaniu w przypadku tego drugiego, ponieważ z tworzenia robi się "bezmyślne" powielanie...

Autor edytował komentarz.
marrrysin   6 #31 09.06.2013 23:25

@KyRol
Ale jak ktoś pracuje w grupie, to pracuje w grupie - pokaż mi początkującego webdevelopera, który robi samodzielnie CMSy lub projekty w IIS. Otóż - nie robi, więc nie potrzebuje wersjonowania/gita/kopii zapasowych(co minutę)/własnego serwera itp. itd.

Pisałem o PHP, mówiłem już że wszystko testuję bezpośrednio na serwerze - pamiętaj, że webdeveloper może być back- jak i front-endowcem - ja jestem w tej chwili każdym z nich, chociaż z oczywistych względów preferuję backend (ale pracuję sam i nie mam wyboru). Jeśli do sprawdzenia strony w IE musiałbym uruchomić maszynę wirtualną z win7 - jest to typowy przykład drapania się prawą ręką za lewym uchem. Da się, ale po co, skoro te same narzędzia (phpstorm + filezilla + putty) mam na windowsie, a konfiguracja systemu nie trwa wieki i wszystko działa?

Początkujący webdeveloper robi skórki do WP, Drupala, Joomli, sklepów internetowych - skrobnie czasami jakiś skrypt backupu czy wtyczkę/moduł w czystym PHP i tyle. Wiem - bo sam nim jestem, zacząłem się uczyć PHP we wrześniu . Żadne z wymienionych przez ciebie rozwiązań po prostu nie jest mi potrzebne do życia.

Co do pożyczania auta - miałem tutaj raczej na myśli leasing, czyli analogię (daleką) do hostingu - ja płacę, jeżdżę (wgrywam strony) - jak się psuje to nic mnie to nie obchodzi. Osobiście auto/motocykl traktuję jak hobby i są raczej dopieszczone (pomimo użytkowania do transportu a nie do lansowania się) więc nie miałbyś się czego bać. Z tym wersjonowaniem to sam teraz nie wiem, co miałem na myśli - chyba to, że oprócz kopii trzymam dwie wersje projektu - na serwerze docolowym (stabilną) i na testowym - taką, na której pracuję. W przypadku prostych projektów (na które w sieci jest w końcu większe zapotrzebowanie, niż projekty profesjonalne i zaawansowane) to wystarcza w 100% na wyeliminowanie ewentualnych przestojów. Swój folder "projekty" też trzymam w dropboxie, co pozwala mi zacząć pracę na jednym lapie - skończyć na drugim itd. a jednocześnie zapewnia kilka poprzednich wersji pliku (nigdy nie było potrzebne). Nie rozumiem, czemu miałbym zrezygnować z tego rozwiązania - alternatywy brak (no jest - dedyk, bo w domu mam radiówkę). Z gitem (githubem) mam kontakt gdy tłumaczę wtyczki itp. i nadal nie wiem, kiedy właściwie plik jest wysyłany a kiedy nie - może w phpstormie obsługa jest nieogarnięta, nie wiem, nie potrzebowałem tego nigdy. Jak na studiach miałem projekt z gitem to go po prostu olałem, przez co później ledwo zaliczyłem przedmiot :)

Nie wiem, co masz do dropboxa, ale przyjmuję do wiadomości, że niektórym wydaje się to nieodpowiedzialne - cóż, tak samo jako korzystanie z gmaila/outlooka - tyle, że szanuję swój czas i nie widzę alternatywy. Za to dropbox pozwala mi na w pełni niezależne od serwera kopie, tworzone codziennie o dowolnej godzinie i dostępne zewsząd - w razie awarii łapiącej mnie poza domem same pozytywy. Znowu, alternatywą jest wynajęcie drugiego serwera (serwer w domu nie wchodzi w grę - koszta, prąd, niepewne łącze i nie-chce-mi-cię-go-konfigurować) który będzie mniej bezpieczny niż dropbox (bo pliki musiałbym pewnie wysyłać po ftp) - a za to będzie kosztował, i to minimum 100-150zł żeby to miało jakikolwiek sens... Gdzie będzie fizycznie - za bardzo mnie nie obchodzi.

Tak czy siak, uważam że szybciej wystartuje się w sieci, wykupując roczny hosting za 50zł i odpalając którekolwiek środowisko programistyczne (phpstorm, aptana, netbeans) niż stawiając własny serwer, dłubiąc w niepotrzebnych później dokumentacjach i męcząc się z linuksem (na laptopie - na stacjonarnym nigdy nie instalowałem. na laptopie jest to męką - jak uważasz inaczej uruchom mi usypianie wraz z kartą graficzną na X31 czy czytnik linii papilarnych na T61). Na hostingu wrzucamy paczkę z CMSem, rozpakowujemy i wszystko po prostu działa...

marrrysin   6 #32 09.06.2013 23:29

BTW co do copy-paste - nie wymyślam za każdym razem koła od nowa, ale jednocześnie wszystkie moje projekty można rozpoznać - jestem wygodny i nie chciało mi się pisać w CSS, więc piszę w LESS, a do każdego skryptu piszę własne, najwygodniejsze rozwiązanie kompilujące (?) LESS do CSS za pomocą lessphp. Niby nic, ale w google takiego rozwiązania nie znalazłem (po prostu - nikt się nim nie dzieli).

stasinek   11 #33 11.06.2013 13:24

Jak najprościej zbudować własne biblioteki ActiveX
poradnik w ok 40 linijkach kodu
http://www.kbcafe.com/csharp/?guid=20060503084626

gdyby nie poradniki z konkretami jak na zamieszczonym obrazku ^^ to nie potrafił bym wiele, to jest haczyk lub przynęta, która zacheca do zgłębiania tematu(mnie zachęca), nie rozumiem czepialstwa ani wizji ludzi którzy rzekomo nie wnikają w szczegóły, jakieś statystyki? badania naukowe na ten temat?
przecież proces nauki właśnie na tym polega - chleba bez zaczynu nie upieczesz.
nie można być specjalistą od wszystkiego

pi razy oko marrysin podoba mi się Twoje podejście

Autor edytował komentarz.