GeeCON 2010 - call for papers
Call for papers na kolejną edycję GeeCON właśnie ruszyło! Tym razem konferencja odbędzie się w Poznaniu i będzie trwać calutkie 3 dni!!!

Jeśli chcecie w niej uczestniczyć za darmo to zgłoście się w call for papers a oprócz otrzymania darmowego ticketu na GeeCON Conference będziecie mogli również przedstawić swoją wiedzę szerokiemu gronu międzynarodowych uczestników! Więcej szczegółów na stronie konferencji.
Aaaa zapomniałbym - mamy całkiem fajne bannerki na bloga, zapraszam do ich umieszczania ![]()
IntelliJ otwarte!
Wreszcie mogę o tym napisać! IntelliJ IDEA jest teraz dostępne za DARMO i jako open-source! Wersję community możecie pobrać na tej stronie.
JetBrains Academy member.
Ci którzy śledzą mojego Twittera już wiedzą dla innych ogłaszam to tutaj. Oficjalnie zostałem jednym z członków JetBrains Academy. JetBrains Academy to zespół ludzi wybieranych ze społeczności użytkowników rozwiązań firmy JetBrains, ponieważ jak zapewne część z Was wie od pewnego czasu jestem uzależniony od używania IntelliJ IDEA, stąd wiadomość o chęci wcielenia mnie do tej grupy niezmiernie mnie uradowała.
Członkowie JetBrains Academy to miłośnicy produktów JetBrains, ludzie którzy udzielają się w społeczności poprzez organizację spotkań, udział w projektach open source i charakteryzują się dużą wiedzą. I właśnie ta ostatnia cecha czyni mnie malutkim bo jak tu porównać mnie do takich ludzi jak Antonio Goncalves (tego pana nie muszę przedstawiać), Jonas Bonér (twórca AspectWerkz, commiter m.in. Terracota i AspectJ) czy Hamlet D’Arcy (commiter Groovy) a to tylko część z osób będących członkami JetBrains Academy, w planach są kolejne, co najmniej tak samo znane nazwiska. Nie ma jednak nic złego co by na dobre nie wyszło - już dostałem wiatr w żagle
Dla tych osób które ciekawe są co daje udział w JetBrains Academy mogę powiedzieć, iż przede wszystkim jest to bardzo bliska współpraca z ludźmi z JetBrains i to zarówno jeśli chodzi o zgłaszanie uwag co do produktów jak i zapoznanie się z nowymi, pewnie niejednokrotnie jeszcze nie ogłoszonymi publicznie rozwiązaniami. Dochodzą do tego jeszcze inne rzeczy jak choćby wsparcie ze strony firmy spotkań organizowanych przez członków akademii. Więcej na temat JetBrains Academy znajdziecie tutaj.
Na koniec dodam, że Polska ma aktualnie trzech przedstawicieli, pozostali to dobrze Wam znany Łukasz Lenart (biedaczysko chyba nie znalazł fotki którą mógłby pokazać światu :P) oraz od strony .NET Michał Brzozowski.
GeeCON za 250zł ?!!!
Tak, właśnie pojawiła się informacja o promocji 5+1, wiele firm pytało o zniżki za grupowe wejściówki więc pojawiła się standardowa “procedura” w tej kwestii. Wystarczy, że zarejestrujesz pięć osób a dostaniesz bilet dla szóstej osoby całkowicie za free! Ta promocja sprawi, że GeeCON będzie dostępny już od 250zł (w przypadku biletów dla studentów/aktywnych członków JUGów) za osobę za calutkie DWA dni!!! Jeśli już się zarejestrowałeś to znajdź dodatkowe osoby a będziesz płacił mniej!!!
A to jeszcze nie wszystko, szykujemy dla was specjalne szkolenia prowadzone przez Sun Learning Services w powalającej cenie (stanowiącej ułamek ich realnej ceny!!!), niestety ilość miejsc na szkolenia będzie ograniczona więc kto pierwszy ten lepszy ![]()
Przedsmak szkoleń tutaj, więcej szczegółów (w tym cena) w najbliższym czasie.
Tworzenie RESTful Web Services przy użyciu Apache CXF
Na grupie dyskusyjnej Lódź JUG Paweł Włodarski zapoczątkował temat “Usługi typu REST “. W jednej z odpowiedzi napisałem, iż do tworzenia usług za pomocą JAX-RS można wykorzystać framework Apache CXF, w dzisiejszym wpisie przedstawię w jaki sposób zaimplementować taką usługę używając właśnie Apache CXF oraz Spring Framework.
Utwórzmy nasz projekt przy użyciu Maven 2:
Po chwili powinniśmy zobaczyć utworzoną strukturę aplikacji, która znajduje się w katalogu restapp.
Ponieważ w naszym projekcie użyjemy frameworków Spring i Apache CXF stąd też musimy je dodać do naszego pom.xml, po modyfikacji nasz pom powinien wyglądać następująco:
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd”>
<modelVersion>4.0.0</modelVersion>
<groupId>org.holewa.restapp</groupId>
<artifactId>restapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<build>
<finalName>restapp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle-jaxrs</artifactId>
<version>2.1.3</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>Atlassian</id>
<layout>default</layout>
<url>https://m2proxy.atlassian.com/repository/public</url>
</repository>
</repositories>
</project>
Powyższy fragment zawiera zależności od Spring Framework i Apache CXF JAX-RS bundle, czyli specjalnej paczki Apache CXF przeznaczonej do implementacji RESTful Web Services w oparciu o specyfikację JAX-RS.
Dodałem również jedno repozytorium Maven 2, jest ono potrzebne aby Maven mógł pobrać zależność od Apache Abdera (jednej z zależności Apache CXF) i wtyczkę maven-compiler-plugin zdefiniowaną dla wersji 1.6 Javy gdyż kod, który zobaczycie w tym przykładzie był kompilowany właśnie z tą wersją.
Teraz czas na konfiguracje deskryptora naszej aplikacji webowej, modyfikujemy plik web.xml sprowadzając go do następującej postaci:
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>REST Application</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
Zdefiniowaliśmy tutaj listener który odpowiada za uruchomienie kontakstu Spring’a oraz servlet Apache CXF, będzie on odpowiedzialny za obsługę wywołań naszych usług.
Utworzymy teraz dwie klasy o nazwach Element i Elements, które zawierać będą adnotacje JAXB.
Klasa Element:
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = “element”)
class Element {
private Integer id;
private String name;
public Element() {
}
public Element(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Klasa Elements:
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement(name = “elements”)
public class Elements {
@XmlElements({
@XmlElement(name = “element”, type = Element.class)
})
List<Element> elements;
@XmlTransient
public List<Element> getElements() {
return elements;
}
public void setElements(List<Element> elements) {
this.elements = elements;
}
}
Klasy te zostaną wykorzystane do przedstawienia prostych możliwości interfejsu REST’owego, posłużą one jako przykładowe obiekty zwracane przez usługę RESTful web services.
Javowa implementacja tej usługi znajduje się poniżej:
Klasa ElementEndpointImpl:
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.ProduceMime;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
public class ElementEndpointImpl {
@Context
UriInfo uriInfo;
private List<Element> elements;
public ElementEndpointImpl() {
elements = new ArrayList<Element>();
elements.add(new Element(1, “First”));
elements.add(new Element(2, “Second”));
}
@ProduceMime(value = “application/xml”)
@GET
@Path(value = “/elements”)
public Elements getElements() {
Elements result = new Elements();
result.setElements(elements);
return result;
}
@ProduceMime(value = “application/xml”)
@GET
@Path(value = “/elements/{id}”)
public Element getElement(@PathParam(value = “id”) Integer id) {
Element result = null;
for (Element e : elements) {
if (e.getId().equals(id)) {
result = e;
break;
}
}
return result;
}
}
Na koniec konfiguracja Apache CXF w pliku applicationContext.xml:
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:jaxrs=“http://cxf.apache.org/jaxrs”
xmlns:cxf=“http://cxf.apache.org/core”
xsi:schemaLocation=“http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://cxf.apache.org/core
http://cxf.apache.org/schemas/core.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd”>
<import resource=“classpath:META-INF/cxf/cxf.xml”/>
<import resource=“classpath:META-INF/cxf/cxf-servlet.xml”/>
<import resource=“classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml”/>
<bean id=“elementEndpoint” class=“org.holewa.restapp.ElementEndpointImpl”/>
<jaxrs:server id=“restWSServer” address=“/”>
<jaxrs:serviceBeans>
<ref bean=“elementEndpoint”/>
</jaxrs:serviceBeans>
</jaxrs:server>
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
</beans>
To już wszystko, budujemy naszą aplikację za pomocą Maven’a:
W wyniku otrzymujemy plik restapp.war, skopiujmy do go katalogu webapps w Tomcacie lub innym kontenerze servletów.
Po uruchomieniu Tomcata na standardowym porcie i podaniu w przeglądarce następującego adresu:
Otrzymacie taki oto wynik:
<elements>
<element>
<id>1</id>
<name>First</name>
</element>
<element>
<id>2</id>
<name>Second</name>
</element>
</elements>
Gdy wejdziecie na ten adres:
Zwrócona zostanie odpowiedź zawierająca tylko jeden “element”, którego id jest równe 1:
<element>
<id>1</id>
<name>First</name>
</element>
To chyba wszystko na dzisiaj, jako ćwiczenie polecić mogę zmianę tej usługi tak aby wywołanie listy zwracało jedynie podstawowe informacje o wszystkich elementach, a wśrod nich linki do interfejsu REST’owego zwracającego szczegóły poszczególnych elementów.
Recenzja: “Getting Started with Flex 3″
Dzisiaj miałem okazję przeczytać książkę Getting Started with Flex 3, książka mała, przyjemna, idealna do czytania w podróży, w efekcie przeczytałem ją w pociągu na trasie Kraków - Tarnów. Książkę dostałem od przedstawiciela Adobe podczas spotkania Polish JUG, na którym przedstawione zostały możliwości tworzenia aplikacji do transmisji obrazu video, która oczywiście została napisana z wykorzystaniem Flexa i Javy.
Jeśli chcecie dowiedzieć się więcej na temat samej książki to zapraszam do przeczytania krótkiej recenzji.
Na koniec dodam jeszcze, iż książkę przekażę do biblioteczki Polish JUG, jeśli więc chcecie szybko zapoznać się z Adobe Flex 3 to zapraszam do jej wypożyczenia.
UPDATE: Dzięki Łukaszowi dowiedziałem się, że książka ta jest również dostępna za darmo na stronie Adobe.
Studencki Festiwal Informatyczny 2008
W dniach 6-8 marca 2008 odbędzie się kolejna, czwarta edycja Studenckiego Festiwalu Informatycznego, bezpłatnej i największej imprezy informatycznej w naszym kraju.
Jak i w poprzednich latach, tak i w tym roku będziemy mieli kolejnych znakomitych gości, wymienię Wam tylko trzech z nich : Joe Armstrong, Gilad Bracha, Chad Fowler myślę, że ich nazwiska w zupełności wystarczą do tego aby zachęcić Was do zaglądnięcia na stronę festiwalu i zarejestrowania się.
Jak już wcześniej pisałem, udział w festiwalu jest darmowy i w dodatku nie dotyczy tylko studentów, a co za tym idzie macie możliwość wzięcia udziału w najlepszej imprezie IT w jakiej możecie uczestniczyć w Polsce i to w dodatku za darmo!!!
Niemożliwie? A jednak!:D
I Wy możecie się przyczynić do promowania tej imprezy, wystarczy, że umieścicie na swoim blogu/stronie baner naszego festiwalu wklejając następujący kod :
Umieścicie w ten sposób taki oto baner :
Gdy już to zrobicie, to dajcie mi proszę koniecznie o tym znać na adres radek[małpka]holewa[kropeczka]org .
Jeśli chcecie umieścić inny baner to znajdziecie tutaj więcej informacji na ten temat.
Refleksje po mojej prezentacji na spotkaniu Warszawa JUG
Byłem wczoraj w Warszawie na spotkaniu Warszawa JUG gdzie prezentowałem JavaFX. Muszę powiedzieć, że moje wrażenia są pozytywne a nawet bardzo pozytywne ![]()
To co najbardziej mi się podobało to fakt, że Warszawa JUG jest zgrana, było dużo pytań, wymian zdań. To co mnie zdziwiło to fakt, że nikt mnie nie pojechał za moje “hasła”, które momentami były chyba zbyt luźne (pewnie nie oberwało mi się tylko przez grzeczność) ![]()
Prezentację oceniam jako dobrą, nie jestem do końca zadowolony, nie przedstawiłem wszystkiego co chciałem :/
Niestety 45-50 minut to naprawdę zbyt mało jak na taką prezentację (normalnie zajmuje mi 90 minut) stąd też zmuszony byłem ją obciąć z 50 slajdów do 27 ![]()
Ciekawe jakie są refleksje po spotkaniu ? Wiktor Gworek stwierdził, że dyskusja podczas prezentacji nie była zbyt dobrym rozwiązaniem z uwagi na fakt, że “wchodziliśmy sobie w słowo”. Hmmmm sam nie wiem, ogólnie lubię tego typu dyskusje ![]()
Ja jedynie żałuję, że nie odpalił mi się przykład z Jackiem Laskowskim w roli głównej, napisałem go w nocy dzień przed prezentacją, był to szybki pomysł na prostą prezentację możliwości JavaFX w dodatku mogło być dużo dobrej zabawy przy implementowaniu “transformacji” Jacka
Oto kod tego przykładu wraz z linkiem do JavaFXPada w którym możecie sobie go uruchomić, i np. poćwiczyć transformacje jak choćby sprawić żeby Jacek chodził trochę “wygięty” (miałem do tego stosowny komentarz ale zostawię go dla siebie) ![]()
No nic, trudno - chłopakowi się upiekło, jego szczęście
package animationdemo;
import javafx.ui.canvas.*;
import javafx.ui.*;
class Model {
attribute xpos:Number;
}
Group {
var model = Model
transform:
[Translate {
x: bind model.xpos
}]
content: [
ImageView {
image: Image {
url: "http://www.holewa.org/images/JacekLaskowski.jpg"
}
},Line {
x1: 60
x2: 60
y1: 140
y2: 300
stroke: black
strokeWidth: 7
},Line {
x1: 60
x2: 100
y1: 200
y2: 250
stroke: black
strokeWidth: 7
},Line {
x1: 60
x2: 20
y1: 200
y2: 250
stroke: black
strokeWidth: 7
},Line {
x1: 60
x2: 100
y1: 300
y2: 450
stroke: black
strokeWidth: 7
},Line {
x1: 60
x2: 20
y1: 300
y2: 450
stroke: black
strokeWidth: 7
}, Ellipse {
cx: 53
cy: 102
stroke: red
fill: red
radiusX: 10
radiusY: 5
}]
onMouseClicked: operation(e) {
model.xpos = [1..500] dur 2000 linear;
}
};
Jeśli macie jakieś odczucia po mojej prezentacji czy to dobre czy złe to byłbym wdzięczny za podzielenie się nimi, pozwoli mi to przygotować się jeszcze lepiej do kolejnego mojego większego wystąpienia, które będę miał w Szczecinie 10 marca. Będzie to wystąpienie na konferencji organizowanej przez Szczecin JUG.
JavaPolis 2007 - podsumowanie
To była świetna konferencja. Ilość osób jakie poznałem i mogłem wymienić z nimi poglądy była ogromna, szkoda tylko, że nie pamiętam nazwisk wszystkich z nich
Ilość zdarzeń/przygód jakie mi się przytrafiły przez ten tydzień też była duża, może nawet zbyt duża :/
Ze wszystkich spotkań które miałem, najbardziej zadowolony jestem nie z tych które były moimi “prywatnymi”, a z tych które mogą coś wnieść do polskiego community, czyli spotkania z Magdą Gołdyń oraz spotkania z Aaronem Houstonem, czy też rozmową z Reggiem Hutchersonem. Bardzo dobrą wiadomością był fakt, iż ludzie z Suna zaczynają dostrzegać, że u nas w kraju się coś dzieje. Jest szansa na coraz większy udział Suna w imprezach organizowanych w Polsce, a co za tym idzie zorganizowanie community z prawdziwego zdarzenia. Oczywiście to wszystko zależy od zaangażowania ludzi w rozwój community, tu muszę przyznać, że Stephan zorganizował to bardzo dobrze w BeJUG, zarówno Parleys.com jak i JavaPolis to duże przedsięwzięcia. Z rozmów z ludźmi którzy organizują JavaPolis dowiedziałem się, że tak dużą konferencję organizuje tak naprawdę tylko 10 osób !!! Tak, tylko 10 i jestem pełen podziwu biorąc pod uwagę rozmiar i ilość osób zaangażowanych w przedsięwzięcia które widziałem do tej pory
Belgia to mały kraj jednak przykład BeJUG pokazuje, że nawet w tak małym kraju można organizować największe w Europie przedsięwzięcia
Dobra teraz coś o samej konferencji, stała ona głównie pod znakiem trzech tematów, dwóch dotyczących RIA, czyli Java FX i Adobe Flex oraz nowego języka (może stwierdzenie “nowy” nie jest zbytnio na miejscu) o nazwie Scala, o którym wspominali najwięksi (Josh Bloch, James Gosling). Osobiście jeśli chodzi o Java FX i Adobe Flex to obydwie technologie mi się podobają i myślę, że obie będą miały swoje własne miejsce, co do Scali to ciągle nie mogę znaleźć na tyle czasu aby, poświęcić jej zadowalającą jego ilość
Wszystkie prezentacje (a było ich naprawdę wiele) będą dostępne w internecie na Parleys.com, wspominając o Parleys.com warto dodać, że zmieni ono swoją postać w ciągu najbliższych miesięcy. Będzie to (o ile już nie jest) największe źródło materiałów z javowych konferencji w internecie, dodatkowo wszyscy będą mogli umieszczać swoje materiały (video, podcasty etc.), wniosek prosty - muszę wyposażyć się w szybsze łącze
Strasznie mało było o wykorzystaniu AJAX`a (jak na boom który był jakiś czas temu), może to dlatego, że jednak technologie typu Java FX, Flex czy Silverlight zdają się przyjemniejsze i bardziej “produktywne” od AJAX`a. Tak wiem, pojawią się odmienne zdania jednak ja prezentuję tutaj swoje i jestem otwarty na wszelkie dyskusje…
Na konferencji nie mogło zabraknąć innych języków na JVM, były dwie prezentacje o JRuby i jedna o Groovy (zaprosiłem Guillaume do Krakowa). Były też frameworki : Wicket 2, Struts 2, GWT czy też Seam, była prezentacja o Java Server Faces 2.0. Wszystko to dawało pewien obraz jak kształtują się technologie webowe w Javie, a jest ich naprawdę wiele… w chwili obecnej mamy masę rozwiązań, masę koncepcji na rozwiązanie tych samych problemów, dodatkowo ciągłe starania o to aby wszystko ulepszać, tworzyć nowe byty. Czasami zastanawiam się, ile z tych rzeczy ma naprawdę sens, podczas konferencji, na jednej z prezentacji padło stwierdzenie “learn once, work everywhere”, zastanawiam się jak to się ma do “javowej rzeczywistości”, czy jest to w ogóle możliwe ?
Nie rozpisuję się o prezentacjach, gdyż jak wspomniałem, będziecie je mogli zobaczyć w internecie, jednak nie ma to najmniejszego porównania z tym co dzieje się na JavaPolis. Oglądanie prezentacji w internecie nie dostarczy takich wrażeń, jak spotkanie tych ludzi na żywo…
Spotkanie w jednym miejscu Jamesa Goslinga, Ericha Gammy, Martina Oderskiego, Josha Blocha, Neila Gaftera i wielu, wielu innych jest tylko możliwie poprzez udział w takiej konferencji, dlatego też będę tam w przyszłym roku, właściwie to mam nadzieję, że przyjedzie nas dużo więcej z Polski…
Ehhhh, już nie mogę się tego doczekać ![]()
Nasze realia …
Dziś tak bardziej ogólnie, postaram się przedstawić swoje refleksje związane z wpisem “Polska Dolina Krzemowa - JEE 5, Ruby on Rails, AJAX, Spring” zamieszczonym na wortalu Java Developers Network przez Gabriela Krupe.
Poruszono w nim temat naszej rodzimej sytuacji, zarówno projektów open source (których u nas jest jak na lekarstwo) jak i jakości kształcenia studentów informatyki. Nie mogłem ominąć tego postu z uwagi na fakt, iż już dawno zauważyłem pewną dziwną tendencję panującą na naszych uczelniach. Z własnego doświadczenia a także doświadczenia moich kolegów z innych krakowskich uczelni wiem, że na uczelniach kładzie się zbyt mały nacisk na poznawanie aktualnych rozwiązań. Nierzadkie są sytuacje gdy studenci zmuszeni są uczyć się materiału sprzed 10-15 lat który, jak wiemy w świecie nowych technologii bardzo szybko się dezaktualizuje.
Zastanawia mnie fakt dlaczego tak się dzieje, co jest tego powodem ? Najprawdopodobniej składa się na to szereg czynników z których najważniejszymi są (w moim skromnym mniemaniu :P) : niskie pensje pracowników naukowych, niskie nakłady na edukację, brak zaangażowania pracowników w proces kształcenia. Niejednokrotnie jest to też wina samych studentów, swoim zachowaniem powodują niechęć do kooperacji wśród wykładowców.
Jak to można poprawić ? W chwili obecnej postrzegam to jako błędne koło, wydaje mi się że sytuacje tą mogłaby poprawić większa dostępność firm do środowiska akademickiego, pozwalałoby to wyłaniać najlepszych studentów, dodatkowo umożliwiałoby to prowadzenie ciekawych projektów na uczelniach. A jak to się ma do realizowanych projektów open source ? Właściwie jak dla mnie to związek jest dość duży, absolwenci informatyki nie są przyzwyczajeni do działania w grupach projektowych, dodatkowo nie mają w sobie tego czegoś co posiadają studenci zagraniczni, czyli chęci robienia czegoś nie tylko dla pieniędzy ale również dla rozwoju własnych umiejętności, poszerzania wiedzy i poznawania nowych interesujących ludzi. Jak na prawie 40 milionowy kraj poziom naszych inicjatyw/projektów open source jest bardzo mizerny. Wydaje mi się że jeśli nie zmieni się sposób kształcenia i zmiana nastawienia studentów/absolwentów to nie możemy liczyć na pojawienie się większych projektów open source z naszą flagą
Na zakończenie chciałbym podkreślić, iż są to moje własne poglądy i chętnie usłyszę słowa krytyki
Chciałbym też polecić bloga Jacka Laskowskiego, nie wiem jak ten człowiek to robi ale znajduje czas na rodzinę, pracę, udział w projektach open source i jeszcze na pisanie bloga, pokazuje w ten sposób że można pogodzić to wszystko i jeszcze dobrze się bawić. Z mojej strony wielki szacunek !!!





