Add the JSF Bootstrap Render to your Page to view the JSF Messages in Bootstrap Style.
Here you can find the Code Snippets.
Sonntag, 8. September 2013
Sonntag, 28. April 2013
Fit to Parent in JavaFx
Versucht man mit JavaFx und SceneBuilder UIs zu zeichnen und die einzelnen Fragmente per Code zusammen zuführen, funktioniert das mit den Anchor nicht outofthebox. Die Anchor Attribute müssen beim einzufügenden Fragment händisch ergänzt werden.
Java Enum#parseFrom
How the parse an enum from an constant?
Mittwoch, 31. Oktober 2012
Taskfokusiertes arbeiten oder Wie wir die Zeit anhalten
Wer kennt das Problem nicht. Man sitzt im Büro, eigentlich hätte man ja genug Arbeit, aber irgendwie kommt man mit der zu erledigenden Arbeit nicht weiter.
Das hat natürlich unterschiedliche Gründe:
Zu alle dem gibt es auch noch Routine-aufgaben die auch zu erledigen sind. Diese Aufgaben sind oft nicht klar aufgelistet und dennoch müssen wir diese Aufgaben erledigen, und selbstverständlich haben auch diese einen Fertigstellungstermin.
Auf jeden Fall scheint alles Zeit getrieben. Somit muss es einen nicht verwundern wenn einige die Ansicht vertreten, sie hätten zu wenig Zeit.
Jedoch hängt die Sichtweise auf das offensichtliche Problem immer vom Blickwinkel des Betrachters ab. Wir sollten unsere Ansicht zu dem Thema gründlich überdenken.
Halten wir doch einfach einmal die Zeit an!
Nicht das wie es am Ende aussieht sollte uns im Moment wichtig sein, sondern die nächste Aufgabe welche wir erledigen müssen um das Endergebnis zu erreichen.
Die Umstellung von dem zeit getriebenen Arbeiten auf Aufgaben fokussiertes Arbeiten hilft uns hierbei.
Machen sie sich frei, schnappen sie sich eine Aufgabe und arbeiten sie diese ab. Haben sie die Aufgabe erledigt haben sie sich eine Pause verdient. Dann geht es wieder weiter.
Es gibt verschiedene Techniken wie man einen konstanten Durchsatz beim Aufgaben fokussierten Arbeiten erreicht.
Das hat natürlich unterschiedliche Gründe:
- Arbeit muss immer wieder unterbrochen werden
- Ständig kommen neue Anforderungen dazu
- Wir können uns schwer auf eine Sache konzentrieren
Zu alle dem gibt es auch noch Routine-aufgaben die auch zu erledigen sind. Diese Aufgaben sind oft nicht klar aufgelistet und dennoch müssen wir diese Aufgaben erledigen, und selbstverständlich haben auch diese einen Fertigstellungstermin.
Auf jeden Fall scheint alles Zeit getrieben. Somit muss es einen nicht verwundern wenn einige die Ansicht vertreten, sie hätten zu wenig Zeit.
Jedoch hängt die Sichtweise auf das offensichtliche Problem immer vom Blickwinkel des Betrachters ab. Wir sollten unsere Ansicht zu dem Thema gründlich überdenken.
Halten wir doch einfach einmal die Zeit an!
Nicht das wie es am Ende aussieht sollte uns im Moment wichtig sein, sondern die nächste Aufgabe welche wir erledigen müssen um das Endergebnis zu erreichen.
Die Umstellung von dem zeit getriebenen Arbeiten auf Aufgaben fokussiertes Arbeiten hilft uns hierbei.
Machen sie sich frei, schnappen sie sich eine Aufgabe und arbeiten sie diese ab. Haben sie die Aufgabe erledigt haben sie sich eine Pause verdient. Dann geht es wieder weiter.
Es gibt verschiedene Techniken wie man einen konstanten Durchsatz beim Aufgaben fokussierten Arbeiten erreicht.
- TODO dazu werde ich einen weiteren Beitrag schreiben.
- TODO dazu werde ich einen weiteren Beitrag schreiben.
Montag, 27. August 2012
Arduino Roboter
Nun habe ich endlich mein neues Spielzeug erhalten und musste auch gleich damit beginnen einen “LineFollower” zu basteln. Hier mal ein Video vom fertigen Roboter:
Roboter
Schematischer Aufbau
Und anschließend noch der Code:
//motor RIGHT connected between A01 and A02
//motor LEFT connected between B01 and B02
int STBY = 10; //standby
//Motor A
int PWMA = 3; //Speed control
int AIN1 = 9; //Direction
int AIN2 = 8; //Direction
//Motor B
int PWMB = 5; //Speed control
int BIN1 = 11; //Direction
int BIN2 = 12; //Direction
int RIGHT = 2;
int LEFT = 1;
int QRE1113_LEFT = 2;
int QRE1113_RIGHT = 4;
int schwellwert = 400;
void setup(){
pinMode(STBY, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
Serial.begin(9600);
stop();
delay(5000);
}
void loop(){
// Lesen der Sensorwerte
Serial.println("--");
int QRE_Value_LEFT = readQD(LEFT);
Serial.println(QRE_Value_LEFT);
int QRE_Value_RIGHT = readQD(RIGHT);
Serial.println(QRE_Value_RIGHT);
// Falls beide Sensoren schwarzen Untergrund liefern geradeaus
// fahren
if(QRE_Value_LEFT >= schwellwert && QRE_Value_RIGHT >= schwellwert)
{
Serial.println("forward");
move(LEFT, 200, 1);
move(RIGHT, 200, 1);
} else if (QRE_Value_LEFT < schwellwert && QRE_Value_RIGHT< schwellwert) {
stop(); // Überarbeiten
if(QRE_Value_LEFT<QRE_Value_RIGHT){
Serial.println("sharp RIGHT");
while(readQD(RIGHT)<schwellwert) {
move(LEFT, 150, 1);
move(RIGHT, 150, 0);
}
} else {
Serial.println("sharp LEFT");
while(readQD(LEFT)<schwellwert) {
move(LEFT, 150, 0);
move(RIGHT, 150, 1);
}
}
stop();
} else {
if(QRE_Value_LEFT<QRE_Value_RIGHT){
Serial.println("RIGHT");
move(RIGHT, 100, 1);
move(LEFT, 200, 1);
} else {
Serial.println("LEFT");
move(LEFT, 100, 1);
move(RIGHT, 200, 1);
}
}
delay(5);
}
int readQD(int motor){
//Returns value from the QRE1113
//Lower numbers mean more refleacive
//More than 3000 means nothing was reflected.
int QRE1113_Pin = QRE1113_RIGHT;
if(motor == LEFT){
QRE1113_Pin = QRE1113_LEFT;
}
pinMode( QRE1113_Pin, OUTPUT );
digitalWrite( QRE1113_Pin, HIGH );
delayMicroseconds(10);
pinMode( QRE1113_Pin, INPUT );
long time = micros();
//time how long the input is HIGH, but quit after 3ms as nothing happens after that
while (digitalRead(QRE1113_Pin) == HIGH && micros() - time < 3000);
int diff = micros() - time;
pinMode( QRE1113_Pin, OUTPUT );
digitalWrite( QRE1113_Pin, LOW );
return diff;
}
void move(int motor, int speed, int direction){
//Move specific motor at speed and direction
//motor: 0 for B 1 for A
//speed: 0 is off, and 255 is full speed
//direction: 0 clockwise, 1 counter-clockwise
digitalWrite(STBY, HIGH); //disable standby
boolean inPin1 = LOW;
boolean inPin2 = HIGH;
if(direction == 1){
inPin1 = HIGH;
inPin2 = LOW;
}
if(motor == LEFT){
digitalWrite(AIN1, inPin1);
digitalWrite(AIN2, inPin2);
analogWrite(PWMA, speed);
}else{
digitalWrite(BIN1, inPin1);
digitalWrite(BIN2, inPin2);
analogWrite(PWMB, speed);
}
}
void stop(){
//enable standby
digitalWrite(STBY, LOW);
move(LEFT, 0, 1);
move(RIGHT, 0, 1);
}
Donnerstag, 29. März 2012
Mockito: Mock a JspWriter
How to Mock a JspWriter to move the appended text to a StringBuilder?
Here we are :-)
Here we are :-)
Groovy: Analyse Accesslogs
Analyse access logs with groovy. Compare a special behaviour on two different files.
pattern = ~/.*\\/(.*\.jsp).*/
data = new HashMap()
calculate("c:/P7_ARCTIS_access_log.2012_01_31%2336[1]", 0);
calculate("c:/P7_ARCTIS_access_log.2012_03_23%2336[1]", 1);
def calculate(filename, i) {
def file = new File(filename);
file.eachLine{line ->
if(line.contains(".jsp")) {
m = line=~pattern
def jsp = m[0][1]
if(!data.containsKey(jsp)) {
data.put(jsp, [0,0]);
}
int[] werte = data.get(jsp);
werte[i] = werte[i]+1;
data.put(jsp, werte);
}
}
}
println data
Here we are!
Abonnieren
Posts (Atom)
