Kategorien
Hardware Webdeveloper Tools

Beispiel für einen ergonomischen Arbeitsplatz für Programmierer

Ergonomischer Arbeitsplatz

Mein Arbeitsplatz als Programmierer habe ich mir nach eigenen Vorstellungen ergonomisch eingerichtet um entspannt und komfortabel arbeiten zu können und möglichst produktiv zu sein.

Mein Arbeitsplatz besteht aus den Komponenten:

  1. höhenverstellbarer Tisch (elektrisch)
  2. Fußpedale
  3. ergonomische Tastatur
  4. ergonomische Maus mit Mauskissen
  5. Xbox Kinect Kamera
  6. Laptop mit Docking Station
  7. 2 TFT-Monitore
Kategorien
CSS

3 Spalten Layout mit fixer Breite

<div class='links'></div>
<div class='mitte'>
</div><div class='rechts'></div>
.links {
    background-color: #CCCCCC;
    width: 253px;
    float: left;
}
.mitte
{
    float: left;
    background-color: #8D8D8D;
    width: 253px;

}
.rechts {
    float: right;
    background-color: #CCCCCC;
    width: 253px;
}
Kategorien
Amazon MWS

MWS Products API wird ersetzt durch Amazon Product Advertising API (PA-API)

Am 6. Februar gab es diese Email von Amazon:

Amazon Marketplace Web Service (Amazon MWS) is pleased to announce the availability of the new Amazon MWS Products API section. The Amazon MWS Products API section will replace the Amazon Product Advertising API (PA-API) as the means for sellers to obtain sourcing, listing matching, and pricing information for offering products on Amazon marketplace sites. PA-API will be discontinued for Amazon sellers use on August 31, 2012.

Das bedeutet, dass alle Operationen umgestellt werden müssen, die mit der alten Products Advertising API für Sellers zu tun haben. Davon unbeeindruckt ist die Amazon Product Advertising API (PA-API) für Affiliate User, d.h. diejenigen, die Werbung damit schalten un Geld verdienen. Daran wird sich auch so schnell nichts mehr ändern, weil Amazon ein Interesse hat, diese Benutzer nicht zu verlieren.

Eine sehr gute Übersicht über die Unterschiede von Seller und Affiliate gibt es hier.

Kategorien
VBA Excel

VBA Makro für Mac und Windows

Bei den Betriebssystem MAC OS und Windows gibt es kleine aber feine Unterschiede, die bei der Programmierung beachtet werden müssen. Mit der folgenden Funktion kann Unterschieden werden zwischen beiden:

Function isMac() As Boolean
isMac = False
If InStr(Application.OperatingSystem, "Macintosh") Then
        isMac = True
    End If
End Function

Unterschied 1: Zeilenumbrüche entfernen

If (isMac()) Then
    zeilenumbruch = 13
Else
    zeilenumbruch = 10
End If

ActiveSheet.UsedRange.Replace Chr(zeilenumbruch), ""

Unterschied 2: Datei-Pfade

sheetName = ActiveSheet.Name
    If (isMac()) Then
        sheetPath = ActiveWorkbook.Path & ":"
    Else
        sheetPath = ActiveWorkbook.Path & "\"
    End If
    
    ActiveWorkbook.SaveAs Filename:= _
         sheetPath & sheetName & ".txt" _
        , FileFormat:=xlText, CreateBackup:=False

 

 

Kategorien
VBA Excel

VBA Excel: Das Makro kann nicht ausgeführt werden.

Bei einer Fehlermeldung wie:

Das Makro 'foo.xls!makro1' kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbietsmappe nicht verfügbar, oder alle Makros wurden deaktiviert.

Sollte man erst die Sicherheitseinstellungen bezüglich Makros checken und danach überprüfen, ob das Makro auch in einem separaten Modul gespeichert ist und nicht in der Arbeitsmappe.

Vielleicht auch interessant für MS Excel Makro Spezialisten: Der Makro Speed Up Guide

Kategorien
VBA Excel

VBA Excel: dynamischen Erzeugen von Ranges für Diagramme

Zum dynamischen Erzeugen von Diagrammen, muss man manchmal dynamischen Ranges aufbauen, wenn z.B: Zeilen ausgelassen werden sollen, weil diese einen Nullwert oder sonstiges enthalten. Dann kann mit der folgenden Funktion die XValues-Range erzeugt werden aus den zuvor bestimmten Zeilennummern:

Function getRange(ByVal spaltenBuchstabe, ByVal zeilenNummern, ByVal anzahlDaten) As String
    getRange = "="
    For i = 0 To anzahlDaten - 1
        getRange = getRange & "'SheetName'!$" & spaltenBuchstabe& "$" & zeilenNummern(i) & ":$" & spaltenBuchstabe& "$" & zeilenNummern(i)
        If Not i >= anzahlDaten - 1 Then
            getRange = getRange & ","
        End If
    Next
    rangeString = rangeString & ""
End Function

rangeDaten = getRange("B", zeilenNummern, anzahlDaten)
ActiveChart.SeriesCollection(1).Values =rangeDaten 

Kategorien
Amazon MWS PHP

Amazon MWS: SellerSKUList failed a validation check: Extraneous whitespace for input value

Bei folgender Fehler Meldung bei  der Amazon MWS API:

Fatal error: Uncaught exception 'MarketplaceWebServiceProducts_Exception' with message 'parameter SellerSKUList.SellerSKU.x failed a validation check: Extraneous whitespace for input value: "64145345473 "' in foo\\MarketplaceWebServiceProducts\Client.php on line 533
MarketplaceWebServiceProducts_Exception: parameter SellerSKUList.SellerSKU.x failed a validation check: Extraneous whitespace for input value: "64145345473 " in foo\MarketplaceWebServiceProducts\Client.php on line 533

War die Lösung, wie die Fehlermeldung schon sagt, die Whitespaces zu entfernen mit trim:

                for($i = 0; $i < count($skus); $i++)
                {
                    $skus[$i] = trim($skus[$i]);
                }

Komischerweise funktioniert das nicht in PHP mit:

array_walk($skus, "trim");

oder

function trim_value(&$value) 
{ 
    $value = trim($value); 
}
array_walk($skus, 'trim_value');
Kategorien
PHP Zend Framework

Internationalisierung/Mehrsprachigkeit von PHP Projekten mit .po und .mo

Für ein mehrsprachiges PHP Projekt sollte man von Anfang an alle Wörter auslagern bzw. markieren, die in einer anderen Sprache übersetzt werden sollen. Dazu bietet sich die in PHP enthaltene Funktion gettext an:

<?php echo gettext("Einen schönen Tag noch"); ?>

oder der Alias (welcher nicht zu empfehlen ist, weil man nicht danach zu kann ordentlich)

<?php echo _("Einen schönen Tag noch"); ?>

Damit kann man zu übersetzenden Text markieren und später übersetzen lassen und dann dynamisch austauschen lassen , wenn auf der englischen Webseiten gesurft wird.

Wenn man sein Projekt mit gettext programmiert hat, kann man am Ende ganz einfach tabellenartige Dateien generieren aus dem Quellcode mit Poedit. Dort kann mann sehr übersichtlich die Übersetzung der Strings eintragen bis hin zu Pluralformen von Wörtern.

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.