18Nov/1211

Amazon Partnerprogramm Umsätze richtig versteuern und buchen

Das Amazon Partnerprogramm ist eine nette Möglichkeit, um Webseiten oder Blogs zu monetarisieren. Da das Unternehmen allerdings im EU-Ausland sitzt, sind einige Dinge zu beachten bevor man sich an dem kleinen Nebenverdienst erfreuen kann. Amazon Partnerprogramm Weiterlesen...

16Nov/121

Neue Firmware für das Samsung Galaxy S – Cyanogenmod 10

Wie Samsung Galaxy Sviele Androidler der ersten Stunde, bin auch ich stolzer Besitzer des schon etwas in die Jahre gekommenen Samsung Galaxy S (I-9000). Da die Updates für das Modell in letzter Zeit immer seltener wurden und einige Sicherheitsprobleme bestehen (siehe Hintergründe), habe ich mich nach einer alternativen Firmware umgeschaut.

Cyanogenmod

Schnell bin ich über Cyanogenmod gestolpert. Dies ist eine freie Custom-Firmware, welche auf den aktuellen Google Quellen basiert und um einige sinnvolle Features ergänzt wird. Zusätzlich hat diese den Vorteil, dass auch ältere Modell unterstützt werden wie z.B. das Samsung Galaxy S. So kommt man in den Genuss der neuesten Android Features und Bugfixes, ohne auf den Hersteller angewiesen zu sein. Weiterlesen...

6Nov/122

Digitale Signatur via Elster für privat und geschäftlich

Vor zwei Wochen erhielt ich ein Schreiben von meinem Finanzamt, dass ab dem 01.01.2013 Umsatzsteuer-Voranmeldung, der Antrag auf Dauerfristverlängerung, die Anmeldung einer Sondervorauszahlung, die Zusammenfassende Meldung und die Lohnsteuer-Anmeldung zwingend authentifiziert elektronisch übermittelt werden müssen.

ElsterOnlineDa ich dies bisher ohne Zertifikat erledigt hatte, folgte ich den Anweisungen im Schreiben und erstellte mir mein Software-Zertifikat. Dazu registrierte ich mich kostenlos für das ELSTER-Basis Paket und wählte, da ich nebenberuflich als Einzelunternehmer selbständig bin, das Organisationszertifikat.

Nach der Registrierung stellte sich mir allerdings die Frage, ob ich für meine privaten Steuererklärungen ein separates (persönliches) Zertifikat erstellen muss. Die Suche im Netz und bei Elster Online ergab leider nicht das erhoffte Ergebnis, sodass ich im Elster-Forum ein entsprechendes Posting absetzte und prompt Antwort erhielt.

Um es kurz zu machen: es reicht ein Zertifikat.

Das Zertifikat stellt nur sicher, von wem die Steuererklärung abgeschickt wurde und wer somit für die gemachten Angaben verantwortlich ist. Somit ist es egal, ob ich als Privatperson oder als Unternehmen das Zertifikat beantrage - es kann für beide Zwecke eingesetzt werden. Es ist sogar möglich, mit einem Zertifikat für mehrere Steuernummern eine Erklärung abzugeben.

Die Finanzverwaltung empfiehlt allerdings für Privatleute und Einzelunternehmer ein privates Zertifikat, und für Firmen, Gesellschaften und Vereine ein Organisatonszertifikat zu erstellen. Somit hätte in meinem Fall auch ein persönliches Zertifikat vollkommen ausgereicht. Privatleute können wählen ob sie sich mit ihrer Identifikationsnummer oder mit der Steuernummer registrieren wollen. Erstere wird von der Finanzverwaltung empfohlen, da diese in Zukunft noch zusätzliche Funktionen bieten soll. Bei dem Organisationszertifikat ist eine Registrierung ausschließlich mit der Steuernummer möglich.

Bei der Wahl des Elster-Pakets reicht es für Privatleute und kleinere bis mittelständische Unternehmen in der Regel aus, dass kostenlose Elster-Basis Paket (Softwarezertifikat) zu wählen.

Es dauerte übrigens ca. 2 Wochen bis ich den Authentifizierungscode per Post erhielt und konnte damit die Registrierung abschließen und mein Software-Zertifikat herunterladen.

16Sep/121

CnMemory Zinc 1TB USB 3.0, externe 2,5 Zoll Festplatte im Test

Neulich habe ich Ausschau nach einer neuen externen 2,5" Festplatte gehalten, die man mal eben schnell irgendwohin mitnehmen kann und nicht viel Platz benötigt. Prompt bin ich über die 1TB Festplatte Zinc von CnMemory gestolpert. Nach kurzer Recherche im Netz habe ich mir diese dann gekauft und will euch kurz über meine Erfahrungen berichten. Weiterlesen...

2Aug/127

Infinite Scroll with Lightword and working social buttons

[Update]It seems that there is a problem with the latest version of the plugin. So keep in mind, that the following steps only work with the 2.0b2 version![/Update]

Today I've tried to use the very nice Infinite Scroll Plugin that allows automatic loading of additional posts as soon as the user reaches the last post on the blog. So there's no need for paging to old posts anymore - sweet. Although the developer says it should work out of the box for most of the themes, it didn't work for mine - Lightword :).

First, you have to configure the so called Selectors that will target the html elements that will be modified by Infinite Scroll. Without correctly configured Selectors, lazy loading won't work. For the Lightword theme, the following Selectors worked for me:

  • Content Selector: #content-body
  • Posts Selector: #content div.post
  • Navigation Selector: div.newer_older
  • Next Page Selector: div.newer_older span.older a

You can configure those Selectors under Settings/Infinite Scroll. Besides the Generel tab, there is the Selector tab. After that, on-demand loading should work when you reach the last post on the blog. Continue reading...

18Jul/126

WD TV Live HD Streaming Media Player, 3. Generation

Als Besitzer des WD TV Live der ersten Generation musste ich nun feststellen, dass Western Digitial anscheinend Modellpflege betrieben hat. Mit dem aktuellen WD TV Live - HD Streaming Media Player hat Western Digitial dem guten, zuverlässigen WD TV Live Media Player nicht nur ein Facelift verpasst, sondern diesem auch neue Funktionen hinzugefügt.WD TV Live HD Streaming

So waren bisher Funktionen wie z.B. MovieSheets, USB-Hub Support, Webfrontend, Android App Support u.ä. nur mit einer Custom Firmware a la WDLXTV möglich. Wollte man zusätzlich Plugins verwenden, musste man sich allerdings für eine ältere (Custom) Firmware Version entscheiden und schmerzhafterweise auf neuere Funktionen wie z.B. MKV Header Compression verzichten.

Die neue Version des WD TV Live (3Gen) scheint nun einige der o.g. Funktionen bereits in der original Firmware mitzuliefern und macht für die meisten Anwender den Einsatz einer Custom Firmware überflüssig. Dieser Erfahrungsbericht soll ein paar Einblicke in die neuen Features bieten. Weiterlesen...

12Jul/120

Oracle still treats empty string as null

It is really a joke that Oracle still treats empty (zero length) strings as null, even in the year 2012! Recently I came (again) across this fact when we were adding support for Oracle 11g in our application.

I was shocked that this is still an issue. Although they may had their reasons in the past, this is really annoying nowadays. I can't understand why they didn't make a cut a some point, made the default SQL92 compliant and added an option for the legacy systems. If you don't know what I'm talking about:

When you have an Entity that has a String attribute, put an empty String ("") into it and persist it. When you read it back this String attribute is now null instead of ""! This leads to unfunny side-effects especially when you're already supporting other databases like MySQL, MSSQL or PostgreSQL where this isn't an issue. Be prepared to re-check queries, required attributes and JSF pages.

How are you handling the situation? Is there a new option I'm probably not aware of?

9Jul/120

CDI BeforeShutdown Event not fired

Ever wondered why the JEE6 CDI Event BeforeShutdown isn't fired when the container shuts down as described in its javadoc?

Well, this is because it's one of the container lifecycle events that are not accessible for normal CDI managed beans. To get access to these special events, your implementation has to be an CDI Extension.

First, implement the Extension interface:

package org.nightprogrammer.examples.cdi;
 
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.BeforeShutdown;
import javax.enterprise.inject.spi.Extension;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class BeforeShutdownTest implements Extension {
 
	private static final Logger log = LoggerFactory.getLogger(BeforeShutdownTest.class);
 
	public void onShutdown(@Observes BeforeShutdown beforeShutdownEvent) {
		log.debug("shutdown event received!");
	}
}

Second, create a META-INF/services/javax.enterprise.inject.spi.Extension file containing the full qualified classname of your Extension:

org.nightprogrammer.examples.cdi.BeforeShutdownTest

That's it! Now you receive the Event as soon as the container goes down. Would be great if the javadoc would mention that directly in the BeforeShutdown Event though. That would have saved me an hour of research :(.

What do you use for cleaning up resources before a container shuts down?

(Besides contextDestroyed() for webapps and addShutdownHook() for JavaSE applications.)

Tagged as: CDI, Events No Comments
11Jun/123

Paypal “Spenden” Button, Steuern, Gebühren und wie verbuchen?

Jeder hat ihn schon einmal gesehen: den Paypal Spenden Button. Häufig findet man ihn auf den Webseiten irgendwelcher OpenSource Projekte, WordPress Plugins oder auch auf dem einen oder anderen Blog. Vielen ist aber nicht bewusst, dass es sich dabei meistens nicht um eine Spende im rechtlichen Sinne handelt. Wer in Deutschland Spenden erhalten will, muss dazu eine anerkannte gemeinnützige Organisation wie z.B. ein eingetragener Verein, eine Kirche oder eine politische Partei sein. Erst dann kann eine Spende vom Spender via Spendenquittung steuerlich geltend gemacht werden.

Ist man also keine gemeinnützige Organisation, sind solche "Spenden" als normale Betriebseinnahmen zu sehen und die darin enthaltene Umsatzsteuer an das Finanzamt abzuführen. Eine Spendenquittung darf man folglich nicht ausstellen und auch der Spender kann die "Spende" nicht steuerlich geltend machen. Je nach Art der Lieferung oder Leistungen ist ein Gewerbe oder eine freiberufliche Tätigkeit anzumelden. Auch "Spenden" für Freeware oder Donationware sind da keine Ausnahme! Weiterlesen...

16Apr/120

base64 encode and decode using JDK

Ever asked yourself why the JDK isn't shipped with a builtin base64 encoder/decoder? Well, since JDK 6 there is one - although it's quite buried: javax.xml.bind.DatatypeConverter.

Usage is quite simple:

// encode byte[] to base64 String
String myBase64String = DatatypeConverter.printBase64Binary(myByteData);
// decode base64 String to byte[]
byte[] myByteData = DatatypeConverter.parseBase64Binary(myBase64String);

So no need to add a thirdparty library just for decoding/encoding base64 anymore.

Tagged as: base64, jdk No Comments