Programowanie - where to begin? O_o

Zajrzyj tutaj, jeśli masz ochotę pogawędzić, poplotkować i wtrącić swoje trzy grosze do dyskusji na tematy niemające wiele wspólnego z Thiefem.

Moderator: Bruce

Awatar użytkownika
Dreen
Kurszok
Posty: 550
Rejestracja: 12 sierpnia 2006, 15:23
Lokalizacja: Żywiec/Kraków/Londyn

Re: Programowanie - where to begin? O_o

Post autor: Dreen »

Black_Fox pisze: Mniemam, że webmastering nie ma nic wspólnego z doborem platformy?
I tak, I nie. PHP dziala niemal tak samo na kazdej platformie. ASP jest dla serwerow ISS Microsoftu. Perl dziala chyba tak samo tu i tu choc pewnosci nie mam. JSP (Java Server Pages) - tu tez nie jestem pewien ale postawilbym na identyczna obsluge na roznych platformach.
Black_Fox pisze:A poza tym chciałbym się skupić na jednej platformie, tyle, że nie wiem czy Windows czy Linux. :| Jakie są zasadnicze różnice? Co radzicie?
to juz twoj wybor ale mysle ze powinienes zaznajomic sie (nie zeby uzywac, ale napewno dobrze jest znac) z projektami Cygwin i/lub MinGW. Jak powiedzial moj przedmowca, podstawy sa wszedzie takie same.

Tak dla scislosci - dynamiczna strone mozesz napisac nawet w C++ jako cgi-bin, tylko ze to nie ma wiekszego praktycznego sensu ;)
Awatar użytkownika
Gregorius
Egzekutor
Posty: 1716
Rejestracja: 28 maja 2003, 08:47
Lokalizacja: Civitas Kielcensis
Kontakt:

Re: Programowanie - where to begin? O_o

Post autor: Gregorius »

_OskaR pisze:
Black_Fox pisze:A poza tym chciałbym się skupić na jednej platformie, tyle, że nie wiem czy Windows czy Linux. :| Jakie są zasadnicze różnice? Co radzicie?
Podstawy można złapać niezależnie od systemu. Pod Linuksem może być na początku trochę łatwiej (gcc)- piszesz program w notatniku i kompilujesz w konsoli. W przypadku bardziej złożonych programów, różnice mogą się jednak uwidocznić- korzystanie z innych bibliotek pociąga za sobą inny sposób ich obsługi.
I tutaj wielką przewagę ma niezależne (i darmowe) oprogramowanie :ok

Korzystając z Visuala skazujesz się na Windows. Za to kompilator gcc jest na wszystkie znane platformy, tak samo ze środowiskiem Code::Blocks.
To samo z bibliotekami, te najbardziej znane i najlepsze jak QT, OpenGL, wxWidgets, SDL, Allegro itp. itd. są w wersjach na Windows i Linuxa. Jeżeli się z nich korzysta, nie ma większych problemów z przenoszeniem programów między systemami.
Znam to z własnego doświadczenia, wielokrotnie pisałem programy kawałkami na Windows i kawałkami na Linuxie, bez większych problemów :)

Nie wspomnę już o Javie, gdzie nie ma (albo przynajmniej z założenia nie powinno być) żadnych różnic niezależnie od platformy z której się korzysta.

A jeśli chodzi o edytor to zazwyczaj korzystam z VIMa http://vim.sf.net, który też oczywiście jest na wszystkie platformy.

Spójrzcie na moją stronkę http://www.darkgreg.yoyo.pl/thiefex/tex_en.html, ostatni screen z mojego programiku ThiefEx był zrobiony na Linuxie, reszta na Windows :)
Brothers in arms & beer...
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

Czy da się zrobić, aby Microsoft Visual C++ działał w języku polskim? Jest jakiś patch, łatka, a może opcja?
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
marek
Garrett
Posty: 4775
Rejestracja: 09 grudnia 2003, 08:52
Lokalizacja: Poznań
Płeć:
Kontakt:

Re: Programowanie - where to begin? O_o

Post autor: marek »

a po co? i tak wszystkie helpy masz po angielsku, a każda polonizacja musiałaby być "niepełna" - charakterystycznych nazw brzmiących "po angielsku" nie można przekłądać na polski, bo straciłoby się kompatybilność z wersją angielską.
ObrazekObrazek
"No one reads books these days"
Awatar użytkownika
_OskaR
Poganin
Posty: 736
Rejestracja: 26 stycznia 2005, 16:07

Re: Programowanie - where to begin? O_o

Post autor: _OskaR »

A po co w ogóle to polonizować? Przykłady (opisy) i książki są po polsku- na forach też jest dużo ciekawych informacji- czego więcej chcieć? 99,99% obsługi Visuala to pisanie programu. Wystarczy znać parę opcji w menu i to wszystko- już Thievery jest trudniejsze :))
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

Nie dla mnie.
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
waldeq
Kurszok
Posty: 517
Rejestracja: 03 grudnia 2006, 22:12
Lokalizacja: Południowa Dzielnica

Re: Programowanie - where to begin? O_o

Post autor: waldeq »

Którego Visuala pobrałeś? 2008 express edition? Może w ogóle opisz jakie masz problemy w jego użytkowaniu.
Awatar użytkownika
_OskaR
Poganin
Posty: 736
Rejestracja: 26 stycznia 2005, 16:07

Re: Programowanie - where to begin? O_o

Post autor: _OskaR »

Black_Fox pisze:Nie dla mnie.
W takim razie od razu daję sposób na program w Visualu:
File->New, zakładka Project->Win32 Console Application
Project name- nazwa projektu
Location- lokalizacja na dysku
Dajesz ok, a potem najlepiej A "Hello..." application.
Ok, a potem po lewej, w pionowym oknie widać nazwa_projektu classes- rozwijasz to, potem dalej rozwijasz i klikasz na main...- z takim zajeb&stym różowym sześcianikiem. W oknie głównym masz już gotowy kod. Modyfikujesz- można zrobić pusty dokument, ale na początku tak jest wygodniej :-) Możesz to oczywiście zostawić i odpalić- górny pasek->Build->Rebuild all (albo compile), a potem Execute... i odpalasz program, a na HDD masz program w postaci pliku exe. I to jest wszystko- ew. File->Save :-D
Gdyby Visual był spolszczony, i tak byś na początku nie skorzystał z innych opcji ;)
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

Microsoft Visual C++ 2008 Express Edition. A on w ogóle darmowy jest?
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
waldeq
Kurszok
Posty: 517
Rejestracja: 03 grudnia 2006, 22:12
Lokalizacja: Południowa Dzielnica

Re: Programowanie - where to begin? O_o

Post autor: waldeq »

Darmowy jest także do użytku komercyjnego. 8-)
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

Pytam, bo coś wyskakiwało mi przy pierwszym uruchomieniu o rejestracji... O co z tym chodzi?

Dev lepsiejszy, taki... lekki. :P
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
waldeq
Kurszok
Posty: 517
Rejestracja: 03 grudnia 2006, 22:12
Lokalizacja: Południowa Dzielnica

Re: Programowanie - where to begin? O_o

Post autor: waldeq »

Black_Fox pisze:Pytam, bo coś wyskakiwało mi przy pierwszym uruchomieniu o rejestracji... O co z tym chodzi?

Dev lepsiejszy, taki... lekki. :P
Wiesz, że nawet nie zwróciłem na to uwagi. :P Ale nie bój żaby, za Visuala w wersji express nie musisz płacić ani grosza bez znaczenia na jego zastosowanie.

Hmm chcesz się poddać "urokowi" Deva? Trzeba walczyć. 8-)
Awatar użytkownika
_OskaR
Poganin
Posty: 736
Rejestracja: 26 stycznia 2005, 16:07

Re: Programowanie - where to begin? O_o

Post autor: _OskaR »

Black_Fox pisze:Dev lepsiejszy, taki... lekki. :P
Problem w tym, że nie wszystko działa w Devie. Zrobisz program bez błędów, a Dev powie, że są. Kij w d... z takim programem.
Awatar użytkownika
waldeq
Kurszok
Posty: 517
Rejestracja: 03 grudnia 2006, 22:12
Lokalizacja: Południowa Dzielnica

Re: Programowanie - where to begin? O_o

Post autor: waldeq »

Problem Deva polega również na tym, że nie tylko widzi błędy kiedy ich tak naprawdę nie ma ale także, że czasem je także przepuszcza kiedy istnieją. Poza tym ma on bardzo nietroskliwy kompilator i nie zwraca zbytnio uwagi o niejawną konwersję i tego typu sprawy (żadnych ostrzeżeń, pod Visualem zawsze mam ich po 150). Nie dla profesjonalistów.
Awatar użytkownika
marek
Garrett
Posty: 4775
Rejestracja: 09 grudnia 2003, 08:52
Lokalizacja: Poznań
Płeć:
Kontakt:

Re: Programowanie - where to begin? O_o

Post autor: marek »

ale narzekacie - Visual tez widzi błędy, kiedy ich nie ma.

A co do widzenia nieistniejących błędów: zwykle wystarczy przekompilować cały kod i po wszystkim :)
No i najważniejsze: jest wyjątowo lekki i szybki, dodatkowo interpretuje to co napiszemy dosłownie, a poprawnie napisany kod musi działać. W sumie bym go pewnie nie polecał, ale jest najlżejszym z programów, o kórych wiem, że mogę połączyć WINAPI, OpenGL i WinSock - Borlandy sie wykładają w OpenGl (dla Api i WinSocka mają swoje zamienniki), a Visual jest wooooooooooolny.
ObrazekObrazek
"No one reads books these days"
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

Czyli Ty mareczku dłubiesz w Devie, tak? :)
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
waldeq
Kurszok
Posty: 517
Rejestracja: 03 grudnia 2006, 22:12
Lokalizacja: Południowa Dzielnica

Re: Programowanie - where to begin? O_o

Post autor: waldeq »

Nie narzekam tylko wyrażam swoją opinię kierując się wszelkimi przeżyciami jakie miałem przyjemność zaznać w czasie rocznego używania Deva. :-D Żeby nie było powiem, że Visual także nie jest jakiś niezwykle idealny (bo takich rzeczy nie ma) i też czasem się na niego wkurzę szczególnie jak mi się wyłączy albo zawiesi. :)) Jednak nie zdarza się to co 5 min bym miał się zniechęcać, dlatego pozostaje przy nim pomimo, że czasem może być zbyt "troskliwy". :P
Awatar użytkownika
marek
Garrett
Posty: 4775
Rejestracja: 09 grudnia 2003, 08:52
Lokalizacja: Poznań
Płeć:
Kontakt:

Re: Programowanie - where to begin? O_o

Post autor: marek »

Black_Fox pisze:Czyli Ty mareczku dłubiesz w Devie, tak?
krótkie (konsolowe) w Devie (chociaż projekt z informatyki też pisałem w Devie, bo akurat do niego miałem poradnik do OpenGL), mające wyglądać w Borland C++Builder6. Jakoś nie chce mi się czekać parę minut na odpalenie Visuala, potem po pół minuty na każdą kompilację. A jak teraz robiłem format to go nawet nie zamierzam instalować, bo mi totalnie zawali rejestr.
ObrazekObrazek
"No one reads books these days"
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

To ja już nie wiem którego IDE używać, te to tamto jeszcze coś, bleh...

Może z innej beczki, jak wygląda tworzenie stronek WWW, też jest... "IDE"? Jeśli tak to jakie polecacie? :)
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
Maveral
Bruce Dickinson
Posty: 4661
Rejestracja: 11 kwietnia 2003, 12:07
Lokalizacja: Radlin
Płeć:

Re: Programowanie - where to begin? O_o

Post autor: Maveral »

Wystarczy w sumie zwykły notatnik hehehe Jakoś nie polecam edytorów i tym podobnych programów, bo strasznie mieszają nam w kodzie. Np. FrontPage, to potrafi dodać tyle niepotrzebych liniii do kodu, że poprawiać po nim to katorga. Oczywiście jedne edytory więcej mieszają, drugie mniej, ale w sumie się zraziłem ;)

Chyba tylko w AS robi się wygodniej na Flashu.
Ciemność jest naszym sprzymierzeńcem!
Awatar użytkownika
Dreen
Kurszok
Posty: 550
Rejestracja: 12 sierpnia 2006, 15:23
Lokalizacja: Żywiec/Kraków/Londyn

Re: Programowanie - where to begin? O_o

Post autor: Dreen »

do jezykow skryptowych przy pracy z www polecam jedynie lekki edytor tekstowy z kolorowaniem skladni, numerami linii, wsparciem dla wciec w kodzie itd. Przyklady: Notepad++, SciTE. Istnieja IDE jak np Aptana ale zaczac lepiej od zwyklego edytora. I stronic od windowsowego notatnika.
Awatar użytkownika
Maveral
Bruce Dickinson
Posty: 4661
Rejestracja: 11 kwietnia 2003, 12:07
Lokalizacja: Radlin
Płeć:

Re: Programowanie - where to begin? O_o

Post autor: Maveral »

Ja zacząłem zabawę z Javą. Zakupiłem książkę Horstmann'a "Java. Podstawy" i jak na razie jestem zachwycony. Język bardzo prosty, wręcz intuicyjny, bardzo elstyczny i... obiektowy do bólu. Ta ostatnia zaleta bardzo mi się podoba, ułatwia znacznie życie i ogolnie takie tam ;) Do tego Eclipse i można jechać z tym koksem. Mam nadzieję, że niedługo przerobię całą książkę, a w międzyczasie ukaże się tom drugi "Java. Advanced Features". Jakby ktoś chciał zacząć uczyć się Javy to polecam wlaśnie Horstmann'a. Miałem od kumpla "Thinking in Java", ale treść tego tomiska wydała mi się mniej przystępna.

W związku z zainstalowaniem u siebie linux'a, chciałbym zapytać czy programowanie w bash'u przydaje się na szerszą skalę, czy tylko do takich "skryptów własnych", że się tak wyrażę?
Ciemność jest naszym sprzymierzeńcem!
Awatar użytkownika
Black_Fox
Szaman
Posty: 1015
Rejestracja: 23 września 2006, 11:54
Lokalizacja: The City

Re: Programowanie - where to begin? O_o

Post autor: Black_Fox »

W związku z zainstalowaniem u siebie linux'a, chciałbym zapytać czy programowanie w bash'u przydaje się na szerszą skalę, czy tylko do takich "skryptów własnych", że się tak wyrażę?
To zależy.
Jeśli chcesz zostać ekspertem Linuksa to jak najbardziej.
Jeśli jesteś entuzjastą to nie trać na to czasu. Skrypty można znaleźć w Sieci.
Ogólnie nawet jeśli będziesz musiał pracować jako programista na platformie Linuks to nie musisz znać basha.
Skrypty basha służą do ułatwienia współpracy z systemem. Poza tym to jest język powłoki.
- And...
- Remember to pick pocket of the party guests?
Awatar użytkownika
Maveral
Bruce Dickinson
Posty: 4661
Rejestracja: 11 kwietnia 2003, 12:07
Lokalizacja: Radlin
Płeć:

Re: Programowanie - where to begin? O_o

Post autor: Maveral »

Hej. Wczoraj tak kombinowaliśmy z kumplem czy z poziomu DOS da się stworzyć skrypt który:
1. Wyciągnie z nazwy pliku tylko jego część (np. z pliku "Maveral_rzadzi" wyciągnie tylko "rządzi")
2. Skompresuje tenże plik pod nazwą zwierającą wyciągniętą wcześniej część nazwy z punktu 1 (np. "Adam_jest_fajny_wiec_rzadzi" gdzie "rzadzi" jest doklejane z punktu 1).

W sumie wysmażyłem działający skrypt, ale muszę wywoływać podprogram, a chciałbym mieć to w jednym bat'cie.

skrypt.bat

Kod: Zaznacz cały

ECHO OFF
C:
cd "\Program Files\7-Zip\"
FOR /R "D:\Mariusz\szkola\6 semestr\SQL Server\Wyklady\". %%F in (*.pdf) do SET zm=%%~nF&CALL C:/KompresjaPDF/etyk.bat
PAUSE
etyk.bat

Kod: Zaznacz cały

ECHO OFF
SET zm1=%zm:~3,9%
7z a -tzip -pmaveral "D:\Mariusz\szkola\6 semestr\SQL Server\Wyklady\"Maveral_poradnik_%zm1%.zip -ssw "D:\Mariusz\szkola\6 semestr\SQL Server\Wyklady\"%zm%.pdf
Próbowałem część z etyk.bat wpakować do skrypt.bat oddzielając kolejne komendy znakiem "&", ale przy większej ilości "&" coś się kaszani i niestety nie dałem rady tego wpakować do jednego bata. Może ktoś się już bawił DOSem i miałby jakieś rozwiązanie?
Ciemność jest naszym sprzymierzeńcem!
Awatar użytkownika
waldeq
Kurszok
Posty: 517
Rejestracja: 03 grudnia 2006, 22:12
Lokalizacja: Południowa Dzielnica

Re: Programowanie - where to begin? O_o

Post autor: waldeq »

Być może znajdzie się ktoś kto udzieli mi odpowiedzi na trapiące mnie pytanie. Dotyczy ono dotyczy semaforów i problemu producent-konsument. Poniżej dałem uproszczony kod realizujący to zadanie, gdzie proces macierzysty jest producentem zaś potomny utworzony przy pomocy funkcji fork() konsumentem. Sam problem rozwiązałem natomiast jest jedno pytanie:
Gdy liczba kroków pętli przekroczy 32767 w producencie przy opuszczaniu semafora pojawia się błąd dotyczący przekroczenia jego wartości (ERANGE). Nie mam pojęcia dlaczego gdyż zgodnie z tym co pojawia mi się na ekranie przyjmuje on wartość 0 lub 1. Wiem, że ma to jakiś związek z flagą SEM_UNDO, którą używam do operacji na semaforach. Gdy ją wyzeruje to błędu nie ma. Poniżej kod:

Kod: Zaznacz cały

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <errno.h>

#define LOOPS 40000

//********************************************
// Usuń zbiór semaforów.
//********************************************
void semrm(int semid)
{
    if (semctl(semid, 2, IPC_RMID) == -1)
    {
        perror("Błąd! Nie można usunąć zbioru semaforów: ");
        exit(EXIT_FAILURE);
    }
}

//********************************************
// Opuść semafor.
//********************************************
void semp(int semid, int semnum)
{
    int r;
    struct sembuf buf;
    buf.sem_flg = SEM_UNDO;
    buf.sem_num = semnum;
    buf.sem_op = -1;
    do
    {
        r = semop(semid, &buf, 1);
    } while(r && errno == -1);
    if (r == -1)
    {
        perror("Nie można opuścić semafora: ");
        printf("semid = %d\n", semid);
        printf("sem1val = %d\tsem2val = %d\n", semctl(semid, 0, GETVAL), semctl(semid, 1, GETVAL));
        exit(EXIT_FAILURE);
    }
}

//********************************************
// Podnieś semafor.
//********************************************
void semv(int semid, int semnum)
{
    int r;
    struct sembuf buf;
    buf.sem_flg = SEM_UNDO;
    buf.sem_num = semnum;
    buf.sem_op = 1;
    do
    {
        r = semop(semid, &buf, 1);
    } while(r && errno == -1);
    if (r == -1)
    {
        perror("Nie można podnieść semafora: ");
        exit(EXIT_FAILURE);
    }
}

//********************************************
// Ustaw wartośc dla semafora.
//********************************************
void setval(int semid, int semnum, int value)
{
    if (semctl(semid, semnum, SETVAL, value) == -1)
    {
        perror("Błąd! Nie można ustawić wartości semafora!");
        semrm(semid);
        exit(EXIT_FAILURE);
    }
}

int main(int argc, char **argv)
{
    key_t key;     // Klucz komunikacji międzyprocesowej.
    int semid;
    int i = 0;

    key = ftok(".", 'B');
    if (key == -1)
    {
        perror("Błąd! Nie można pobrać klucza: ");
        return EXIT_FAILURE;
    }

    semid = semget(key, 2, 0600 | IPC_CREAT /*| IPC_EXCL*/);
    if (semid == -1)
    {
        perror("Błąd! Nie można utworzyć zbioru semaforów: ");
        return EXIT_FAILURE;
    }

    /* Ustaw wartości semaforów. */
    setval(semid, 0, 1);
    setval(semid, 1, 0);

    switch (fork())
    {
    case -1:
        perror("Fork error: ");
        semrm(semid);
        return EXIT_FAILURE;
    case 0:
        while (i < LOOPS)
        {
            printf("value1 = %d\n", semctl(semid, 1, GETVAL));
            semp(semid, 1);
            ++i;
            printf("KONS: %d\n", i);
            semv(semid, 0);
        }
        printf("semid = %d\n", semid);
        semrm(semid);
        break;
    default:
        while (i < LOOPS)
        {
            printf("value0 = %d\n", semctl(semid, 0, GETVAL));
            semp(semid, 0);
            ++i;
            printf("PROD: %d\n", i);
            semv(semid, 1);
        }
    }

    return EXIT_SUCCESS;
}
ODPOWIEDZ