jar.camp() – wrażenia
Miałem szczęście znaleźć się wśród pierwszych 65 osób, które zgłosiły się po darmowe wejściówki na pilotowy jar.camp(). Jako, że patronat nad imprezą objął Metrosoft poza wykładami na stylowej barce (alrina.pl) można było spodziewać się napitku oraz poczęstunku.
Na początek zdziwienie – na miejscu stawiło się tylko ok. 20 osób. Nie zraziło to jednak organizatorów i wykłady zaczęły się planowo. Jako pierwszy mówił Radosław Urbaś z Sabre. Opowiedział on o podstawach OSGi oraz Jigsaw w przystępny sposób przedstawiając idee oraz zasady działania tych rozwiązań. Ci, którzy uczęszczali na wykłady dr Byrskiego (Techniki obiektowe i komponentowe) mogli spokojnie pominąć tę prelekcję i skupić się na kanapeczkach.
Kolejne dwa wykłady bardziej mnie zaciekawiły. Łukasz Picur opowiedział o projekcie Lambda, czyli wprowadzeniu do Javy wyrażeń Lambda. Jest to bardzo ciekawa i zaawansowana w realizacji inicjatywa, chociaż w C# wygląda to nieznacznie lepiej. Więcej o projekcie znajdziecie tutaj. Bloga, którego Piotrek współtworzy, możecie obejrzeć pod tym adresem.
Ostatnim prelegentem był Piotr Łaskawiec z Metrosoft. Przedstawił potencjał drzemiący w JVM, przechodząc poprzez architekturę, po przez możliwości i tuning. Brzmi to może trochę sucho, ale wykład był ciekawy i dotyczył nawet takich nowinek jak The Garbage-First (G1) garbage collector.
Niewątpliwie jar.camp() jest imprezą, którą warto obserwować. Ma potencjał, a wsparcie Metrosoftu sprawia, że warto się na niej pojawić chociaż na darmowe piwo i luźną dyskusję o programowaniu.
Więcej o imprezie na stronie jarcamp.pl.
UJ Google Pizza Party 2012 – wrażenia
Wykład organizowany przez giganta z Ameryki cieszył się dużym zainteresowaniem i sporych rozmiarów aula została zapełniona po brzegi. Motywem przewodnim tegorocznego spotkania były staże w Google, a opowiedzieli o nich sami stażyści. Pięć osób (dwie z UJ oraz trzy z AGH) mówiło o miejscach pracy, rekrutacji i zaletach stażu, a także ogólnie o tym czym się zajmowały w czasie jego trwania.
Poza tym w ciągu 1,5 godziny znalazł się czas na rady jak przygotować się do rekrutacji, konkurs wiedzy o Google z drobnymi upominkami (długopisy, okulary, notesy, termosy i czapki) oraz pytania z widowni do stażystów i pracowników. Po wszystkim przyjechała tytułowa pizza, na którą chyba nie wszyscy załapali się w pierwszej dostawie.
Myślę, że warto śledzić następne wydarzenia organizowane przez Google w Krakowie, zwłaszcza jeśli myśli się o pracy/stażu w tej firmie.
Sprawmy by to zadziałało: mpich2 + Windows 7 + Visual Studio 2008/2010 C++
Zmuszenie mpich2 do działania na Windows 7 nie zawsze jest proste. Przygotowałem zestaw kroków, które przy odrobinie szczęścia pozwolą przejść bezboleśnie przez proces konfiguracji.
Instalacja
Ściągamy plik instalacyjny ze strony www.mcs.anl.gov. Koniecznie wybieramy wersję, która odpowiada naszemu systemowi (x64 lub x86). Instalujemy.
Zmienne środowiskowe
Wchodzimy w Panel sterowania\System i zabezpieczenia\System\Zaawansowane ustawienia systemu\Zmienne środowiskowe i modyfikujemy zmienną path. Dodajemy ścieżkę do folderu bin w miejscu, gdzie zainstalowaliśmy mpich (domyślnie będzie to C:\Program Files\MPICH2\bin dla wersji x64 i C:\Program Files (x86)\MPICH2\bin dla wersji x86). Pamiętamy o oddzieleniu nowej ścieżki od pozostałych średnikiem.
Windows Defender
Dodajemy wyjątki w osłonie dla …\MPICH2\bin\mpiexec.exe oraz …\MPICH2\bin\smpd.exe.
Kontrola użytkownika
Radzę również wyłączyć kontrolę użytkownika (UAC) przynajmniej na czas konfiguracji. Możemy to zrobić w Panel sterowania\System i zabezpieczenia\Zmień ustawienia funkcji kontrola użytkownika ustawiając suwak na minimum.
Rejestracja
Uruchamiamy …\MPICH2\bin\wmpiregister.exe (najlepiej jako administrator), podajemy nazwę konta, na którym jesteśmy zalogowani oraz hasło, a następnie klikamy na Register. Wychodzimy wciskając OK. Uwaga: Nie ma możliwości zarejestrowania pustego hasła jednak nie testowałem tego problemu. Możecie napisać do mnie co zrobić w takim wypadku.
Konfiguracja
Uruchamiamy …\MPICH2\bin\wmpiconfig.exe (najlepiej jako administrator, może otwierać się kilka sekund), wybieramy port na szczycie listy (jeśli chcemy korzystać z innego portu niż domyślny wpisujemy go), następnie zatwierdzamy nasz wybór i zamykamy okno. Uwaga: wybrany port musi być otwarty i wolny.
Nowy projekt w Visual Studio
Powinniśmy teraz przetestować naszą konfigurację. Tworzymy nowy, pusty projekt C++ typu Win32 Console Application. Nazwę wybieramy dowolną (np. MPITest).
VC++ Directories
Otwieramy właściwości projektu w Visual Studio 2010, a następnie wchodzimy w Configuration Properties\VC++ Directories. Jeśli korzystamy z wersji 2008, te same ustawienia znajdziemy w Tools\Options\Projects and Solutions\Visual C++ Directories.
Dodajemy odpowiednio …\MPICH2\include do include directories oraz …\MPICH2\lib do library directories. Pamiętamy też, aby zmienić platformę na 64-bitową jeśli korzystamy z takiej wersji systemu (robimy w Configuration Manager, który znajduje się w tym samym oknie).
Hello world
Dodajemy wszystkie pliki z folderu …\MPICH2\lib o rozszerzeniem lib do folderu Resource Files oraz tworzymy plik main.cpp zawierający poniższy kod.
#include <stdio.h>
#include <mpi.h>
int main(int argc, char* argv[]) {
MPI_Init(&argc,&argv);
printf("Hello world!\n");
MPI_Finalize();
return 0;
}
Jeśli wszystko zrobiliśmy dobrze, możemy “zbudować rozwiązanie”. Klikam na Build\Build Solution i czekamy, aż na dole wyświetli się komunikat Build succeeded.
Uruchomienie programu
Tak skompilowany program możemy uruchomić na kilka sposobów, pozwolę sobie przedstawić najłatwiejszy. Uruchamiamy …\MPICH2\bin\wmpiexec.exe, wybieramy nasz MPITest.exe, określamy liczbę procesorów w zależności od liczby dostępnych i klikamy w Execute. Jeśli każdy procesor przywitał się ze światem wszystko zrobiliśmy dobrze. Gratulację.
16. Targi Książki w Krakowie – coś dla IT?
Targi Książki w Krakowie to wydarzenie warte uwagi ze względu na przygotowane promocje i spotkania z autorami. Niestety z wydawnictw oferujących ciekawe książki informatyczne pojawił się jedynie Helion. Oczywiście jest to dobre źródło fachowej literatury, jednak 10% zniżki na książki sprzedawane na targach to niewiele. Można za to zerknąć w tych dniach (25 – 28 października) na stronę wydawnictwa, gdzie wybrane pozycję można kupić o 20% taniej.
Mroczne Sekrety Twórców Gier Komputerowych VII – wrażenia z wykładów
Do Rotundy wpadłem lekko spóźniony, ale jak się okazało też o co najmniej 30 minut za wcześnie. Pierwszy wykład był przeraźliwie (pewnie stąd “mroczne sekrety”) nudną reklamą usług jednej z krakowskich firm. Sponsorowane prelekcje to nic złego, ale 40 minut rzucania ogólnikami o fantastycznych możliwościach to stanowczo za dużo.
Później przyszła kolej na reprezentanta 11 bit studios, który mówił o zaletach angażowania pracowników w zarządzanie. Przekaz był przemyślany ale skromny merytorycznie. Stan Just – prelegent – skupił się na oczywistych zaletach przekazywania części inicjatywy do pracowników. Takie informacje mógłby przedstawić każdy po 30 minutach grzebania w sieci, od kogoś aktywnego w branży spodziewałem się czegoś więcej.
Jako, że po tym wystąpieniu rozpoczęła się przerwa, skorzystałem z okazji i wraz z kolegami opuściłem lokal. Straciliśmy 1,5 godziny z czwartkowego wieczoru, ale cóż…. może za rok znowu dam szansę MSTGK, wszak była darmowa kawa, herbata i soki.
Java Killers – cz. 1
Pierwsze zestawienie zagadek dotykających różnych zawiłości językowych. Na dobry początek przedstawiam dziesięć klasycznych zagadnień wyjętych z książki “Java Puzzlers: Traps, Pitfalls, and Corner Cases”:
Własne CodeFolds w Eclipse/NetBeans IDE (czyli #region z C# w Javie)
Organizowanie kodu w regiony znane z C# od razu mi się spodobało. Zwijania fragmentów kodu w opisane bloki jest bardzo naturalne i wygodne. Oczywiście nie zgadzam się z teorią, że regiony służą do ukrywania bałaganu w programie, dla mnie jest to forma zwiększenia przejrzystości i ułatwienia dostępu do właściwej logiki.
Mniejsza jednak o motywację
Ostatnio z różnych względów piszę więcej w Javie niż w C# i trochę zatęskniłem za regionami. Oto co znalazłem w potrzebie:
NetBeans
Użytkownicy NetBeans IDE są niejako uprzywilejowani, ponieważ twórcy tego narzędzia wcześniej przewidzieli zapotrzebowanie na “regiony”. Ich użycie jest bardo proste, odsyłam więc do wiki (FaqCustomCodeFolds). Plusem jest, że po zaznaczeniu fragmentu kodu pojawia się możliwość zwinięcia go w opatrzony komentarzem blok, wystarczy wybrać odpowiednią opcję z podpowiedzi umieszczanych pomiędzy numerami wiersz.
Eclipse
Pluginy, pluginy, pluginy. Taka jest już specyfika Eclipsa. Wybrałem coffee-bytes, który dobrze spełnia swoją rolę. O instalacji i sposobie korzystania przeczytacie tutaj.
IntelliJ
Nie napisałem nic o IntelliJ IDEA, ponieważ nigdy nie używałem tego IDE (wciąż pozostaję wierny Eclipsowi
). Jednak zapewne spróbuję przekonać się do czegoś nowego i wtedy uzupełnię ten wpis o rozwiązania tam stosowane.