15. Juli 2011

The Ten Commandments for C Programmers (Annotated Edition)

The Ten Commandments for C Programmers (Annotated Edition)




The Ten Commandments for C Programmers
(Annotated Edition)

by Henry Spencer




1

Thou shalt run lint frequently and study its pronouncements with care, for verily its perception and judgement oft exceed thine.

This is still wise counsel, although many modern compilers search out many of the same sins, and there are often problems with lint being aged and infirm, or unavailable in strange lands. There are other tools, such as Saber C, useful to similar ends.
``Frequently'' means thou shouldst draw thy daily guidance from it, rather than hoping thy code will achieve lint's blessing by a sudden act of repentance at the last minute. De-linting a program which has never been linted before is often a cleaning of the stables such as thou wouldst not wish on thy worst enemies. Some observe, also, that careful heed to the words of lint can be quite helpful in debugging.

``Study'' doth not mean mindless zeal to eradicate every byte of lint output-if for no other reason, because thou just canst not shut it up about some things-but that thou should know the cause of its unhappiness and understand what worrisome sign it tries to speak of.


2

Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Clearly the holy scriptures were mis-transcribed here, as the words should have been ``null pointer'', to minimize confusion between the concept of null pointers and the macro NULL (of which more anon). Otherwise, the meaning is plain. A null pointer points to regions filled with dragons, demons, core dumps, and numberless other foul creatures, all of which delight in frolicing in thy program if thou disturb their sleep. A null pointer doth not point to a 0 of any type, despite some blasphemous old code which impiously assumes this.


3

Thou shalt cast all function arguments to the expected type if they are not of that type already, even when thou art convinced that this is unnecessary, lest they take cruel vengeance upon thee when thou least expect it.

A programmer should understand the type structure of his language, lest great misfortune befall him. Contrary to the heresies espoused by some of the dwellers on the Western Shore, `int' and `long' are not the same type. The moment of their equivalence in size and representation is short, and the agony that awaits believers in their interchangeability shall last forever and ever once 64-bit machines become common.
Also, contrary to the beliefs common among the more backward inhabitants of the Polluted Eastern Marshes, `NULL' does not have a pointer type, and must be cast to the correct type whenever it is used as a function argument.
(The words of the prophet Ansi, which permit NULL to be defined as having the type `void *', are oft taken out of context and misunderstood. The prophet was granting a special dispensation for use in cases of great hardship in wild lands. Verily, a righteous program must make its own way through the Thicket Of Types without lazily relying on this rarely-available dispensation to solve all its problems. In any event, the great deity Dmr who created C hath wisely endowed it with many types of pointers, not just one, and thus it would still be necessary to convert the prophet's NULL to the desired type.)
It may be thought that the radical new blessing of ``prototypes'' might eliminate the need for caution about argument types. Not so, brethren. Firstly, when confronted with the twisted strangeness of variable numbers of arguments, the problem returns... and he who has not kept his faith strong by repeated practice shall surely fall to this subtle trap. Secondly, the wise men have observed that reliance on prototypes doth open many doors to strange errors, and some indeed had hoped that prototypes would be decreed for purposes of error checking but would not cause implicit conversions. Lastly, reliance on prototypes causeth great difficulty in the Real World today, when many cling to the old ways and the old compilers out of desire or necessity, and no man knoweth what machine his code may be asked to run on tomorrow.



4

If thy header files fail to declare the return types of thy library functions, thou shalt declare them thyself with the most meticulous care, lest grievous harm befall thy program.

The prophet Ansi, in her wisdom, hath added that thou shouldst also scourge thy Suppliers, and demand on pain of excommunication that they produce header files that declare their library functions. For truly, only they know the precise form of the incantation appropriate to invoking their magic in the optimal way.
The prophet hath also commented that it is unwise, and leads one into the pits of damnation and subtle bugs, to attempt to declare such functions thyself when thy header files do the job right.



5

Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''.

As demonstrated by the deeds of the Great Worm, a consequence of this commandment is that robust production software should never make use of gets(), for it is truly a tool of the Devil. Thy interfaces should always inform thy servants of the bounds of thy arrays, and servants who spurn such advice or quietly fail to follow it should be dispatched forthwith to the Land Of Rm, where they can do no further harm to thee.


6

If a function be advertised to return an error code in the event of difficulties, thou shalt check for that code, yea, even though the checks triple the size of thy code and produce aches in thy typing fingers, for if thou thinkest ``it cannot happen to me'', the gods shall surely punish thee for thy arrogance.

All true believers doth wish for a better error-handling mechanism, for explicit checks of return codes are tiresome in the extreme and the temptation to omit them is great. But until the far-off day of deliverance cometh, one must walk the long and winding road with patience and care, for thy Vendor, thy Machine, and thy Software delight in surprises and think nothing of producing subtly meaningless results on the day before thy Thesis Oral or thy Big Pitch To The Client.
Occasionally, as with the ferror() feature of stdio, it is possible to defer error checking until the end when a cumulative result can be tested, and this often produceth code which is shorter and clearer. Also, even the most zealous believer should exercise some judgement when dealing with functions whose failure is totally uninteresting... but beware, for the cast to void is a two-edged sword that sheddeth thine own blood without remorse.


7

Thou shalt study thy libraries and strive not to reinvent them without cause, that thy code may be short and readable and thy days pleasant and productive.

Numberless are the unwashed heathen who scorn their libraries on various silly and spurious grounds, such as blind worship of the Little Tin God (also known as ``Efficiency''). While it is true that some features of the C libraries were ill-advised, by and large it is better and cheaper to use the works of others than to persist in re-inventing the square wheel. But thou should take the greatest of care to understand what thy libraries promise, and what they do not, lest thou rely on facilities that may vanish from under thy feet in future.


8

Thou shalt make thy program's purpose and structure clear to thy fellow man by using the One True Brace Style, even if thou likest it not, for thy creativity is better used in solving problems than in creating beautiful new impediments to understanding.

These words, alas, have caused some uncertainty among the novices and the converts, who knoweth not the ancient wisdoms. The One True Brace Style referred to is that demonstrated in the writings of the First Prophets, Kernighanand Ritchie. Often and again it is criticized by the ignorant as hard to use, when in truth it is merely somewhat difficult to learn, and thereafter is wonderfully clear and obvious, if perhaps a bit sensitive to mistakes.
While thou might think that thine own ideas of brace style lead to clearer programs, thy successors will not thank thee for it, but rather shall revile thy works and curse thy name, and word of this might get to thy next employer. Many customs in this life persist because they ease friction and promote productivity as a result of universal agreement, and whether they are precisely the optimal choices is much less important. So it is with brace style.

As a lamentable side issue, there has been some unrest from the fanatics of the Pronoun Gestapo over the use of the word ``man'' in this Commandment, for they believe that great efforts and loud shouting devoted to the ritual purification of the language will somehow redound to the benefit of the downtrodden (whose real and grievous woes tendeth to get lost amidst all that thunder and fury). When preaching the gospel to the narrow of mind and short of temper, the word ``creature'' may be substituted as a suitable pseudoBiblical term free of the taint of Political Incorrectness.


9

Thy external identifiers shall be unique in the first six characters, though this harsh discipline be irksome and the years of its necessity stretch before thee seemingly without end, lest thou tear thy hair out and go mad on that fateful day when thou desirest to make thy program run on an old system.

Though some hasty zealots cry ``not so; the Millenium is come, and this saying is obsolete and no longer need be supported'', verily there be many, many ancient systems in the world, and it is the decree of the dreaded god Murphy that thy next employment just might be on one. While thou sleepest, he plotteth against thee. Awake and take care.
It is, note carefully, not necessary that thy identifiers be limited to a length of six characters. The only requirement that the holy words place upon thee is uniqueness within the first six. This often is not so hard as the belittlers claimeth.



10

Thou shalt foreswear, renounce, and abjure the vile heresy which claimeth that ``All the world's a VAX'', and have no commerce with the benighted heathens who cling to this barbarous belief, that the days of thy program may be long even though the days of thy current machine be short.

This particular heresy bids fair to be replaced by ``All the world's a Sun'' or ``All the world's a 386'' (this latter being a particularly revolting invention of Satan), but the words apply to all such without limitation. Beware, in particular, of the subtle and terrible ``All the world's a 32-bit machine'', which is almost true today but shall cease to be so before thy resume grows too much longer.

14. Juli 2011

Visual Studio 2005: Cool Debugging Tricks

just found on the interweb:
nice tips for debugging in Visual Studio :)

Visual Studio 2005: Cool Debugging Tricks

[copy-paste]

Tip: Call Stack Window Debugging: Many developers are not aware that you can set breakpoints in the Call Stack Window (except when doing SQL debugging). Just highlight the call you want to stop on and either press F9 or right-click on the line and select Insert Breakpoint from the shortcut menu. You can also right-click on any breakpoint in the Call Stack Window to enable, disable or set the properties of the breakpoint. For those unfamiliar with the Call Stack Window, this is how you find out "how did I get here" - it enables you to go back up the call stack to find out "from where" the method that you are in was called. Not only can you see where it was called from, you can actually go "Back there" and trace the exact execution path in the debugger. Not to be an evangelist, but if you haven't discovered it yet, please do so now and "get religion".
Tip: Use Run to Cursor for one-shot breakpoints: All you need to do is right-click on the line you want and choose "Run to Cursor" from the menu, and program execution will immediately continue to the point where you are at. Many developers are not aware that this is available from both debugging and editing. In edit mode, this will actually start the debugger and run your program to the cursor location. As with breakpoints, right-clicking in the Call Stack window pops up the shortcut menu that also offers this feature.
Tip: Set sub-expression breakpoints: For example, if you have the expression:
for (int j=0; m=0;j
when debugging, and you click in the margin next to the line, the breakpoint doesn't extend on the subexpressions that do the incrementing. By placing the cursor in the j++ or m-- portion of the line and hitting F9, you can set multiple breakpoints on the subexpressions and view these as separate entries in the Breakpoints window.
Tip: Use the BreakPoints Window: If you know the name of the class and method you want to break on, you can choose New from the Breakpoints window and type it directly into the Function area of the window. Developers can spend 15 minutes wandering through their projects opening files just so they can position the cursor over a line of code and hit the F9 key to set a breakpoint. If you know the name of the class and method, doing it this way will find it and set the breakpoint. In addition, you can click it in the Breakpoints list of the window and go to the location automatically.
You can also set a breakpoint by just entering the method name, if it is unique in your application. And, if it isn't you will actually get a list of ALL the locations where the method can be found, which is extremely useful for setting multiple breakpoints on a commonly used function throughout your project. It also displays for overloaded methods in the same class.
Tip: Use the Find ComboBox: If you enter a method name in the Find Box (that's on the top menu bar, just to the right of the Configuration dropdown that reads Debug, Release, Configuration Manager) and hit F9, this will also find the method and set a breakpoint.
Tip: Use Hit Counts: In the Breakpoints window, when you right-click and choose Properties and then click the Hit Counts button, you can modify a breakpoint with four possible combinations of choices. Experiment with this to see how useful it can be. What makes this especially useful is that when you have stopped in the Debugger, it tells you how many times your breakpoint has executed. You can also create conditional expressions that will trigger the debugger only if your expression evaluates to true or has changed since the last time it was evaluated.
Tip: Use the Watch window (and its brethren): The power offered by the Watch window and its close cousins, the Quick Watch Dialog, Autos window, Locals window, and the This / Me window are what can make the difference between hopping around aimlessly all day looking for a bug and quickly solving a problem. Also, you can use any of these windows to change a variable's value by simply typing in a new value.
Tip: Break only when a specific thread calls a method: To set a per-thread breakpoint, you need to uniquely identify a particular thread that you have given a name with its Name property. You can set a conditional breakpoint for a thread by creating a conditional expression such as "ThreadToStopOn" == Thread.CurrentThread.Name .
You can manually change the name of a thread in the Watch window by watching variable "myThread" and entering a Name value for it in the value window. If you don't have a current thread variable to work with, you can use Thread.CurrentThread.Name to set the current thread's name. There is also a private integer variable in the Thread class, DONT_USE_InternalThread, this is unique to each thread. You can use the Threads window to get to the thread you want to stop on, and in the Watch window, enter Thread.CurrentThread.DONT_USE_InternalThread to see the value of it so you can create the right conditional breakpoint expression.
Tip: Use Assertion Debugging: The idea behind asserts is very simple: When you are writing code, you understand that some condition is always expected to be true. If that condition is ever not true, then there is a bug. Asserts can be written so that if this condition is ever not true, the debugger will be launched at that exact point in your code:
System.Diagnostics.Debug.Assert (myValue >=0)
The nice thing about Assert windows is that they not only give you the opportunity to break or not, they also show you the stack trace at that point. A very powerful, yet highly under-utilized feature.
[/copy-paste]


originally posted by

Peter Bromberg posted at Thursday, July 26, 2007 1:06 PM
Member PhotoOriginal Article

20. Mai 2011

Eclipse - Tomcat und Servlets o.O


Nach zwei mühseligen Tagen in denen ich mich mit VBA beschäftigen musste -.-*
und sich im Endeffekt herausstellte, dass Tabellen aus Excel nicht über das Clipboard in eine Wordvorlage eingefügt werden können,
falls zum selben Zeitpunkt ein anderes Programm läuft, welches ebenfalls das OS Clipboard verwendet (a'la TightVNC, Clipdiary, ...) oder sogar IE 8 (??? wtf? o.O)
darf ich nun mit Eclipse Java JSP Webanwendungen entwickeln :)



Dazu habe ich erstmal ein wundervolles, einfaches (schon altes aber immer noch aktuelles) Tutorial gefunden,
wie  man überhaupt Tomcat installiert.
In dem Tutorial wird auch gleich das Eclipse Plugin für tomcat von Sysdeo vorgestellt und ein einfaches HelloWorld durchexerziert.

Im Großen und Ganzen eine Viertelstunde Arbeit aber mit unglaublichem Mehrwert ^^


Für alle angehenden Java JSP Entwickler ein absolutes Muss,
für Interessierte, schaut trotzdem mal rein:
Tutorial auf keyboardsamurais.de in englisch
und natürlich in der Originalfassung auf deutch

gutes Gelingen, may the source be with you ^^
- the incredible Leitman

17. Mai 2011

Hausmonster - Kitekat Foto wettbewerb 2011

Einmal etwas anderes...


Ich brauche eure Stimmen!

Kitekat veranstaltet wieder einmal einen Fotowettbewerb.
Diesmal gibts es eine Canon EOS 1000 zu gewinnen,
sowie einen Jahresvorrat von Kitekat Produkten :-o

Aus diesem Anlass habe ich unseren kleinen Haustiger auf der Jagd abgelichtet und hochgeladen :)

BITTE gebt ihm eure Stimme, dann muss er nie wieder hungern :D


- the incredible Leitman
und sein incredible Leitmonster :D

16. Mai 2011

Die Neue...

Ich habe seit gestern einen neue, mir unterstellte Mitarbeiterin :D

Verdammt heißes Fahrgestell,
sieht Hammer aus
und macht noch dazu einen Spitzen-Kaffee
oder sogar auf Wunsch Espresso :-o


und ja...

ich liebe sie <3




Sie heißt Jura :)


Nach dir habe ich mein Leben lang gesucht.... wo warst du all die Jahre?
Ich bin so glücklich, wenn wir zusammen sind

in Liebe
- the incredible Leitman

15. Mai 2011

Bilder einfügen in Google Mail

Nur kurz ;)

Weil ich mir eben ein neues Google Mail Konto angelegt habe und keine Bilder einfügen konnte o.O

Ist schon sooo lange her, dass ich vergessen habe wo man das einstellt und ich musste danach googlen (blush)

Jedenfalls, freischalten kann man dieses "Feature" unter Einstellungen ->Labs ->Bilder werden eingefügt
Quelle 



Zum einfügen von HTML Elementen, guckst du weiter hier. ^^

10. Mai 2011

dotnet-snippets.de Gewinnspiel!

Na wer sagts denn,
wieder einmal Glück gehabt :D

Wie bereits berichtet, feiert das Entwicklerportal dotnet-snippets.de fünfjähriges Jubiläum :)
Zu gewinnen gab es tolle Preise, wie z.B. ein Visual Studio, Microsoft Office oder diverse Lernlektüren.

Und ratet mal, wer nun den zweiten Preis sein eigen nennen darf ;)

Jaaaa! Der incredible Leitman hat ein Office Professional Plus gewonnen!

Wenn mein Paket da ist, werde ich wieder Beweisfotos machen,
wie bereits bei meiner XBoX von nextgen.at die ich schon mein Eigen nennen darf ;)


EDIT:
übrigens, gratuliert mir gleich noch einmal,
das ist mein sage und schreibe 600.er Post hier auf Blogger :-o

the incredible Leitman
- wird schon bald berühmt sein

29. April 2011

5 Jahre dotnet-snippets.de :-o Happy Birthday !

Wie ich eben aus dem Softwareentwickler Blog von Carsten erfahren habe,
wird dotnet-snippets.de bereits 5 Jahre alt :-o

Ich kann gar nicht mehr zählen, wie oft ich mir von dort schon Hilfe / Informationen und codestellen geholt habe xD
Was würde ich ohne euch bloß tun Leute ^^


Jedenfalls,
auch wenn meine Gewinnchancen dadurch um eniges sinken, werde ich dennoch einen Blogeintrag darüber verfassen :)

Denn, die Betreiber von dotnetsnippet veranstalten anlässlich ihres Jubiläums ein Gewinnspiel,
bei dem man Visual Studio Professional, Office Prof. oder diverse Magazine ergattern kann :)


Eigentlich wollte ich euch ja eine kreative Geburtstagstorte (sogar mit 5 Kerzen!! für jedes Jahr eine ^.^) backen,
aber bei meiner Begabung in der Küche würde das wohl eher so aussehen :-s

Ich könnte natürlich auf für euch singen, oder tanzen,
aber das würde nun auch schon wieder zu weit führen ;)

Deshalb poste ist  einfach ein Geek-Geburtstagstortenbild welches ich auf Google gefunden habe,
mit den allerbesten Glückwünschen:

und hoffe, dass ihr die falsche Jahreszahl und den Namen einfach überseht xDDD

Alles Guuuuuute dotnet.snippets.de und nochmal 5 so erfolgreiche Jahre
mit freundlichen Grüßen

the incredible Leitman

23. April 2011

Humble Indie Bundle 3 - 5 Indie-Spiele zum "Zahl was Du willst"-Preis

Die Entwickler von Frozenbyte bieten ihre Indie-Spiele in einem ganz besonderen Paket an: Im Paket sind 5 Indie-Spiele enthalten und der Käufer entscheidet selbst, was er dafür zahlen möchte.

Auch, wenn ich den Mode Begriff "Indie Game" (steht für unabhängige Entwickler, die oft mehr Raum für kreative Ideen haben.) überhaupt nicht ausstehen kann, möchte ich hiermit das Humble Bundle 3 vorstellen :)

Wer kennt sie nicht, die revolutionären Indie Games des letzten und dieses Jahres?
"World of Goo" war ein toller Erfolg, "Minecraft" ist in aller Munde, "Machinarium" war mehr der leise Underdog und "I MAED A GAM3 W1TH Z0MB1ES!!!1" ist alleine des Titels wegen schon sehenswert,
genauso wie "AaaaaAAaaaAAAaaAAAAaAAAAA!"



Der Entwickler von Frozenbyte enthält die Indie-Spiele "Trine", "Shadowgrounds" und "Shadowgrounds: Survivor". Hinzu kommt ein Gutschein für das Spiel "Splot", das sich derzeit noch in der Entwicklung befindet. Und mit "Jack Claw" erhalten die Käufer auch noch den Prototyp eines Spiels, das Frozenbyte aber nie fertiggestellt hat.
Alle Spiele sind für Mac, Windows und Linux erhältlich. Außerdem erhalten die Käufer die Spiele ohne jeglichen Kopierschutz. Die wichtigste Besonderheit: Die Käufer dürfen selbst entscheiden, wie viel ihnen das Spiele-Paket wert ist. Zusätzlich dürfen die Käufer auch entscheiden, welcher Anteil des Geldes an die Entwickler gehen soll oder wahlweise für einen guten Zweck gespendet werden soll.
Bisher konnte Frozenbyte über das Indie-Spiele-Paket über 146.000 Male verkaufen. Im Schnitt zahlten die Käufer dabei 5,07 US-Dollar. Den höchsten Durchschnittspreis zahlten mit 11,72 US-Dollar die Linux-Nutzer, gefolgt von den Mac-Nutzern (im Schnitt 6,31 US-Dollar) und Windows-Nutzern (im Schnitt 4,06 US-Dollar). Der höchste Kaufpreis liegt derzeit bei 2000,04 US-Dollar. Die Aktion läuft noch 7 Tage.

Wen das intressiert, der schaut einfach mal auf http://www.humblebundle.com/ vorbei.
Weitere Indie Games gibt es auf PCWelt zu entdecken, in dem interessanten Beitrag "Die 15 besten Indie-Games".

17. April 2011

Wikipedia - bereit für Weltkulturerbe?

Wie Gamestar berichtet, will der Verein Wikimedia Deutschland erreichen, dass die Online-Enzyklopädie Wikipedia in das Weltkulturerbe der UNESCO aufgenommen wird.
Wikipedia : Schon Ende März hatte der Verein auf der Wikimedia Conference 2011 das Ziel angekündigt, Wikipedia in das Weltkulturerbe der UNESCO aufnehmen zu lassen. Die UNESCO ist die Organisation der Vereinten Nationen für Erziehung, Wissenschaft und Kultur und hat für die Aufnahme in das Weltkulturerbe Richtlinien aufgestellt.

So muss beispielsweise eindeutig belegt werden, warum das entsprechende Kulturgut schützenswert ist. Außerdem müsste der Antrag über die betroffenen Staaten gestellt werden, was bei Wikipedia so nicht möglich ist.
Da die Online-Enzyklopädie »ein Meisterwerk der menschlichen Schöpferkraft« und »die größte von Menschen geschaffenen Wissenssammlung als Gemeinschaftsprojekt« darstellt, ist sie laut Wikimedia auch ein zu schützendes Kulturgut. Die Aufnahme soll nun über eine Petition erreicht werden, zu deren Unterstützung noch weitere Veranstaltungen stattfinden sollen.

Die Petition hierzu will Wikipedia nach Ostern dazu starten.
Was meint ihr dazu?
Bei einer angeblichen Quote von 5 % falscher Informationen und der großen Anzahl an Wikipedia copy-pastern, wäre das ein positiver Fortschritte?

16. April 2011

Baidu im SimCity Modus :D

Der Blog Kollege Drew Josh hat eine interessante Entdeckung auf der chinesischen Suchmaschine Baidu gemacht, genauer gesagt in deren Kartendienst (das Äquivalent zu Google maps).

Dort kann man nämlich, bei hohem Zoomlevel in größeren Städten in eine 3D Modell Ansicht wechseln.

Das Ganze sieht dann ungefähr so aus:
screenshot_beijing.PNG (954×616)

oder so:



Nettes Feature :)

Wer mehr dazu sehen möchte, schaut einfach auf drewjosh.blogspot.com

Blogs und die Umwelt... - lasst uns einen Baum pflanzen :)

Fakt ist, Blogs verschmutzen die Umwelt!

... naja... vielleicht nicht unbedingt Blogs direkt, aber wie ihr freilich wisst, laufen auch die Server die diesen Blog beinhalten mit Strom ^^
Des weiteren habt ihr, werte Leser, bestimmt einen Monitor oder zumindest ein Smart Phone, mit dem ihr das jetzt überhaupt lesen könnt.

Deswegen: Fakt ist, Blogs verschmutzen die Umwelt.

Sei es nun durch den Stromverbrauch, durch den Elektromüll, der dabei herauskommt, wenn man die Hardware an den neuesten Standard anpasst oder einfach durch die ganzen beteiligten Anbieter, die zwischen dem Blog schreiben und den Lesern liegen.

Was könnt ihr / können wir dagegen tun?
Computer aus dem Fenster schmeißen, nie wieder etwas online schreiben oder gar lesen?
Tja, das fände ich unheimlich schade, würde aber bestimmt der Umwelt helfen ^^

Jedoch, dank einer Initiative von easy2sync und iplantatree.org wurde die Aktion "ein Blog, ein Baum" ins Leben gerufen :)

Will heißen, für jeden Post dieser Art und der anschließenden Verlinkung pflanzen die Anbieter einen Baum.

Auf diese Weise wurden nun so bereits über 501 Bäume gepflanzt, was einer CO2 Entnahme von über 4,24 Tonnen entspricht :)))

Mein Blog hat eine Eiche gepflanzt.

Die genauen Teilnahmebedingungen auf der Anbieterseite:
"Schreibe ein kurzes Posting in deinem Blog um deine Leser zu informieren. Verwende einen der unten stehenden Buttons in deinem Blog (z.B. im Sidebar) um Flagge zu zeigen. Sag uns bescheid (runterscrollen). Fertig. Wir pflanzen (und bezahlen) den Baum für dich.

(Das Unvermeidliche: Nur 1 Baum pro Blog. Maximal 1000 Bäume sind zu vergeben. Sorry, keine "gestern angelegte Pseudoblogs". Wir behalten uns vor bei Engpässen auf andere Baumsorten auszuweichen.)"


In diesem Sinne:
Ich wähle Eiche...  Weil SO! xD


PS: den incredible Blog kann man nun auch per Email Newsletter abonnieren ;)
Einfach rechts unter "Enter your email address" eintragen und schon erhaltet ihr bequem regelmäßig Updates von hier auf eurer Email Konto :)

openBVE - kostenloser Eisenbahn Simulator für Mac, Windows und Linux

Passend zu meinem (hoffentlich) bald abgeschlossenen Projekt der Firma RDCS,
präsentiere ich heute voller Stolz einen kostenlosen Eisenbahnsimulator für alle Betriebssysteme :)


Der OpenSource Eisenbahn-Simulator für Windows, Mac, und Linux openBVE entführt Sie kostenlos in eine realitätsnahe Simulation als Lokführer. Die Programmieren haben viel wert auf Einflüsse der Physik gelegt (Bremsen, Trägheit, etc). Nebst den Programm-Dateien benötigen Sie einige Zusatztools. Eine komplette Liste aller benötigter Software finden Sie auf der openBVE Webseite. Auf verschiedenen Fan-Seiten finden Sie zudem tolle Strecken. Es macht einfach spass, mit openBVE als Zugführer rumzudampfen. Wie erwähnt steht der Eisenbahn-Simulator kostenlos zur Verfügung. Es handelt sich um OpenSource-Software.
openBVE – ein Surftipp von www.linkorama.ch


Werbung:
Für den Fall, dass jemand das liest und zuuuufälligerweise ein Zugleitsystem mit Fahrgastinformation und mobilem Warnsystem für Arbeiterrotten brauchen kann,
hier die passende Adresse ;)

14. April 2011

QR Codes, URL Shortener und gool.gl - was ist das?

Whut QR code? o.O
Ja genau, sieht dann irgendwie so aus:

QR code
http://goo.gl/xdXmf.qr

Ursprünglich von Toyota angefordert (sagt Wikipedia), verbirgt sich dahinter ein Link.
Gebastelt aus eine quadratischen Matrix aus weißen und schwarzen Punkten und einer speziellen Markierung an den Ecken für die Interpretation für die Orientierung lassen sich damit allerhand Links erfassen,
auch von der neuen Smartphones Generation.

Wofür man sowas kommerziell verwenden kann, weiß ich leider auch nicht.
Doch man sieht sie mittlerweile beinahe überall.

Sei es als Link in diversen einschlägigen Blogs und Foren,
auf Werbeplakaten, als Aufdruck bestimmter Produkte oder einfach als Avatarbilder.


Weil das so unglaublich cool ist,
bietet der url shortener von Google goo.gl auch die Möglichkeit an, QR Codes für die gekürzten Links zu erstellen.

Und was ist schon wieder ein url shortener?
Prinzipiell nichts anderes, als ein Dienst, welcher (wie der Name schon sagt) eine angegebene url (uniform resource locator) also einen Link abkürzt :)

So wird also aus theincredibleleitman.blogspot.com/ z.B. einfach goo.gl/xdXmf was für Dienste wie Twitter einfach unglaublich praktisch ist.
(was das jetzt schon wieder ist, werde ich an dieser Stelle aber nicht erklären xD)
Auf der anderen Seite, sah man, vor allem in alten Browsern, durch solche "Kürzungen" nicht mehr, wohin der Link führt und die Anzahl der fishing Opfer (das heißt nur, dass dir irgendwer deine Daten a'la Passwörter, Kontodaten und andere Informationen klaut xD) stieg dramatisch an.
Doch mittlerweile zeigt glaub ich jeder Browser in der aktuellen Version an, wohin der Link führt,
oder schafft es mittels AddOns.


Jedoch, zurück zu goo.gl, der Dienst bietet weitaus mehr :)

So werden alles erstellten Kurzlinks, mit der ursprünglichen Verknüpfung im google Konto des Benutzers gespeichert, falls man sie vergisst :p
Zusätzlich kann man auch haufenweise Informationen dazu abrufen:
wann der Link erstellt wurde, die Anzahl der Zugriffe in einer schönen Statistik, woher die Zugriffe stammen - Land, Browser, Betriebssystem, plus eben die oben erwähnten QR Codes :)



Und weil ich grade bei Google Diensten war und deswegen nicht noch einen Post erstelle,
schreibe ich es gleich hier dazu: Google image char editor.
Damit lassen sich schnell und einfach wundervolle charts erstellen,
Diagramme, Landkarten, Barometer und vieles mehr sind kein Problem (volle Gallerie dazu hier)


So, das war jetzt aber genug,
schönen Abend noch
- der incredible Leitman

Youtube-Sperre umgehen: Mit Addons für Firefox und Chrome gesperrte Videos gucken


Das kennen wir von Youtube: “Dieses Video ist in deinem Land nicht verfügbar. Das tut uns leid”, steht dann lapidar dort, wo Belgier, Franzosen und Amis problemlos das neue Video von Lady Gaga gucken können. Bei uns bleibt der Bildschirm grau, nichts regt sich, statt dessen muss man mühselig andere Video-Portale checken oder auf verwackelte Kopien zurückgreifen. Das hat nun ein Ende: Sowohl für Firefox als auch für Chrome gibt es Erweiterungen, die die Video-Sperre umgehen und sie entsperren, so dass man blockierte Videos gucken kann.
Die Sperre hat mit dem Urheberschutz zu tun: Youtube Deutschland und die Plattenfirmen haben es nicht geschafft, sich auf eine Verteilung der Werbeeinnahmen zu einigen. Also haben die Labels Youtube das Verwenden ihrer Musik untersagt. Zuletzt gab es den gleichen Vorgang von der GEMA aus, es wurden 600 Videos gesperrt. Bei vielen Usern sorgt das immer wieder für Unverständnis – warum gibt es die Vereinbarung überall, nur in Deutschland nicht? Eine Antwort, die uns die Beteiligten seit Jahren schuldig bleiben.
So alt wie der Streit ist auch der Versuch, die Sperre zu umgehen. Dafür gab es verschiedene Vorschläge: Google Translate verwenden, die Adresszeile ändern, Proxy-Server per Hand ändern – alles eine Zeitlang möglich, dann aber auch gesperrt oder einfach zu kompliziert. Zwei Add-Ons für Firefox und Chrome versuchen da nun Abhilfe zu schaffen:

FIREFOX: YOUTUBE-SPERRE UMGEHEN MIT ADD-ON “STEALTHY”

Stealthy ist ein super nützliches kleines Firefox-Add-on, das die eigene Identität verschleiert, das automatisch einen Proxy-Server sucht und verwendet – kein eigenes Eintippen von Proxys ist mehr notwendig. Wenn man Stealthy installiert hat, muss man einfach den symbolifizierten Tarnkappenbomber rechts unten im Browser anklicken – rot steht für aus, grün für an. Zack, schon laden die Youtube-Videos. Stealthy ist auch sinnvoll, wenn man die eigene Identität im Netz verschleiern möchte oder andere Firewalls umgehen, z.B. um in China, Iran oder Vietnam gesperrte Websites wie Facebook aufzurufen.
Firefox-AddOn “Stealthy” kostenlos downloaden
Dank veränderter Proxy die Youtube-Sperre umgehen

GOOGLE CHROME: YOUTUBE-SPERRE UMGEHEN MIT ADD-ON “PROXYTUBE”

Das neueste Add-On zum Entsperren der Youtube-Videos ist “Proxytube”. Das surft im Hintergrund bei Youtube mit, und sobald man auf ein eigentlich gesperrtes Video kommt, wird es aktiv und lädt das Video über einen Proxy. Es nutzt dabei den Flow-Player von HideMyAss.com, wo man auch direkt die Youtube-Adresse eintragen kann. Aber vorsicht: Die Seite (und damit auch das Add-On) wird von Firewalls als “betrügerische Seite oder Bedrohungsquelle” klassifiziert. Vielleicht steht die Seite auf einer schwarzen Liste der Industrie, oder sie ist tatsächlich halbseiden. Insofern keine klare Empfehlung von uns, ihr handelt auf eigene Gefahr.
Chrome-AddOn “Proxytube” kostenlos downloaden
Automatisch die Youtube-Sperre umgehen via hidemyass.com
Update 31.3.: In den Kommentaren kam die Frage auf, ob das überhaupt legal ist. Wir haben dazu nochmal einen Rechtsanwalt befragt.
(Bild: Youtube-Ausriss)
(via loadblog)






EDITED: Schriftart und .größe angepasst für ein einheitlicheres Gesamtblogbild

12. April 2011

Twitter mit Blogspot / Blogger verbinden

Weil die Facebook Verlinkung so toll funktioniert,
gleich weiter das selbe in blau für euren Twitter Account :)


Um eure Blogeinträge direkt auf der sozialen Plattform zu posten,
würde ich Feedburner.com von Google (bekannt als Statistik-Tool für Feeds) empfehlen.

Dadurch könnt  ihr  auch gleich erfahren, wie viele Feed-Leser (Abonnenten) ihr habt.



Zuerst meldet ihr euch bei http://feedburner.com per Google-Konto an.
In dem Eingabefeld wird die Feed-URL vom Blog eingetragen.

Danach muss man sich durch die folgenden Settings klicken und unter anderem einen Feedburner-Namen (Feed-Adresse) festlegen.

Ein kleiner Banner (Feedcount) zum einbauen ins Blog ist ebenfalls von Feedburner zu beziehen =)
Hier sammeln sich Im Laufe der Zeit Statistiken zur weiteren Analyse an.



Nun zu Twitter:
In Feedburner kann man unter dem Menüpunkt Publizieren und Socialize (linke Seitenspalte) nun das automatische weiterleiten des Blog-Posts nach Twitter konfigurieren. (Speichern/aktivieren nicht vergessen).

Mit Feedburner kann man noch mehr machen,

schaut euch doch einfach mal dort um ;)




mit freundlichen Grüßen
- the incredible Leitman


(Blogpost sponsored by NoodleGei)

Facebook Fanpage mit Blogspot / Blogger verbinden

Willkommen auf dem incredible Blog ;)




Ich habe eben einen fantastischen Post auf Drew Josh's Blog gefunden,
den ich hiermit präsentieren möchte:




Um neue Posts von einem Blog automatisch auf Facebookseiten  zu veröffentlichen, stellt Facebook ein geniales App Names RSS Graffiti zur Verfügung. Ich möchte hier die Applikation kurz vorstellen und die wichtigsten Funktionen/Einstellungen erklären.

Um RSS Graffiti zu benutzen muss auf dem Blog ein RSS Kanel zur Verfügung stehen (bei den gängigsten Blogsystemen schon vorhanden). Am sinnvollsten ist es, wenn du eine Facebookseite mit dem Namen des Blogs erstellst. Um eine Facebook-Fan Seite zu erstellen klicke hier.

Nachdem du der Anwendung den Zugriff auf deine Facebookdaten gewährt hast, gelangst du zur Übersichtsseite, welche ungefähr so aussieht:






























In der linken Spalte erscheinen deine Facebookseiten,- und gruppen, bei denen du Administrator bist:


In dieser Spalte klickst du die Seite an, auf welcher du automatisch Neuigkeiten von deinem Blog veröffentlichen möchtest. Klickst du dann auf das Feld "+ Add feed", gelangst du zu dieser Übersicht:


Hier kannst du den Namen und die Adresse der Quelle angeben, sowie das Aussehen der Posts. Im oberen Feld kann jederzeit durch einen Klick eine Vorschau generiert werden.
In den weiteren Rubriken "Filter, Transform, Schedule und More" können noch genauere Anpassungen am Aussehen und an der Funktionalität vorgenommen werden.

Frohes Bloggen ;)

E-Mail Header auslesen

Mal wieder ein paar technische Grundlagen, die ich hier zum besten geben möchte :)

E-Mails... wahrscheinlich jeder meiner Leser kennt sie,
versendet haufenweise davon und erhält wahrscheinlich nochmal soviel als Spam ^^

Doch wie sieht eine E-Mail eigentlich aus? Wie ist sie aufgebaut?

Da ich mir das E-Mail Konzept natürlich nicht selber ausgedacht und aufgebaut habe,
brauche ich das Rad nicht zwei mal erfinden, sondern poste einfach das bereits verfügbare Wissen aus Wikipedia:


Eine Internet-E-Mail besteht aus dem Header-Abschnitt (von englisch für: „Kopfzeile“) und dem Body (dem eigentlichen Inhalt der Nachricht). Der Header enthält als Pflichtangabe lediglich eine Absenderangabe und das Datum der Erstellung der E-Mail. Darüber hinaus kann der Header einer E-Mail eine Reihe optionaler Angaben enthalten. In der Regel finden sich Informationen über den Weg, den die E-Mail genommen hat, über den Inhalt der Nachricht und deren Format sowie Angaben zu den Empfängern.
Der Header enthält keine für die technische Zustellung einer E-Mail notwendigen Informationen. Absender und Empfänger werden durch den Envelope Sender und Envelope To angegeben.
Der Aufbau einer E-Mail ist im RFC 5322 festgelegt – hier wird im Gegensatz zu vorherigen Standards nicht mehr von header gesprochen, sondern header field für den Inhalt einer einzelnen Kopfzeile undheader section für den gesamten Kopfbereich der E-Mail (alle Kopfzeilen zusammen) verwendet, um Verwirrungen zu vermeiden.

Inhaltsverzeichnis

 [Verbergen]

Darstellung und Anzeige [Bearbeiten]

Viele Empfänger interessieren sich nicht oder nur selten für alle Header-Zeilen. Deshalb zeigen die meisten Mail-Clients standardmäßig nur einen kleinen Teil der tatsächlich in der E-Mail enthaltenen Header-Zeilen an. Das sind insbesondere die Zeilen mit den Tags:
  • „From:“ – der Absender
  • „To:“ – der Empfänger
  • „Cc:“ – weitere Empfänger
  • „Subject:“ – der Betreff
  • „Date:“ – der Zeitpunkt der Erstellung
Weitere oder alle Header-Zeilen werden in der Regel nur mit der Wahl spezieller Optionen angezeigt. Diese sind je nach Mail-Client sehr unterschiedlich. Bei einigen Mail-Clients (z. B. mutt) lässt sich konfigurieren, welche Header-Zeilen standardmäßig angezeigt werden. Einige E-Mail-Clients ersetzen die Header-Tags bei der Anzeige durch eine landessprachliche Entsprechung.

Beispielmail [Bearbeiten]

In der folgenden Beispiel-E-Mail werden die Header-Informationen, die von den meisten E-Mail-Programmen angezeigt werden, blau dargestellt. Die zumeist ausgeblendeten Header-Informationen sind orange, der Body ist grau. Die erste Zeile enthält den sogenannten Envelope Sender – sie ist nicht Teil des Headers, geht ihm aber im mbox-Format voraus und wird auch sonst häufig zusammen mit den Header-Zeilen dargestellt; sie wird im Simple Mail Transfer Protocol (SMTP) nicht als Teil der Mailheader, sondern mit einem speziellen Befehl übertragen.
From alex@mailgate.exam.ple Mon Dec 4 17:02:25 2006Envelope Sender
Received: (qmail 12345 invoked by alias); Mon, 04 Dec 2006 13:51:40 +0000
Received: by server1 (Postfix, from userid 1000)
  id D344F45681; Mon, 4 Dec 2006 14:51:39 +0100 (CET)
Mehrere „Received“-Zeilen zeigen den Weg, den die E-Mail vom Sender zum Empfänger genommen hat. Jeder Server, der die Mail weiterleitet, fügt seine Kennung und das Datum am Anfang der E-Mail hinzu.
Date: Mon, 4 Dec 2006 15:51:37 +0100Absendedatum
Subject: Der Sinn des LebensBetreff der E-Mail
Message-ID: <434571BC.8070702@example.net>Eindeutige Zeichenfolge, die diese E-Mail identifiziert
From: Alex Absender Absender
To: Erwin Empfaenger Empfänger
Cc: ErwinsSekretariat Empfänger einer Kopie der E-Mail
Content-Type: text/plain; charset=ISO-8859-1Art und Zeichensatz des Body-Text
In-Reply-To: <134535224@example.com>Diese E-Mail ist eine Antwort auf die E-Mail mit dieser Message-ID
Die erste Leerzeile trennt die Kopfzeilen vom Nachrichtentext
Hallo Erwin,

wir müssen einen Termin vereinbaren.

Bis dann,
Alex
Inhalt („message body“)

Mögliche Einträge im Header [Bearbeiten]

Einträge im E-Mail-Header werden durch einen Zeilenumbruch (CRLF) voneinander getrennt. Der E-Mail-Header wird durch eine Leerzeile (CRLF CRLF) vom E-Mail-Body getrennt.

Date: Absendedatum und Uhrzeit [Bearbeiten]

Pflichtangabe nach RFC 5322. Der Zeitpunkt des Absendens der E-Mail.

From: Absender [Bearbeiten]

Pflichtangabe nach RFC 5322. Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, die den oder die Absender einer E-Mail bezeichnen. Die meisten E-Mail-Clients unterstützen nur einen einzelnen Absender.

Sender: Technischer Absender [Bearbeiten]

Ist der technische Absender ein anderer, als im From-Header bezeichnet, kann dieser im Sender-Header vermerkt werden. Das Sender-Feld darf nur eine einzelne E-Mail-Adresse enthalten. Beispiel: Die E-Mail-Adresse eines Sekretärs, der eine E-Mail nach Diktat des Chefs verschickt, gehört ins Sender-Feld. Die E-Mail-Adresse des Chefs gehört ins From-Feld. Wenn der Verfasser einer E-Mail und der technische Absender identisch sind, sollte das Sender-Feld nicht verwendet werden, sonst sollten beide (From- und Sender-Feld) verwendet werden.

Reply-To: Antwortadresse [Bearbeiten]

Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die eine Antwort auf die E-Mail geschickt werden soll (falls unterschiedlich zum From-Feld).

To: Der Empfänger [Bearbeiten]

Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die die E-Mail primär gesendet wird. Jedem Adressaten werden auch alle andren E-Mail-Adressen mitgeteilt.

CC: Carbon Copy, die Kopie [Bearbeiten]

Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die eine Kopie der E-Mail gesendet wird.
Der Begriff kommt vom früher benutzten Durchschlag. Dabei wurden beim Schreiben mit einem harten Stift oder der Schreibmaschine Kopien erstellt, indem mehrere Papierseiten mit jeweils einem Kohlepapierdazwischen übereinandergelegt wurden.
Beim Schreiben einer E-Mail wird dieses Feld verwendet, um Kopien an einen oder mehrere Empfänger zu senden. Mit einem Eintrag in diesem Feld wird gleichzeitig symbolisiert, dass diese E-Mail sich nicht direkt an diesen Benutzer wendet, sondern lediglich „zur Beachtung“ bzw. „zur Kenntnisnahme“ an ihn versendet wurde. Die Einträge im CC-Feld werden (im Gegensatz zum BCC-Feld) bei allen Empfängern angezeigt und sind somit bekannt.
Umgangssprachlich wird auch ab und an (vornehmlich in den USA) fälschlicherweise „Courtesy Copy“ als Bedeutung für CC benutzt, was soviel wie „Höflichkeitskopie“ bedeutet (courtesy „Höflichkeit“, copy„Kopie“).

BCC: Blind Carbon Copy, die Blindkopie [Bearbeiten]

Das BCC-Feld enthält eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die eine Kopie der E-Mail gesendet wird, ohne dass dies jedoch für die anderen angegebenen Empfänger sichtbar sein soll („Blindkopie“). Durch eine Blindkopie sollen die Empfänger von Rund-Mails vor der Adressen-Sammlung von bösartigen Diensten wie z. B. Spambots gesichert werden.
Da die Adressaten (also auch die BCC-Adressaten) dem Mailserver vor der Übertragung der E-Mail mitgeteilt werden, kann das Prinzip technisch einfach umgesetzt werden: BCC-Adressaten werden als Empfänger genannt, in der anschließend übermittelten E-Mail entfällt dann die BCC-Zeile oder wird verändert übertragen. Die Handhabung der BCC-Zeile ist aber nicht eindeutig vorgegeben. Je nach Implementierung im verwendeten E-Mail-Programm und der beteiligten Mailserver ergeben sich folgende Möglichkeiten:
  • Die BCC-Zeile wird vor der Übertragung vollständig aus dem Header der E-Mail entfernt. Die Nachricht wird jedoch trotzdem an alle Empfänger übermittelt. Die BCC-Empfänger sehen bei Eingang der E-Mail nicht, dass sie im BCC-Feld geführt wurden. Die Gefahr ist dann größer, dass sie versehentlich an alle Empfänger antworten und damit ihre E-Mail-Adresse und die Tatsache preisgeben, dass sie auch die E-Mail erhalten haben.
  • Die in der To- und CC-Zeile genannten Empfänger erhalten wie oben eine Kopie der E-Mail, aus welcher die BCC-Zeile entfernt wurde. Die in der BCC-Zeile aufgeführten Adressaten hingegen erhalten eine Kopie, in der die BCC-Zeile erhalten bleibt. Je nach E-Mail-Programm erhält entweder jeder BCC-Adressat eine Kopie, in der nur seine E-Mail-Adresse steht, oder alle Empfänger erhalten die gleiche BCC-Zeile. In letzterem Fall ist es Empfängern einer Blindkopie möglich, alle anderen BCC-Adressaten zu sehen.
  • Der Inhalt der BCC-Zeile wird bei der Übertragung entfernt. Personen, welche die E-Mail via BCC bekommen, können sich nicht gegenseitig identifizieren. Allen Empfängern wird aber signalisiert, dass die E-Mail zusätzlich als Blindkopie versendet wurde.
Während E-Mail-Programme und Server üblicherweise nach der ersten Variante vorgehen, sollte man sich im Zweifelsfall nicht darauf verlassen.

Subject: Der Betreff [Bearbeiten]

Das Subject (im Deutschen auch Betreff) stellt eine Beziehung des Senders und/oder des Empfängers zu einer Sache, erforderlichen Aktion oder zu einem Ereignis her. Es ist für den Empfänger eine wichtige Kurzinformation über den Inhalt der Mail und sollte daher nicht fehlen. In Anbetracht der steigenden Anzahl unerwünschter E-Mails (UBE/UCE/Spam) wächst die Bedeutung des Betreff-Felds, denn oft lassen sich unerwünschte Nachrichten bereits am Betreff erkennen.

Weitere Header-Zeilen [Bearbeiten]

Wesentlich sind weiterhin folgende Header-Zeilen:
  • Zeichensatz der E-Mail (z. B. „charset=utf-8“), damit der Empfänger auch Fremdsprachen oder Sonderzeichen im Text richtig angezeigt bekommt.
  • Content-Type, falls nicht nur reiner Text verwendet wird, bei HTML z. B. „text/html“
    • Bei gesetztem Content-Type ist auch der Mime-Type zu senden, z. B. „MIME-Version: 1.0“
Weitere Informationen werden automatisch in den Header eingefügt, sowohl vom Mailprogramm (Mail User Agent) des Absenders als auch von den an der Leitung der Mail beteiligten Mailservern (Mail Transfer Agents). So lässt sich in der Regel an den Received-Zeilen die Reihenfolge und Adresse aller am Versand beteiligten Mailserver ablesen. Weiterhin erscheinen gegebenenfalls Informationen über eine erfolgteViren-Prüfung oder Spam-Klassifizierung oder -Filterung in den Header-Zeilen der E-Mail.

Authentizität von Header-Informationen [Bearbeiten]

Wie alle Teile einer E-Mail-Nachricht werden auch Header-Zeilen nicht auf inhaltliche Korrektheit geprüft. Die dort angezeigten Informationen sind fälschbar. So setzen findige Spam-Versender in der Regel fingierte Header-Zeilen ein, um die wirkliche Herkunft der E-Mail zu verschleiern oder um Spam-Filter in die Irre zu führen, damit ihre Mails ungefiltert zugestellt werden. Dazu gehören Header-Zeilen, die auf ein legitimes Standard-Mailprogramm (und damit einen menschlichen Absender) hindeuten sollen oder auch Header-Zeilen, die eine bereits erfolgte Spamprüfung vorspiegeln, in der Hoffnung, die Mail werde dann vom Spam-Filter ungeprüft weitergeleitet.



Für mich war die Festlegung der Blind- und Carbon Copy wichtig,
der Rest aber auch überaus interessant ^^


Nun haben wir wieder was gelernt,
vielen Dank für zuhören (lesen), bis zum nächsten Mal

- the incredible Leitman