Kategorien
IT-Recht

Unterschiede beim Urheberrecht auf Software, Marken und Design

Allgemein besitzt jeder, der eine geistige Leistung vollbringt ein Urheberrecht auf seine geistige Leistung.

Das Urheberrecht gilt automatisch als Schutz von Geistesschöpfungen bei

  • Software, Bildern und Fotos

Das Urheberrecht gilt nicht für

  • Marken, Design und technische Erfindungen.

Für diese Gruppen muss ein Marke/Geschmacksmuster/Patent angemeldet werden. Bedingung ist, dass die zu schützende Sache gewerblich nutzbar ist, sonst ist keine Anmeldung möglich.

Anmeldung einer Marke

Die Kosten:

  • einfache nationale Anmeldung in D: 300€ (gilt für 3 von 44 wählbare Branchen)
  • nationale Anmeldung in D: 4400€ (für alle 44 Branchen)
  • einfache europäische Anmeldung: 1800€

Empfehlung: Erst national anmelden, weil dann auch andere europäische gesicherte Marken danach in D nicht tätig werden können. Da Deutschland der größte Wirtschaftsraum ist in der EU, lohnt sich für andere eine europäische Marke anzumelden bedeutend weniger.

Außerdem sollte vorher geprüft werden, ob eine Marke national oder europäisch angemeldet ist, da das Patentamt dies vor der Anmeldung nicht selber macht: dpma.de.

Anmeldung einer Marke in Berlin: Patentamt Hallesches Tor Berlin

Tip zur Recherche: Die Daten in den Online Datenbanksystemen sind bis zu 6 Wochen alt, nur in den Computer Terminals des Patentamtes können aktuelle Informationen eingesehen werden oder man beauftragt eine Patent- oder Markenanwalt, der dann für 400€ bis 1000€ zum Halleschen Tor fährt 🙂

Wer hat Recht bei gleichen Unternehmensnamen?

Es gibt 4 verschiedene Gründe das Recht auf einen Namen zu besitzen:

  1. Namen eines Unternehmens oder einer Privatperson
  2. eine angemeldete Marke
  3. ein Unternehmenskennzeichen
  4. eine Domain

Die ersten 3 sind dabei gleichberechtigt, die Domain zählt rechtlich weniger.

Es gilt, wer nachweislich zuerst ein Recht erworben hat, auch wenn er mit dem Namen geboren wurde, kann andere abmahnen.Es bringt also nichts, wenn sich andere die Weltmarke „Sebastian Viereck“ schützen lassen. In dem Fall könnte ich dagegeben rechtlich vorgehen:)

Wie finde ich heraus, ob schon jemand einen bestimmten Namen nutzt?

Das ist schwierig mit 100% iger Sicherheit zu sagen. Es hilft dabei das Handelsregister und Google (verlinke ich jetzt mal nicht).

 

Dieser Artikel ersetzt keine Rechtsberatung beim Anwalt und es wird auch nicht für die Richtigkeit gehaftet. Ich empfehle einen IT-Recht Anwalt zu kontaktieren: Kanzlei Bilk & Keil.

Kategorien
IT-Recht

Vertragsarten im IT-Business

Ein Vertrag kann auf drei Arten zustande kommen im IT-Business, dabei ist die Wertigkeit wie hier beschrieben (Individualvertrag zählt stärker als AGBs):

  1. Individualvertrag
  2. Allgemeine Geschäftsbedingungen/Nutzungsbestimmungen
  3. Gesetze z.B: Urheberrecht

1. Individualvertrag

  • Dienstvertrag: kein Erfolg nötig
  • Werksvertrag: Erfolg nötig

Verkauf von Software

  • Kaufvertrag
  • urheberrechtliche Nutzung

Wichtig: Durch das Kaufrecht hat der Kunde ein Recht auf Gewährleistung, damit die ganze Software nicht neu geschrieben werden soll auf Kundenwunsch, muss dieser Satz eingebaut werden in den Vertrag:

„Auf nachfolgenden Vertrag soll Werkvertragsrecht angewendet werden.“

2.1. Allgemeine Geschäftsbedingungen

  • kein Zwang für AGBs, wenn keine Vorhanden gilt das Gesetz (z.B. Gewährleistung)
  • wichtige Regeln sollten nicht in die AGBs, weil einzelne AGB Paragraphen schnell unwirksam geanwaltet werden können 🙂
  • AGBs können komplett unwirksam sein, wenn ein wichtiger Paragraph falsch ist
  • Achtung: Überschriften in den AGBs und Verträgen sind rechtlich nicht relevant! Also wenn Werksvertrag darüber steht und im Text ein Dienstvertrag geregelt wird, ist es ein Dienstvertrag.
Kategorien
IT-Recht

Was sind personenbezogene Daten?

„Personenbezogene Daten sind Einzelangaben über persönliche oder sachliche Verhältnisse einer bestimmten oder bestimmbaren natürlichen Person (Betroffener).“ (BDSG §3 Abs. 1).

Wenn ich nur  … speichere, sind das schon personenbezogene Daten?

Der Nachname? Ja, weil z.B. „Schmidt“ oder „Al Gaddafi“ auf die ethnische Herkunft schließen lassen könnte.

Der Vorname? Ja, weil man auf das Geschlecht schließen kann.

Die Adresse? Ja, weil darüber (vollkommen legal: Geoscoring) die Bonität von Stadtbezirken ermittelt werden kann.

Die E-Mail Adresse? Nicht geklärt, weil über Websuche zuordenbar.

Die IP-Adresse? Ja. Bei Anonymisierung nicht, wenn die letzten 3 Zahlen genullt werden.

Pseudonyme? Nein, Zauberelfe und alterSack84 sind keine personenbezogenen Daten.

Worauf muss beim Speichern von personenbezogenen Daten geachtet werden?

  • der User muss einwilligen zum Speichern der Daten oder es liegt eine gesetzliche Grundlage dafür vor (Grundsatz der Gesetzmäßigkeit)
  • so wenig Daten wie nötig (Grundsatz der Datensparsamkeit/Datenvermeidung)
  • verständliche Beschreibung, wofür die Daten gespeichert werden (Grundsatz der Normenklarheit)
  • Nutzung der Daten nur für den vorgesehenen Zweck (Grundsatz der Zweckbindung)
  • die Einwilligung muss schriftlich erfolgen (immer gegeben im Internet)

Datenschutzbedingungen

  • das Kopieren von anderen Seiten ist verboten (Urheberrecht)
  • ab 10 Mitarbeiter muss es einen Datenschutzbeauftragten geben mit Sachkenntnis und rechtlichem Wissen (meist Informatiker)

Dieser Artikel ersetzt keine Rechtsberatung beim Anwalt und es wird auch nicht für die Richtigkeit gehaftet. Ich empfehle einen IT-Recht Anwalt zu kontaktieren: Kanzlei Bilk & Keil.

Kategorien
IT-Recht XT-Commerce

Buttonlösung Gesetzesänderung für Online Shops

Bis zum 01.08.2012 müssen Onlinehändler, die über ihren Online Shop (auch) an Endkunden Produkte verkaufen, die Vorgaben der so genannten Buttonlösung umsetzen auf der finalen Seite, auf der der Verbraucher seine Bestellung auslöst.

  1. Erfüllung erweiterter Informationspflichten
  2. Gestaltung des Bestellbuttons

Bei einer Missachtung der Gesetzänderung handelt der Onlinehändler wettbewerbswidrig. Bei falscher Beschriftung des Button kommt kein Vertrag mit dem Kunden zustande.

Für die Schweiz/Österreich gilt der deutsche Gesetzesentwurf auch, sofern sich das Angebot auch an deutsche Kunden richtet: siehe Buttonlösung Schweiz.

1. Erfüllung erweiterter Informationspflichten

Es muss klar und verständlich (deutlich hervorgehoben) für den Verbraucher dargestellt werden, wenn

  • markanten Produktmerkmale
  • Angabe der Mindestlaufzeit von Verträgen (wenn vorhanden)
  • „den Gesamtpreis der Ware oder Dienstleistung einschließlich aller damit verbundenen Preisbestandteile sowie alle über den Unternehmer abgeführten Steuern oder, wenn kein genauer Preis angegeben werden kann, seine Berechnungsgrundlage, die dem Verbraucher eine Überprüfung des Preises ermöglicht“
  • Angabe aller Versandkosten und Zusatzkosten (z.B: Zoll): „gegebenenfalls zusätzlich anfallende Liefer- und Versandkosten sowie einen Hinweis auf mögliche weitere Steuern oder Kosten, die nicht über den Unternehmer abgeführt oder von ihm in Rechnung gestellt werden“
  • die Befristung bei zeitlich beschränkten Angeboten

Der genaue Gesetzestext: § 1 Informationspflichten bei Fernabsatzverträgen.

2. Der Button auf der finalen Verkaufsabschlusseite

Der Button muss unterhalb der in Punkt 1 benannten Informationen platziert sein und nicht mehrmals auf der Seite vorkommen. Zwischen diesen Informationen dürfen keine weiteren sichtbaren Elemente platziert werden, wie z.B: Checkboxen oder Input-Felder.

Die Button sollte folgender Maßen beschriftet sein ohne weitere Zusätze:

  • Zahlungspflichtig bestellen (Musterbeschriftung vom Gesetzgeber)
  • Kaufen
  • Kostenpflichtig bestellen
  • Zahlungspflichtigen Vertrag schließen
  • Kauf abschließen

Unzulässige Beschriftungen:

  • Bestellung absenden
  • Weiter
  • Bestellen
  • Entscheiden Sie sich für uns!
  • Kauf abschließen und sich verwöhnen lassen

Beispiel für eine erfolgreiche Umsetzung der neuen Regelungen: zeedee-shop.com

empfehlenswerte weiterführende Lektüre: Leitenfaden Buttonlösung IT-Recht Kanzlei München.

Dieser Artikel ersetzt keine Rechtsberatung beim Anwalt und es wird auch nicht für die Richtigkeit gehaftet. Ich empfehle einen IT-Recht Anwalt zu kontaktieren: Kanzlei Bilk & Keil.

Kategorien
Android Mobil

Android Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to https://dl-ssl.google.com refused

Bei folgender Fehlermeldung Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to https://dl-ssl.google.com refused hat bei mir folgendes geholfen:

Testen der XML Webseite

https://dl-ssl.google.com/android/repository/addons_list-1.xml

wenn die Seite im Browser ohne Probleme angezeigt wird (es steht Text da, keine Fehlermeldung), muss man folgende Schritte unternehmen:

Firewall konfigurieren

  • Firewall deaktivieren, bzw. Ausnahme für SDK Manager.exe hinzufügen (das war es bei mir)

Force https aktivieren

  • starten des sdk managers (nicht aus Eclipse heraus!): C:\Program Files (x86)\Android\android-sdk\SDK Manager.exe
  • Tools/Options
  • ankreuzen: force https:// ….

Installieren von SDK Paketen

Damit die SDK Dateien korrekt installiert werden können, muss die SDK Manager.exe als Administrator gestartet werden: rechte Maustaste auf die Datei und als Administrator ausführen.

Kategorien
iPhone/iOS

iTunes kopiert keine Musik auf iPhone

Ich hatte das Problem, dass ich einen neuen PC gekauft hatte und iTunes neu installieren musste. Danach hat iTunes keine Musik  mehr auf mein Handy rüber ziehen/kopieren. Der Trick war, die Option „Musik und Videos manuell verwalten“ zu aktivieren in iTunes.

iTunes Musik manuell kopieren aktivieren
Kategorien
PHP

PHP Rätsel: Wieso hat das Umlaute Array nur 35 Einträge?

Ich arbeite gerade an einer Funktion mit der man String, die mit PHP htmlentities() Funktion Umgewandelt worden sind:

Rauml;tsel

zurück zu wandeln in

Rätsel

weil jemand die Werte so in die Datenbank gespeichert hat, wahrscheinlich ich 🙂

Dazu hab ich die folgende Funktion gebaut, die mir komischerweise ein Array durchläuft, dass nicht die Werte beinhaltet, die man erwarten würde:

HtmlEntitesReplacer::displayHtmlEntities();
class HtmlEntitesReplacer
{

    public static function displayHtmlEntities()
    {
        $i = 0;
        $umlaute = HtmlEntitesReplacer::getUmlauteArray();
        echo "Das Umlaute Array hat ".count($umlaute)." Werte<br>";
        foreach($umlaute  as $umlautFalsch  =>$umlaut)
        {
            $htmlEnties = str_replace("&amp;", "&amp;amp;",htmlentities($umlaut));
            echo "$i) $umlautFalsch <=> $htmlEnties' <=> $umlaut <br> ";
            $i++;
        }
        die();
    }

    private function getUmlauteArray()
    {
        return array(
            'ü'=>'ü',
            'ä'=>'ä',
            'ö'=>'ö',
            'Ö'=>'Ö',
            'ß'=>'ß',
            'Ã '=>'à',
            'á'=>'á',
            'â'=>'â',
            'ã'=>'ã',
            'ù'=>'ù',
            'ú'=>'ú',
            'û'=>'û',
            'Ù'=>'Ù',
            'Ú'=>'Ú',
            'Û'=>'Û',
            'Ü'=>'Ü',
            'ò'=>'ò',
            'ó'=>'ó',
            'ô'=>'ô',
            'è'=>'è',
            'é'=>'é',
            'ê'=>'ê',
            'ë'=>'ë',
            'À'=>'À',
            'Á'=>'Á',
            'Â'=>'Â',
            'Ã'=>'Ã',
            'Ä'=>'Ä',
            'Ã…'=>'Å',
            'Ç'=>'Ç',
            'È'=>'È',
            'É'=>'É',
            'Ê'=>'Ê',
            'Ë'=>'Ë',
            'ÃŒ'=>'Ì',
            'Í'=>'Í',
            'ÃŽ'=>'Î',
            'Ï'=>'Ï',
            'Ñ'=>'Ñ',
            'Ã’'=>'Ò',
            'Ó'=>'Ó',
            'Ô'=>'Ô',
            'Õ'=>'Õ',
            'Ø'=>'Ø',
            'Ã¥'=>'å',
            'æ'=>'æ',
            'ç'=>'ç',
            'ì'=>'ì',
            'í'=>'í',
            'î'=>'î',
            'ï'=>'ï',
            'ð'=>'ð',
            'ñ'=>'ñ',
            'õ'=>'õ',
            'ø'=>'ø',
            'ý'=>'ý',
            'ÿ'=>'ÿ',
            '€'=>'€'
        );
    }

kommt bei der Ausgabe nur auf i=34, obwohl es 57 Sonderzeichen von der Methode getUmlauteArray() zurückgegeben werden.

Kategorien
PHP

Google Shopping API: gshoppingcontent-php für PHP 5.2 downgraden

Eine kleine Veränderungen der Hauptdatei der Google Shopping Bibliothek gshoppingcontent-php macht die Bibliothek auch unter PHP kleiner 5.3. nutzbar:

einfach ab Zeile 54 die Definition der Konstanten ändern, da nur PHP>5.2 die Defintion von Konstanten mit const ausserhalb von Klassen erlaubt:

define('CLIENTLOGIN_URI' , 'https://www.google.com/accounts/ClientLogin');

/**
 * Service name for ClientLogin.
 **/
define('CLIENTLOGIN_SVC' , 'structuredcontent');

/**
 * Auth scope for authorizing against the Content API for Shopping.
 **/
define('OAUTH_SCOPE' , 'https://www.googleapis.com/auth/structuredcontent');

/**
 * User Agent string for all requests.
 **/
define('USER_AGENT' , 'scapi-php');

/**
 * Base API URI.
 **/
define('BASE' , 'https://content.googleapis.com/content/v1/');

/**
 * Google's endpoint for OAuth 2.0 authentication.
 **/
define('AUTH_URI' , 'https://accounts.google.com/o/oauth2/auth');

/**
 * Google's endpoint for exchanging OAuth 2.0 tokens
 **/
define('TOKEN_URI' , 'https://accounts.google.com/o/oauth2/token');

/**
 * Google's endpoint for revoking OAuth 2.0 tokens
 **/
define('REVOKE_URI' , 'https://accounts.google.com/o/oauth2/revoke');
Kategorien
Diverses Web Frontend

Google Adsense zeigt keine Werbung an Bad Request 400

Ich hatte auf meiner Verdienst-Webseite das Problem, dass ich 5 Adsense Werbebanner in verschiedenen Formaten eingefügt habe. Davon haben 2 Werbebanner nicht funktioniert und auf dem Firefox konnte man sehen, dass die BannerJavascripte mit Fehlercode 400 Bad Request geladen wurden.

Adsense Bad Request 400 mit Firebug-Plugin

Um das Problem zu lösen, habe ich alle nicht angezeigten Banner entfernt aus der Webseite und einzeln wieder eingefügt. Das Ergebnis war, dass ein Skyscraper-Banner nicht funktioniert hat, weil es teilweise unter einem anderen angezeigt wurde und deswegen nicht geladen wurde.

Die Lösung ist also das böse Banner zu finden und alle anderen funktionieren nach dem Entfernen des Übeltäters.

Kategorien
C++

Einführung in C++ – Klassen: Vererbung, Adjustment, Friends, abstrakt – Teil5

Vererbung

Klassen können Funktionen und Member-Variablen vererben an anderen Klassen.

Class A{
public:
 void f();
};
Class B : public A{};//B erbt public von A
B* b = new B;
b.f(); //Funktion ist vorhanden, da geerbt