Today I faced small confusion how to configure my Eclipse to use JRebel with Grails 3 framework. This is step by step configuration.

  1. Get ready with your eclipse on fedora 22 and gnome shell (I’m using sts-3.7.0.RELEASE);
  2. Install Gradle IDE Plugin;
    Screenshot from 2015-09-30 10-25-49
  3. Install JRebel – it’s just a tool to autoreloading classes and spring beans ;-);
    Screenshot from 2015-10-02 10-49-40
  4. Install Groovy 2.4 support from GitHub, (eclipse 4.5 Mars);
    Screenshot from 2015-10-02 10-43-57
  5. Create your Grails 3 application
    grails create-app hello-world --profile=web
    cd hello-world
    grails
    grails> create-controller homePage
  6. Import project into eclipse;
  7. Edit gradle.build file (to add JRebel compatibility), documentation at GitHub:
    buildscript {
      repositories {
         ...
         mavenCentral()
      }
    
      dependencies {
         ...
         classpath group: 'org.zeroturnaround', name: 'gradle-jrebel-plugin', version: '1.1.2'
      }
    }
    ...
    apply plugin: 'rebel'
    ...
    build.dependsOn(generateRebel)
    
  8. Run “gradle generateRebel” -> generate rebel.xml file
    1. In eclipse, Window -> Show view -> Other -> Select Gradle -> Gradle Tasks
      Screenshot from 2015-10-02 15-06-47
    2. The file is generated under this location: build/classes/main/rebel.xml

During the next few days I will publish how to run Grails 3 with JRebel:

  1. From command line without JRebel
  2. From command line with JRebel
  3. From eclipse as a Spring Boot Application without JRebel
  4. From eclipse as a Spring Boot Application with JRebel

When I run the default eclipse STS-3.7.0 on the linux fedora 22 the look and feel is not what I’m expecting. Especially margin of tabs, button, text is too big. I’m loosing a lot of screen space because of this “nice GTK3 look”. The problem is with current GTK3 theme that is used by fedora on Gnome Shell 3.16.2. I’ve tried many different approaches to change this (editing css styles for eclipse, editing current GTK3 theme), but the simplest and the best is just to use GTK2 to run eclipse.

To achieve this, create simple bash script (like STS_GTK2.sh) in  your eclipse directory:

#!/bin/bash
export SWT_GTK3=0
./STS

Remember to make this file “runnable”:

chmod +x STS_GTK2.sh

This is how the eclipse looks before:

Screenshot from 2015-10-02 09-31-39

After:

Screenshot from 2015-10-02 09-43-05

Wczoraj założyłem sobie płatne konto na GitHub’ie, aby mój projekt edukacyjny (pisany w Symfony 1.4) posiadał kontrolę wersji – po za tym przyda mi się to w pracy zawodowej. Wcześniej używałem SVN lub CVS, i w zasadzie zupełnie przez przypadek zacząłem używać GIT’a. Skusił mnie głównie GitHub, który zajmuje się hostingiem repozytoriów – koniec z utrzymywaniem własnego serwera. Trafiłem tam przy okazji czytania na temat Warszawa JUG (http://github.com/warszawajug). Przyjrzałem się dokładniej GitHub’owi i bardzo mi się on spodobał.Continue reading

Poniższy program został napisany na labolatoria z C++ i ma pokazać w jaki sposób klasy po sobie dziedziczą

Co to jest dziedziczenie?

Często podczas tworzenia klasy napotykamy na sytuację, w której klasa ta powiększa możliwości innej klasy, nierzadko precyzując jednocześnie jej funkcjonalność. Dziedziczenie daje nam możliwość wykorzystania nowych klas w oparciu o stare klasy. Nie należy jednak traktować dziedziczenia jedynie jako sposobu na współdzielenie kodu między klasami. Dzięki mechanizmowi rzutowania możliwe jest interpretowanie obiektu klasy tak, jakby był obiektem klasy z której się wywodzi. Umożliwia to skonstruowanie szeregu klas wywodzących się z tej samej klasy i korzystanie w przejrzysty i spójny sposób z ich wspólnych możliwości. Należy dodać, że dziedziczenie jest jednym z czterech elementów programowania obiektowego (obok abstrakcji, enkapsulacji i polimorfizmu).Continue reading

Kolejny projekt przedmiot Programowanie Obiektowe. Zadanie brzmi następująco:

Stworzyć klasę modelującą zbiór elementów np. zbiór
A = { 1, 12, 16, 4, 5, 7, 7, 12, 3}

Umożliwić operacje na obiektach tej klasy, takie jak np.:

  1. suma zbiorów: suma A i B = { 0, 1, 4, 5, 8, 12, 16 }
  2. część wspólna: część wspólna A i B = { 5, 16 }
  3. wyprowadzania na urządzenie zewnętrzne
  4. wczytywania z urządzenia zewnętrznego.

Oraz inne operacje.

Przetestować podaną klasę.

Przygotowałem następującą klasę. Wiem, że ma ona kilka błędów i mogła by być doskonalsza. Niestety zabrakło mi już czasu na poprawki. Sesja trwa a przedmioty trzeba zaliczać ;)
Continue reading