Osobiste, szkoła etc., Programowanie (IDE, UML, Wzorce...), Programowanie (PHP, Java...), System (GNU, BSD, Windows...) »

eclipse, antlr i subeclips)." rel="owl:sameAs"> Ja już tego nie rozumiem (o eclipse, antlr i subeclips).
[24 lipca, 2006 | eclipse, antlr i subeclips).">2 komentarze | Poziom: 0 ]

Subclipse (instalowane kilkakrotnie z strony domowej) nie chcę działać - nie znajduje swoich klas (eclipse wie, że jest to zainstalowane, a nie uruchamia).

Czytaj dalej »

Programowanie (PHP, Java...), System (GNU, BSD, Windows...) »

[22 lipca, 2006 | Dodaj komentarz | Poziom: 0 ]

Potrzebowałem zamienić w plikach java-pkg-2-2 na java-pkg-2

find /var/db/pkg/ -exec perl -pi -e 's@java-pkg-2-2@java-pkg-2@' \;

Zajmuje to jednak trochę czasu (dla każdego pliku jest wywoływany perl).

Dlatego postarałem się o taką konstrukcję (tymczasową) :

# find /var/db/pkg/ | xargs grep java-pkg-2-2 /var/db/pkg/dev-java/rhino-1.5.5-r2/rhino-1.5.5-r2.ebuild:inherit ... /var/db/pkg/dev-java/antlr-2.7.5-r2/antlr-2.7.5-r2.ebuild:inherit ... /var/db/pkg/dev-java/servletapi-2.3-r2/servletapi-2.3-r2.ebuild:inherit ... /var/db/pkg/dev-java/libreadline-java-0.8.0-r1/libreadline-java-0.8.0- ... /var/db/pkg/dev-java/servletapi-2.4-r2/servletapi-2.4-r2.ebuild:inherit ... /var/db/pkg/dev-java/bsh-2.0_beta4/bsh-2.0_beta4.ebuild:inherit ... /var/db/pkg/dev-java/ant-core-1.6.5-r13/ant-core-1.6.5-r13.ebuild:inherit ...

Od razu widać, że nie potrzeba nam zawartości. Pozatym 2 procesy nie będą korzystały z tego pliku jednocześnie, więc możemy korzystać z Mapped I/O (wywołanie systemowe mmap(2)

# find /var/db/pkg/ | xargs grep --mmap java-pkg-2-2 | sed 's@:.*@@g;' /var/db/pkg/dev-java/rhino-1.5.5-r2/rhino-1.5.5-r2.ebuild /var/db/pkg/dev-java/antlr-2.7.5-r2/antlr-2.7.5-r2.ebuild /var/db/pkg/dev-java/servletapi-2.3-r2/servletapi-2.3-r2.ebuild /var/db/pkg/dev-java/libreadline-java-0.8.0-r1/libreadline-java-0.8.0-r1.ebuild /var/db/pkg/dev-java/servletapi-2.4-r2/servletapi-2.4-r2.ebuild /var/db/pkg/dev-java/bsh-2.0_beta4/bsh-2.0_beta4.ebuild /var/db/pkg/dev-java/ant-core-1.6.5-r13/ant-core-1.6.5-r13.ebuild

I przekazujemy to do perla:

# find /var/db/pkg/ | xargs grep --mmap java-pkg-2-2 | sed 's@:.*@@g;' \ | xargs perl -pi -e 's@java-pkg-2-2@java-pkg-2@'

I nie mamy już czasu zaparzyć kawy... (Pierwsze zajmowało strasznie długo)

Programowanie (PHP, Java...) »

[22 lipca, 2006 | Dodaj komentarz | Poziom: 0 ]

Czasami nachodzi mnie ochota na myślenie o NIL'u - połączeniu cech Javy, Rubiego i C++. Do cech należałyby:

  • Wielodziedziczenie
  • Dynamiczne interfejsy (zaraz wytłumaczę o co mi chodzi)
  • Rozszerzanie klas (jak w Ruby) i możliwość mrożenia
  • Zaawansowana kontrola dostępu
  • Możliwość korzystania z Proxy
  • Możliwość korzystania z klas .Net i Javy (opcjonalnie)
  • Typy generyczne

Czytaj dalej »

Osobiste, szkoła etc., Programowanie (Moje Projekty), Programowanie (PHP, Java...) »

[13 lipca, 2006 | Dodaj komentarz | Poziom: 0 ]

Mam dziwne wrażenie, że trochę przekombinowałem.

Potrzeby był mi parser tekstu. Niestety najprostsze metody to:

  • Wczytanie wszystkiego i zwrócenie wyniku
  • To samo, tylko że z utworzeniem drzewka

Niestety było mi potrzebne coś w rodzaju leniwego drzewa - w końcu plik może być wczytywany przez słabe łącze. Dodatkowo wykonywanie kilku rzeczy naraz może przyspieszyć na maszynach wieloprocesorowych(i/lub wielordzeniowych procesorach).

Wpadłem na pomysł leniwego dzewka, które wysyła sygnały. W rezultacie:

  • Mam 2 abstrakcyjne [interfejsowe] fabryki (jedna dla drzewa, jedna dla słuchaczy)
  • Mam leniwe drzewko - oddzielnie interfejsy, oddzielnie klasy(w trakcie pisania)
  • Mam wreszcie słuchaczy (tylko interfejsy napisane)

I tutaj pojawia się pytanie - czy jest to elastyczność, czy przekombinowanie?

Programowanie (IDE, UML, Wzorce...), Programowanie (PHP, Java...) »

[11 lipca, 2006 | 4 komentarze | Poziom: 0 ]

Piszę kod w Javie:

  1. private Listener listener = new Listener() {
  2.   void someCallback() {
  3.     Iterator i = listeners.iterator();
  4.     while(i.hasNext()) {
  5.       Listener l = (Listener)i.next();
  6.       l.someCallback();
  7.     }
  8.   }
  9.   //I inne tego typu metody
  10. }
  11.  
  12.   private Set listeners;

W Javie 1.5 mamy lepiej

  1. private Listener listener = new Listener() {
  2.   void someCallback() {
  3.     for(Listener l: listeners) {
  4.       l.someCallback();
  5.     }
  6.   }
  7.   //I inne tego typu metody
  8. }
  9.  
  10. private Set<Listener> listeners;

A czy nie prościej by było to opisać jako:

private Listener listener = new proxyListener(); @ProxyCollection(listeners) private class proxyListener implements Listener {} private Set<Listener> listeners;

Nie upieram się przy znaku at(już wykorzystanym), może to być & lub $ (którego i tak nie można wykorzystać). Oczywiście wszystko na poziomie kompilacji...

Czy ktoś może powiedzieć, jak podobny kod wygląda w ruby(tzn. weduk filozofii ruby i w ruby)?

Programowanie (Moje Projekty), Programowanie (PHP, Java...) »

[07 lipca, 2006 | Dodaj komentarz | Poziom: 0 ]

... i dochodzę do wniosku, że zupełnie ona nie nadaję się do tego. Naturalny byłby taki model:

  1. Klient wywołuje read()
  2. Klasa sprawdza, czy w buforze jest odpowiednia ilość znaków, jeśli tak to zwraca je. Jeśli nie patrz dalej.
  3. Klasa 'budzi' parser
  4. Parser czyta strumień i zwraca token
  5. Klasa pracuje nad tokenem
  6. Klasa pisze do bufora
  7. Wracamy do ptk. 2

Właściwie to do pisania filtrów wystarczyłaby napisanie ptk. 5. Tymczasem muszę (chyba, że ktoś mi poda, gdzie taką klase mogę znaleźć) prawie wszystkie punkty napisać od początku.

Inne rozwiązanie to z urzyciem synchronizowanej listy. Napisanie tego nie zajmuje dużo czasu i jest w durzej mierze wspomagane JavaCC

  1. Wątek kładzie poszczególne tokeny na listę
  2. Wątek czyta listę, przetwarza i zapisuje do PipedWriter
  3. Wątek czyta z PipedReader (wątek klienta)

Niestety tutaj mamy ten problem, że mamy aż 2 wątki 'nadmiarowe' i rurkę. W dodatku te 2 wątki nie wiem jak zakończyć (w końcu parser przejmuje kontrolę nad parserem a nie ma metody isClosed()).

W Javie wcześniejszej niż 1.5(Program ze swej natury musi być kompatybilny conajmniej z Javą 1.2) nie ma StringBuilder więc zaimplementowanie pierwszego rozwiązania:

  • Wymagałoby implementacji tego
  • Korzystałaby z bufora stałej długości (co jeśli jakiś tekst jest większy? a co jeśli dużo mniejszy?)
  • Korzystałaby ze String. Ze względu na naturę Javy mogłoby być to dość kosztowna operacja...

Czy w tym momencie jestem zmuszony stworzyć odrębny pakiet utils?

Jogger i Jabber, Programowanie (PHP, Java...), Technologie W3C (XHTML, CSS...) »

[18 czerwca, 2006 | Dodaj komentarz | Poziom: 0 ]

Zaczynam upiekszanie kodu. Najlepeiej, jeśli mialby numery linii (To nie mój pomysł).

Nad stylami muszę jeszcze popracować, ale tutaj jest próbka:

  1. function Code2Ol() {
  2.   var codes = document.getElementsByTagName("code");
  3.   for(var i = 0; i < codes.length; i++) {
  4.     var code = codes[i];
  5.     var lines = code.textContent.split('\n');
  6.     var ol = document.createElement("ol");
  7.     for(var x = 0; x < lines.length; x++) {
  8.       var li = document.createElement("li");
  9.       var li_code = document.createElement("pre");
  10.       li_code.appendChild(document.createTextNode(lines[x]));
  11.       li.appendChild(li_code);
  12.       ol.appendChild(li);
  13.     }
  14.     code.parentNode.insertBefore(ol, code);
  15.     ol.setAttribute("onclick", "ShowCode(this);");
  16.     code.setAttribute("onclick", "HideCode(this);");
  17.     HideCode(code);
  18.   }
  19. }
  20. function ShowCode(ol) {
  21.   ol.nextSibling.setAttribute("class", "code");
  22.   ol.setAttribute("class", "hide");
  23. }
  24. function HideCode(code) {
  25.   code.setAttribute("class", "hide");
  26.   code.previousSibling.setAttribute("class", "code");
  27. }

Po prostu kliknik w kod :)

Programowanie (PHP, Java...) »

[18 czerwca, 2006 | 1 komentarz | Poziom: 0 ]

Gdzieś czytałem, nie pamiętam gdzie, żeby kompilator wyświetlał błedy przy takiej konstrukcji:

if(coś);

Co jesnak z takimi konstrukcjami:

if(coś) instrukcja(); else if(coś2); else if(coś3) instrukcja2(); else instrukcja3();

Można oczywiście:

if(coś) instrukcja(); else if(!coś2) { if(coś3) instrukcja2(); else instrukcja3(); }

Ale dziwnym trafem wole rozwiązanie pierwsze...

Osobiste, szkoła etc., Programowanie (PHP, Java...), System (GNU, BSD, Windows...) »

[08 czerwca, 2006 | Dodaj komentarz | Poziom: 0 ]

Udało mi się zainstalować wolną Javę. I to w wersji 1.5.

To co nie udało się z sablevm i kaffe (Java 1.2-1.4) udało się za pomocą gcj (kompilator javy w pakiecie gcc) i ecj (kompilator javy w eclipse - jedyny otwarty kompilator obsługujący 1.5).

Programowanie (PHP, Java...) »

[20 maja, 2006 | Dodaj komentarz | Poziom: 0 ]

Generyczność bez typedef jest nie do końca czytelna. Weźmy chocby taka linijkę:

> > objects;]]>

Choćby typdef ConcurrentMap DMap; //Default Map zmniejszyło by ją.

No cóź - taka jest ta Java...

Programowanie (PHP, Java...) »

[12 maja, 2006 | 5 komentarzy | Poziom: 0 ]

Chciałem zająć się programowaniem sieci w Javie. Mam książkę o Javie, którą kiedys czytałem. Istnieje porównanie języków. Kod w C jest długi. Oto jego fragment:

  1. unsigned readline(fd, vptr, maxlen)
  2. int fd;
  3. char *vptr;
  4. int maxlen;
  5. {

Dla nieznających języka dodam, że jest to (archaiczny już) zapis ANSI, który mało kto stosuje. Teraz zajmuje to 5x mniej linii:

  1. unsigned int readline(int fd, char *vptr, int maxlen) {]]>

W podobny sposób 'zapomniano' o funkcji fdopen(3), która pozwoliłaby skrócic kod o stronę (1/3 kodu), gdyż nie trzeba pisać funkcji operujących na deskryptorach. Dodanie tak dziwnych rzeczy jak biblioteki (na pewno da się w CGI) pozwoliłoby skrocić to do +/- kodu Javy. (no może trochę więcej, ale...)

Programowanie (IDE, UML, Wzorce...), Programowanie (Moje Projekty), Programowanie (PHP, Java...) »

[28 kwietnia, 2006 | Dodaj komentarz | Poziom: 0 ]

Ostatnio kupiłem sobie książkę o Java 1.5 Tiger (na temat nowości).

Doszedłem do wniosków, że większość z tego, co wprowadzili, było w C++ (czy nawet w C) i... zostawało przez programistów Java od czci i wiary (typy generyczne, printf) albo w ogóle pominięte (enum). Część to transportacja z .Net różnych rzeczy (adnotacje, for/in).

Java uległa 'skomplikowaniu' przez co... łatwiej się pisze(bezpieczniejsze typowanie, wyłączenie warringów, łatwiejsze formatowanie stringów...).

Wnioski:

  • Java 5 staje do walki z .Net. Jest na słabej pozycji(zarówna na Windows jak i na OS [wolny interpretator .Net - mono]), ale nie przegranej.
  • Może będzie wprowadzone wielodziedziczenie(dlaczego nie? Czasami jest to bardzo przydatne...) - jest to trochę bardziej skomplikowane, ale nie niemożliwe.
  • Delegacje/wskaźniki na funkcje to coś, co jeszcze Java nie ma, a powinna mieć.

Pozdrawiam.

GUI (Gnome, KDE, Gtk...), Programowanie (IDE, UML, Wzorce...), Programowanie (PHP, Java...), System (GNU, BSD, Windows...) »

[19 kwietnia, 2006 | Dodaj komentarz | Poziom: 0 ]
Zależało mi na na włączeniu do QT 4.0 możliwości robienia prania i gotowania, ale zdecydowaliśmy, że te funkcje warto pozostawić do rozważenia dla przyszłych wersji

Gnome nie zrobiłby tego w gtk+ - utworzyłby projekt ghome z bibliotekami np. gwash i gcook, co pozwoliłoby utrzymać spójność i prostotę przy dodawaniu nowych możliwości.

GUI (Gnome, KDE, Gtk...), Programowanie (PHP, Java...), System (GNU, BSD, Windows...), Technologie W3C (XHTML, CSS...) »

[10 kwietnia, 2006 | Dodaj komentarz | Poziom: 0 ]

YouOS to ciekawy projekt stworzenia... os'u dla przeglądarki...

Polega to na tym, że logujemy się w przeglądarce i w niej pracujemy. Problem nadal nazywa się CPU - od czasu do czasu proces firefox-bin dużo zabierał.

Niedoczytałem, ale chyba cały projekt jest OS i do tego w JavaScripcie.

Programowanie (PHP, Java...) »

[03 kwietnia, 2006 | Dodaj komentarz | Poziom: 0 ]

Statyczne typowanie ma kilka zalet. Można szybko wychwycić błędy/literówki(zazwyczaj wszystko musi być zadeklarowane przed). Jest sie pewnym, że coś jest jakiegoś typu. ect. Długi czas myślałem, że jest zdecydowanie lepsze.

Dynamiczne typowanie pozwala na kilka stuczek - m. innymi brak interfejsów, brak rzutowań, które pomniejszają czytelność, wczytywanie klasy bezpośrednio ze string (xyz = eval(xyz + ".new"), a nie TypBazowy xyz = (TypBazowy)Class.forName(abc).newInstance()). Dynamiczne typowanie też ma zalety.

Gdyby ktoś znalazł błędy proszę o powiadomienie mnie.

Programowanie (PHP, Java...), Technologie W3C (XHTML, CSS...) »

[01 kwietnia, 2006 | 3 komentarze | Poziom: 0 ]

Ostatnio szukałem czegoś o asp.net(mod_mono) i znalazłem ciekawe teksty o ruby.

Dla mnie JSP ma wygodną składnie w plikach, rozdzielenie MVC niekoniecznie odwzorowaną 1-1 [1] z bazą danych - trzeba by było wtedy przechowywać kod html/xhtml i przekonwertowywać go do innych formatów. Nie jest to, o co mi chodzi - patrz sowa - założenia sowy.

ASP.net ma dużo możliwości 'językowe' (C#, nemerle) - znacznie doroślejsze niż Javowe odpowiedniki (patrz właściwości vs. JavaBean), ale jedyne 'kursy' to filmiki na stronach MS w których conajmniej 25% to opowiadanie o wygodzie VS(Wygoda VS) ect. używając WYSIWYG. Na domiar złego pliki aspx mają dziwną składnie przypominającą html z końca wojny przeglądarek(<script runat=server&rt;) - zamiast, zgodnie z XML, wszystkie instrukcje umieszczając między <?xyz ?> (xyz to nazwa odpowiedniego języka np. php [2], jsp, ect.). Dodaje również 'automatycznie' pola - kto wie z czym kompatybilne(opiera się o html a nie XForm)?

Ruby on Rails ma wymienioną wadę - stosunek 1-1 z bazą danych. Ponieważ jednak(z tego co wiem) jest na tym zbudowany(przynajmniej weduk manuali/prasy ect.) to sowa nie mogła być na nim zbudowana.

Gdyby ktoś wziął JSP i zmienił język na ruby lub platformę na mono - podbiłby świat ;)

[1] Chodzi oczywiście o Ruby on Rails

[2] PHP trochę wyłamuje się z konwencji stosując short-tags(domyślnie włączone), ale nie o to chodzi...

Osobiste, szkoła etc., Programowanie (PHP, Java...), System (GNU, BSD, Windows...) »

[31 marca, 2006 | 2 komentarze | Poziom: 0 ]

Nie zauważyłem, co aktualizuje i zaktualizowałem expat. W wyniku tego (wedle revdep-rebuild) miałem ponad 50 złamanych zależności(w tym dinozaurach typu mozilla).

Gorsza jest tylko niekopatybilność API :)

Programowanie (PHP, Java...) »

[25 marca, 2006 | 2 komentarze | Poziom: 0 ]

Co jest prostsze do zrozumienia:

  1. public AbstractGraphData(Set nodes, GraphNode first, Set
  2. firsts = new HashSet(), boolean constant = false) throws
  3.         //(...)
  4. }

Czy może:

  1. public AbstractGraphData(Set nodes, GraphNode first) throws
  2.         this(nodes, first, new HashSet());
  3. }
  4. public AbstractGraphData(Set nodes, GraphNode first, Set firsts) throws
  5.         this(nodes, first, firsts, false);
  6. }
  7. public AbstractGraphData(Set nodes, GraphNode first, Set firsts, boolean
  8. constant) throws NullPointerException {
  9.         //(...)
  10. }

Moim zdaniem to pierwsze...

Programowanie (Moje Projekty), Programowanie (PHP, Java...) »

[18 marca, 2006 | 1 komentarz | Poziom: 0 ]

Pozostaje mi tylko ujednolicić kod (_ przed prywatnymi i chronionymi zmiennymi ect) dołożyć dokumentacje (JavaDoc) i upublicznić(gdzie?)

Do zrobienia do 0.1 Alpha:

  • Dodać wyjątki - w chwili obecnej kod napisany jest w większości zakładając, że zmienne są zainicjalizowane i poprawne.
  • Dodać Obsługe jakiś struktur.

Programowanie (Moje Projekty), Programowanie (PHP, Java...) »

[09 marca, 2006 | Dodaj komentarz | Poziom: 0 ]

Co w niej będzie:

  • Jakaś stabilizacja API dla JCM DC 0.1.
  • Zaimplementowana podstawowa funkcjonalność (tzn. ogólne).
  • Upublicznienie kodu(np. na sf.net).

W DC Alpha chciałbym mieć już dodaną obsługę XML/JDBC/Memory. Zachęcam do:

  • Pomocy po napisaniu kodu.
  • Powiedzeniu mi, że głupio robię, wskazując otwarte coś, co robi to samo.

Programowanie (PHP, Java...) »

[07 marca, 2006 | 1 komentarz | Poziom: 0 ]

Języki się różnią. Widać to choćby na przykładzie prostej klasy(Korzystającej z (N)Hibernate).

klasa.java:

  1. public class Klasa {
  2.   public long getId() {
  3.     return _id;
  4.   }
  5.   public String getNazwa() {
  6.     return _nazwa;
  7.   }
  8.   public void setNazwa(String s) {
  9.     _nazwa = s;
  10.   }
  11.   protected long _id;
  12.   protected String _nazwa;
  13. }

klass.hbm.xml

  1. <?xml version="1.0"?>
  2. <hibernate-mapping>
  3.   <class name="Klasa" table="Klasy">
  4.     <id name="id" column="id">
  5.       <generator class="native"/>
  6.     </id>
  7.     <property name="nazwa"/>
  8.   </class>
  9. </hibernate-mapping>

Klasa.cs

  1. using NHibernate.Mapping.Attributes;
  2.  
  3. [Class]
  4. class Klasa {
  5.   public UInt64 Id {
  6.     get {
  7.        return id;
  8.     }
  9.   }
  10.   public String Nazwa {
  11.     get {
  12.        return nazwa;
  13.     }
  14.     set {
  15.        nazwa = value;
  16.     }
  17.   }
  18.  
  19.   [Id(0, ClassType=typeof(UInt64))]
  20.   [Generator(1, Class="native"]
  21.   public long id;
  22.   [Property]
  23.   public String nazwa;
  24. }

Klasa.boo(Nie pamietam jak utwożyć ro property, ale to szczegół):

import NHibernate.Mapping.Attributes [Class] \ class Klasa: def constructor: pass [Boo.Lang.Property(Id)] \ [Id(0, ClassType=UInt64)] \ [Generator(1, Class="native"] \ id as ulong [Boo.Lang.Property(Nazwa)] \ [Property] \ nazwa as String

Przy nemerle (nie znam składni), pewnie za pomocą makr, dałoby się to zapisać jeszcze krócej.

Kod nie był testowany ani kompliowany.

Programowanie (PHP, Java...) »

[06 marca, 2006 | Dodaj komentarz | Poziom: 0 ]

Bardzo ono ułatwia życie:

  1. import java.util.*;
  2.  
  3. class Abc {}
  4. class Abc2 extends Abc {}
  5.  
  6. class Xyz {
  7.   Xyz(/* const */ Map<Abc> abc) {
  8.   }
  9. }
  10.  
  11. class Xyz2 extends Xyz {
  12.   Xyz2(/* const */ Map<Abc2> abc) {
  13.     super(new HashMap<Abc>(abc);
  14.   }
  15. }

Kod ma na celu ilustracje problemu a nie poprawność (public, podzielenie na pliki).

Osobiste, szkoła etc., Programowanie (Moje Projekty), Programowanie (PHP, Java...), Technologie W3C (XHTML, CSS...) »

[05 marca, 2006 | 2 komentarze | Poziom: 0 ]

Na razie udało mi się zrobić UML dla klas opisujących elementy. Jak widać UML jest wykonany nieprofesjonalnie itd.

Image Hosted by ImageShack.us

Poszukiwanie dobrego, otwartego edytora UML trwają.

Osobiste, szkoła etc., Programowanie (Moje Projekty), Programowanie (PHP, Java...), Technologie W3C (XHTML, CSS...) »

[05 marca, 2006 | Dodaj komentarz | Poziom: 0 ]

Stronę, o której kilkakrotnie wspominałem(http://glib.mojastrona.dyndns.org/ - na razie nie działa) mam zamier przestawić na JCM - autorskiego CMSa.

W założeniach ma być:

  • Modularny
  • Opierać się na plikach XML
  • Część danych(np. wygenerowane PDF'y - pliki lub fragmenty) cachować

Elementy:

  • Magazyn danych - Ujednolicona komunikacja z bazą danych, xmlem ect.
  • Modelu zawartości - Wewnętrzna reprezentacja.
  • Wyświetlaczy - Wyświetlają część modelu(artykuł, kod źródłowy).
  • Kontrolery - Zarządzają przepływem informacji.

Co z tego wyjdzie, zobaczymy. Czy ktoś zna coś, co mogłoby mi zaoszczędzić pisania Magazynu?

PS. JCM będzie miał oczywiście licencje OS.

Programowanie (IDE, UML, Wzorce...), Programowanie (PHP, Java...) »

[19 lutego, 2006 | Dodaj komentarz | Poziom: 0 ]

Oprogramowanie obiektowe jest 'super'. Do wszystkiego(przykład PHP) dodaje się obiekty. Czy jednak aby zawsze jest to słuszna droga?

Nie da się zaprzeczyć, że w kilku dziedzinach jest to słuszne podejście(GUI), ale czy jednak zawsze?

  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. static void main() {
  5.         std::cout << "Tekst 1" << std::endl;
  6.         printf("%s", "Tekst 2");
  7. }

Oprócz sprawdzania typów(w kompilatorach innych niż gcc) co zyskaliśmy?

  • Kolejny bufor(zależy od implementacji, ale z tego co pamiętam...)
  • Dodatkowy wywołania wirtualnych funkcji - int fd w uniksach nie zawsze jest plikiem.

Często mówi się o programowaniu modułowym, gdzie zmiana jednego elementu wpływa na drugi. Odpowiedzią na to jest tylko to, że można porównywać zły kod modułowy z dobrym kodem obiektowym. W programowaniu funkcyjnym mamy tak hermetyczne funkcje, że nie mogą one nic zmieniać poza.

Zupełnie też nieznanym, ale dosyć ciekawym podejściem, jest programowanie logiczne. Połączenie tego z obiektami zaowocowałoby jakimś gniotem lub językiem UF.

Programowanie (PHP, Java...), Technologie W3C (XHTML, CSS...) »

[10 lutego, 2006 | Dodaj komentarz | Poziom: 0 ]

Zaniedbuje pisanie.

Na usprawiedliwienie mam tylko dużą ilość zajęć i przepisywanie strony(nie działa) na jsp.

GUI (Gnome, KDE, Gtk...), Programowanie (IDE, UML, Wzorce...), Programowanie (PHP, Java...) »

[18 stycznia, 2006 | 2 komentarze | Poziom: 0 ]

Wczoraj dowiedziałem się, że do października br. MS oferuje bezpłatną wersje VS.NET. Postanowiłem dowiedzieć się o co tyle 'szumu' i postanowiłem ściągnąć (na sąsiedni komputer w WinXP, ktory jest szybszy od mojego i mogę go wykorzystywać do 'służbowych celów') - tylko nie bijcie.

'Znam' 3 IDE dla języków .NET i pozwolę sobie je tutaj porównać

MonoDevelop 0.9#Develop 2 MS Visual 2005 EE
+ Jest/Jest jako plugin, - Nie ma, ? - może jako plugin... Miejsca są pozytywne (tzn. 1 to najgorsze pod tym względem)
Języki Boo + + -
C# + + +
C++/CLI ? ? +
Java + ? -
J# ? ? +
Nemerle + + -
VB.Net + + +
Razem 5 4 4
Interface Wywrotność 1 3 2
Podpowiedz 2 1 3
i18n 2.5 2.5 0
Spójność 3 2 1
Razem 8.5 8.5 6
Licencja Open Source(3)Shareware(1)
Razem 16.5 15.5 11
Moja ocena 11 11 9

W porównaniu z innymi VS.NET wypada moim zdanie dość blado. Szczególnie np. w VS C# nie mogę znaleść ustawień, gdzie powinny być projekty, które w VS C++ znajdują się bez problemu :) . VS C++ potrafi także 'samo' tworzyć rozwiązania(solution). Zdarza sie więcej zawieszeń niz np. przy #Develop 2 beta.

GUI (Gnome, KDE, Gtk...), Programowanie (PHP, Java...) »

[17 stycznia, 2006 | 2 komentarze | Poziom: 0 ]
C(według tego)C++(na oko)C#(na oko)
Metody ect.13+13+41+(!)
Linie na okoNagłówek8920125
Zawartość65360
Razem74280

Wartości z C uwzględniają komentarze i GType(moim zdaniem można to skrócić). C++/C# nie uwzględnia obsługi zawartości.

Nie lubię C++. W ten sposób C i C++ są egzekwo na I miejscu. ;)

GUI (Gnome, KDE, Gtk...), Programowanie (PHP, Java...) »

[16 stycznia, 2006 | Dodaj komentarz | Poziom: 0 ]

Jak ostatnio pisałem przepisuje projekt z Javy na C#. Po kilku problemach nareszcie pełna obsługa GUI 1/5 klas :) - teraz z górki...

Zastanawiam się, czy nie napisać własnego modelu do bardziej skomplikowanych rzeczy...

Osobiste, szkoła etc., Programowanie (PHP, Java...) »

[12 stycznia, 2006 | Dodaj komentarz | Poziom: 0 ]

Ostatnio pracowałem nad pewnym projektem. Projekt miał być w Javie, wszystko ładnie, znalazłem biblioteki(Hibernate). I...

Nagle wczoraj wieczorem dowiedziałem się, że na Javie nie, bo za mało RAM'u na tym komputerze...
Jeśli nie pojdzie na .Net to pozostaje: Programista wiesza się razem ze swoim programem

Na ich usprawiedliwienie mam to, że te osoby, które wiedziały, że w Javie, nie znały komputera/nie wiedziały co to Java

Swoją drogą na [GNU/]Linuksie nie spotkałem zawieszonego programu. "Niespodziewanie kończą działanie", ale nie zawieszają się