Sunday, 21 August 2011
Da an anscheinend viele Leute nicht wissen, dass man mit Strg+F nach Wörtern suchen kann, hier mal eine Übersicht der wichtigsten Tastenkombinationen:
Strg + a
Den gesamten Text markieren.
Strg + x
Markierten Text ausschneiden.
Strg + c
Markierten Text kopieren.
Strg + v
Text einfügen der vorher ausgeschnitten oder kopiert wurde.
Strg + f
Auf der aktuellen Seite, im aktuellen Dokument suchen.
Strg + h
Suchen nach und ersetzen durch.
Strg + z
Die letzte Aktion rückgänig machen.
Strg + y
Wiederherstellen (Rückgängig machen rückgänig machen).
Tags: tastenkombination
Posted in Allgemein | Comments Off
Saturday, 30 July 2011
Mein Android-Uploader für FruPic ist (soweit) fertig. FruPic ist ein Programm mit dem man Bilder von seinem Android auf den Bilder-Upload-Service von Frubar hochladen kann.
Download: FruPic-20110730.apk Github
Source: Github
Android Market: FruPic
Tags: android, Java
Posted in Allgemein | Comments Off
Saturday, 25 June 2011
Mit ghostscript und folgendem Befehl kann man bunte PDF-Dateien in schwarz-weiß konvertieren:
gs -sOutputFile=output.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -sEPSCrop input.pdf
Tags: konsole, konvertieren, pdf
Posted in Allgemein | Comments Off
Wednesday, 13 April 2011
Unter Ubuntu kann man entfernte Laufwerke z.B. via SSH komfortabel einbinden.
Ein kleines Beispiel wie man z.B. das Heimverzeichnis meiner Hochschule einbindet:
Ort -> Verbindung zu Server

Posted in Allgemein | Comments Off
Monday, 18 October 2010
Kleiner Hack um sich mittels Tasten in Gallery2-Alben vor- und zurückzubewegen:
vim /gallery2/themes/matrix/templates/photo.tpl
Dort die redundante Navigationsleiste auskommentieren:
{* if !empty($theme.navigator) *}
{*
<div class="gbBlock gcBackground2 gbNavigator">
{g->block type="core.Navigator" navigator=$theme.navigator reverseOrder=true}
</div>
*}
{* /if *}
Die Navigationsleiste bearbeiten:
vim /gallery2/modules/core/templates/blocks/Navigator.tpl
<a href="{g->url params=$navigator.next.urlParams}" class="next" accesskey=".">
(...)
</a>
(...)
<a href="{g->url params=$navigator.back.urlParams}" class="previous" accesskey=",">
(...)
</a>
In diesem Fall bewegt man sich mit der Komma-Taste zurück und mit der Punkt-Taste vorwärts. Siehe accesskey.
Posted in Allgemein | Comments Off
Saturday, 20 March 2010
join-Statements mit Zend DB:
/*
* $db = a valid Zend_DB resource
* table1: foo (short: t1)
* table2: bar (short: t2)
* columns: column1, column2, column3
*/
$select = $db->select()
->from( array('t1' => 'foo'), // table name
array('t1.column1', 't1.column2', 't1.column3')) // selected columns
->join( array('t2' => 'bar'), 't1.column1 = t2.column1') // JOIN bar t2 ON t1.column1 = t2.column1
->where('t2.user_id = ?', $var) // WHERE t2.userid = '$var'
->order('t1.column ASC'); // ORDER BY t1.column ASC
Tags: Mysql, PHP, PostgreSQL, zend-framework
Posted in Allgemein | Comments Off
Friday, 29 January 2010
Um mit mplayer Screenshots eines laufenden Videos zu erstellen, fügt man folgende Zeile in ~/.mplayer/config ein:
vf-add=screenshot
Jetzt können Screenshots mit s erstellt werden. Sie werden im Arbeitsverzeichnis gespeichert.
Output bei erfolgreicher Aktion:
*** screenshot 'shot0001.png' ***
Tags: mplayer
Posted in Allgemein | Comments Off
Monday, 11 January 2010
Bei mehreren header-Dateien die sich untereinander referenzieren und einem Hauptprogramm dass beide inkludiert kann es zu Fehleren wie diesen kommen:
media.h:15: Fehler: Redefinition von »class Media«
media.h:16: Fehler: vorherige Definition von »class Media«
Um diese Fehler zu vermeiden kann man sich einer Präprozessorabfrage bedienen. In diesem Fall heisst die Datei container.h:
#ifndef CONTAINER_H
#define CONTAINER_H
// code
#endif
Eclipse etc. machen das automatisch, aber es soll ja noch Leute geben die vim benutzen. ;-)
Prevent multiple definitions in header files
Tags: c
Posted in Allgemein | Comments Off
Tuesday, 7 July 2009
Beispielprogramm für verkettete Listen / stacks: Ein Programm, das beliebig viele Punkte einlesen und in einer verketteten Liste abspeichert. Beim Aufruf hat der Benutzer die Wahl neue Punkte einzugeben oder die bisherigen ausgeben zu lassen (in dem Fall werden sie auch aus dem stack gelöscht). Der stack soll/darf ausschließlich über die Funktionen pop() und push() bearbeitet werden.
/**
* Datei: pointStack.c
* Funktionen vom Stack Programm
*
* Rainer Hihn
*/
#include "pointStack.h"
/**
* globale Variable, die auf das
* oberste Element des Stacks zeigt
*/
STACK_POINT_PTR stackTop = NULL;
void push(POINT pushPoint)
{
/**
* temporaere Variable
*/
STACK_POINT_PTR stackPoint = (STACK_POINT_PTR) malloc(sizeof(STACK_POINT));
/**
* debugging
* printf("%d \n", stackPoint);
*/
/**
* Abbruchbedingung, falls zu wenig Speicher zur Verfuegung steht
*/
if(stackPoint == NULL)
{
printf("nicht genug Speicher zur Verfuegung ... Ende \n");
exit(1);
}
/*
* Punnkt speichern und
* stackTop auf den aktuellen Wert setzen
*/
stackPoint->p = pushPoint;
stackPoint->next = stackTop;
stackTop = stackPoint;
return;
}
POINT pop()
{
/**
* stackTop und nextStackTop
* zwischenspeichern
*/
STACK_POINT firstStackPoint = *stackTop;
/**
* Speicher vom obersten
* Stack-Element freigeben
*/
/**
* debugging
* printf("%d \n", stackTop);
*/
free(stackTop);
/**
* stackTop auf das ehemals
* zweite Element des Stacks setzen
*/
stackTop = firstStackPoint.next;
/**
* Punkte vom ehemals ersten Element
* zurueckgeben
*/
return firstStackPoint.p;
}
int isEmpty()
{
/**
* wenn next auf NULL zeigt
* dann ist dies das letzte Element
* des Stacks
* und es wird '1' zurueckgegeben
*/
if(stackTop == NULL)
{
return 1;
}
else {
return 0;
}
}
void printStackElement(POINT aPoint)
{
printf("Punkt x: %f, Punkt y: %f, Punkt z: %f \n", aPoint.rX, aPoint.rY, aPoint.rZ);
return;
}
/**
* Datei: pointStack.h
* Headerdatei fuer Stack Programm
*
* Rainer Hihn
*/
#include
#include
/*
* structs
*/
/*
* struct fuer die Koordinaten
*/
struct point
{
float rX;
float rY;
float rZ;
};
typedef struct point POINT;
struct stackPoint
{
POINT p;
struct stackPoint *next;
};
typedef struct stackPoint STACK_POINT;
typedef STACK_POINT *STACK_POINT_PTR;
/*
* Funktionen
*/
void push(POINT pushPoint);
POINT pop();
int isEmpty();
void printStackElement(POINT aPoint);
/***********************
* Datei: stackmain.c
* Speichern einer Menge von Punkten
*
* Rainer Hihn
*/
#include "pointStack.h"
void exit(int);
POINT readPoint()
{
POINT userPoint;
printf("Bitte x-Koordinate eingeben \n");
scanf("%62f", &userPoint.rX);
printf("Bitte y-Koordinate eingeben \n");
scanf("%62f", &userPoint.rY);
printf("Bitte z-Koordinate eingeben \n");
scanf("%62f", &userPoint.rZ);
return userPoint;
}
int main(void)
{
/**
* Variablendeklaration
*/
char cCmd;
printf("’p’ fuer Punkt eingeben, ’q’ fuer Ausgabe: \n");
while(1)
{
scanf("%c", &cCmd);
if(cCmd == 'p')
{
push(readPoint());
printf("’p’ fuer Punkt eingeben, ’q’ fuer Ausgabe: \n");
}
if(cCmd == 'q')
{
while(!isEmpty())
{
printStackElement(pop());
}
break;
}
}
return 0;
}
Tags: c, stack
Posted in Allgemein | Comments Off
Thursday, 18 June 2009
Mit folgendem Befehl kann man mit 7zip split archives erstellen:
7z a -v5M test.7z foo1/
Erstellt 5MB große Archive aus dem Ordner foo1/
Tags: 7z, konsole
Posted in Allgemein | Comments Off