Typescript zur Applikationsentwicklung nutzen. Hier werden die wichtigsten Features der Sprache kurz vorgestellt und am konkreten Beispiel deren Einsatz gezeigt.
Die Programmiersprache C++ gehört immer noch zu den wichtigsten Programmiersprachen überhaupt. Gerade im Embedded Bereich vollzieht sich langsam die Abkehr von C zu C++ und ist dort alternativlos. Es hatte jedoch jahrelang den Anschein, als würde diese Sprache seit Jahren nicht weiterentwickelt und von den Features und Ausdrucksmöglichkeiten hinter neueren Sprachen zurückzufallen. In diesem Vortrag zeige ich an Codebeispielen, welche Revolution tatsächlich seit C++11 stattgefunden hat und dass die Sprache keinesfalls mehr mit der zu vergleichen ist, die man vielleicht vor Jahren kennen (und vielleicht hassen) gelernt hat. Die Umgestaltung der Sprache ist dabei keineswegs abgeschlossen sondern zeigt weitere, vielversprechende Konzepte am Horizont.
Überblick über die Entwicklung mit Clojure bei HEROLABS.
* Warum haben wir uns für Clojure entschieden? (Simplicity, Erweiterbarkeit, Java-Interop)
* Was heißt Funktionale Programmierung?
=> Man braucht ein anderes Mindset
* Was uns stört.
* Und wie entwickelt man mit Clojure (Ecosystem)?
Anlass war ein Talk bei mgm-tp.
GE_: mein perl_Kurs fuer empfaengern mit empfeangerinnen schritt 2° vol.II.
vi ringrazio ed buon LaVOrO
Dott(2°).Ing.Arch. giovanni Colombo A1360 Ord.Ing.PG_I_1995 09171 Arch.kammer B_de_2003_2011
Die Programmiersprache C++ gehört immer noch zu den wichtigsten Programmiersprachen überhaupt. Gerade im Embedded Bereich vollzieht sich langsam die Abkehr von C zu C++ und ist dort alternativlos. Es hatte jedoch jahrelang den Anschein, als würde diese Sprache seit Jahren nicht weiterentwickelt und von den Features und Ausdrucksmöglichkeiten hinter neueren Sprachen zurückzufallen. In diesem Vortrag zeige ich an Codebeispielen, welche Revolution tatsächlich seit C++11 stattgefunden hat und dass die Sprache keinesfalls mehr mit der zu vergleichen ist, die man vielleicht vor Jahren kennen (und vielleicht hassen) gelernt hat. Die Umgestaltung der Sprache ist dabei keineswegs abgeschlossen sondern zeigt weitere, vielversprechende Konzepte am Horizont.
Überblick über die Entwicklung mit Clojure bei HEROLABS.
* Warum haben wir uns für Clojure entschieden? (Simplicity, Erweiterbarkeit, Java-Interop)
* Was heißt Funktionale Programmierung?
=> Man braucht ein anderes Mindset
* Was uns stört.
* Und wie entwickelt man mit Clojure (Ecosystem)?
Anlass war ein Talk bei mgm-tp.
GE_: mein perl_Kurs fuer empfaengern mit empfeangerinnen schritt 2° vol.II.
vi ringrazio ed buon LaVOrO
Dott(2°).Ing.Arch. giovanni Colombo A1360 Ord.Ing.PG_I_1995 09171 Arch.kammer B_de_2003_2011
OWF12/PAUG Conf Days Google tv part2 (commande and control) matt gaunt, a...Paris Open Source Summit
This document discusses using mobile devices like smartphones and tablets to enhance the television viewing experience through second screen applications. It introduces several second screen apps for Google TV including apps that turn a mobile device into a remote control, allow playing games against others watching the same show, and enable multi-user and multi-device experiences. It then describes the Anymote protocol for allowing second screen apps to securely communicate with and control Google TV. Finally, it provides guidance for developing second screen apps for Google TV and publishing them on the Google Play store.
This document discusses the universal importance of bread as a basic food and how its value differs between individuals. It notes that while bread may be a complement to a meal for some, it could look like caviar to many around the world. The document prompts the reader to think about allocating a single loaf of bread to who it would be most valuable for. It then asks the reader to choose a characteristic of bread they like, see their value contribution, and donate to a cause they care about. If everyone donates the equivalent price of one loaf of bread, it could amount to millions delivered to those who need it most.
This document discusses the technologies used to create a magazine project. It includes screenshots of Photoshop and Internet Explorer being used for editing photos, research, and design of the magazine cover. A collage shows the programs used, including a camera, Photoshop, Internet Explorer, and Slide Share. The student learned to use Photoshop for editing and design, and discovered Slide Share for sharing research online. Overall, the project was a learning experience about using new technologies like Photoshop and Slide Share.
This document appears to be a catalog from a clothing brand called BLK DNM showcasing various clothing items available for fall/winter 2016. It lists over 50 items including sweaters, coats, jackets, shirts, pants, and vests along with their colors and prices. It also provides contact information for the brand including addresses and phone numbers for locations in New York City and Stockholm.
College tuition is becoming increasingly expensive, making higher education less accessible. The average cost of a four-year private college is $26,273 per year, while public universities charge $7,020 for in-state students. With tuition and other costs like room and board rising $377-420 each year, the total price of college increases by $172-1,096 annually. Unless steps are taken to reduce costs, high tuition will negatively impact high school graduation rates and encourage more students to drop out as college becomes unaffordable.
The document provides information about Nancy Saia's portfolio including her business card, logo, website, and rack card. It also includes information about Reverend Christine Guerrera's psychotherapy and spiritual services in Shelton and Monroe, Connecticut. Finally, it outlines the mission and services of the ARC Sacred Center, an interfaith spiritual community center in Monroe, Connecticut.
Este documento presenta el plan de estudios para la asignatura de Computación II en la Universidad Cesar Vallejo. La asignatura cubrirá los fundamentos de programación orientada a objetos incluyendo estructura, comportamiento y prácticas de laboratorio usando Visual Studio .NET 2005.
Mexico has diverse climate and vegetation zones. The native oak and pine forests have been heavily cut down, and most of the country now grows crops like wheat, oats, barley and rye. The southern coast is hot and humid, while higher elevations are cooler. Coastal areas experience more rain than inland regions, and hurricanes occasionally impact the east and west coasts in summer and fall. Mexico City has temperatures ranging from the 40s to 70s Fahrenheit and receives light snow or rain most of the year. Mexico has a large population of over 111 million as of 2010 and is a popular tourist destination.
The document outlines the Summary for Policymakers from the Working Group II contribution to the IPCC's Fifth Assessment Report, which assesses the impacts of, adaptation to, and vulnerability from climate change. It discusses the context and terms used in the assessment and provides overviews of observed impacts on natural and human systems, future risks from climate change, and principles for effective adaptation. The summary is authored by over 80 climate experts from around the world.
Master MIBS - International Business for Small and Medium Enterprises - PreviewKristina Rakic
Master MIBS - International Business for Small and Medium Enterprises offers you the opportunity to look a preview of the module of "Strategy and Business Plan".
Contact us for more infomation.
The document describes a portfolio of presentation slides and decks created in PowerPoint and Keynote. It discusses the company SkilledWizard.com which aims to connect skilled workers and employers directly without the use of job boards or recruiters. It also includes strategy proposals for Johnny Rockets and Titan Advisers, and information about the digital middle school program eScience3000 targeting expansion to additional countries.
1) Adopting small, gradual changes to eating habits and physical activity can help families build healthy lifestyles. Starting with replacing soda with water or low-fat milk and cooking more meals at home are some easy steps.
2) Eating together as a family, turning off distractions, and serving smaller portions can help promote healthy eating. Aim for at least 5 servings of fruits and vegetables per day.
3) Making healthy choices the whole family enjoys, like swapping out red meat for fish or chicken a few nights a week, helps balance nutrition and moderation.
The document provides a weekly briefing covering various topics:
1) Retirement savings are dropping as many workers have saved little and are not confident they can retire comfortably. Longer lifespans are exacerbating the problem.
2) A UN report found that human development has risen worldwide since 1990 as countries have improved health, education, and living standards. However, more progress is still needed.
3) The SEC has opened fewer investigations and filed fewer fraud cases recently, reflecting calmer economic times, though accounting fraud remains a focus.
Integrating technology into the teaching of elahzick
The document discusses integrating technology into teaching English Language Arts (ELA) for grades K-5. It provides examples of how to use the websites Blabberize and Movie Maker to enhance ELA instruction and have students demonstrate their learning. Teachers are encouraged to use these tools to engage students and help meet technology standards, while continuing to focus on ELA content. Success is measured through increased test scores and achievement of technology standards.
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
Wo die Neuerungen von ECMAScript 5 recht unspektakulär waren, sind die Features des neuen Sprachstandards umso interessanter. ECMAScript 6 versucht einige Anforderungen zu erfüllen, mit denen man als JavaScript-Entwickler täglich konfrontiert ist. Klassische Beispiele sind hier Promises zum Umgang mit asynchronen Funktionen, ein Module Loader zur Strukturierung der Applikation, Generatoren und Iteratoren oder aber ein neuer Gültigkeitsbereich für Variablen. Aber nicht nur große Änderungen, sondern auch sinnvolle Erweiterungen bestehender Objekte wie String und Array halten mit dem neuen Standard Einzug in den Browser. Problematisch wird die Situation jedoch, wenn man in den Genuss verschiedener Features kommen möchte, die aktuell noch von keinem Browser unterstützt werden. Hier schafft Traceur, der ECMAScript-6-Compiler von Google, Abhilfe.
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?Robin Sedlaczek
Slides from my talk about early feedback during development time, flexibility for customers and security as a Must-have. It's nothing about management - it's all about C# Script and practical use.
OWF12/PAUG Conf Days Google tv part2 (commande and control) matt gaunt, a...Paris Open Source Summit
This document discusses using mobile devices like smartphones and tablets to enhance the television viewing experience through second screen applications. It introduces several second screen apps for Google TV including apps that turn a mobile device into a remote control, allow playing games against others watching the same show, and enable multi-user and multi-device experiences. It then describes the Anymote protocol for allowing second screen apps to securely communicate with and control Google TV. Finally, it provides guidance for developing second screen apps for Google TV and publishing them on the Google Play store.
This document discusses the universal importance of bread as a basic food and how its value differs between individuals. It notes that while bread may be a complement to a meal for some, it could look like caviar to many around the world. The document prompts the reader to think about allocating a single loaf of bread to who it would be most valuable for. It then asks the reader to choose a characteristic of bread they like, see their value contribution, and donate to a cause they care about. If everyone donates the equivalent price of one loaf of bread, it could amount to millions delivered to those who need it most.
This document discusses the technologies used to create a magazine project. It includes screenshots of Photoshop and Internet Explorer being used for editing photos, research, and design of the magazine cover. A collage shows the programs used, including a camera, Photoshop, Internet Explorer, and Slide Share. The student learned to use Photoshop for editing and design, and discovered Slide Share for sharing research online. Overall, the project was a learning experience about using new technologies like Photoshop and Slide Share.
This document appears to be a catalog from a clothing brand called BLK DNM showcasing various clothing items available for fall/winter 2016. It lists over 50 items including sweaters, coats, jackets, shirts, pants, and vests along with their colors and prices. It also provides contact information for the brand including addresses and phone numbers for locations in New York City and Stockholm.
College tuition is becoming increasingly expensive, making higher education less accessible. The average cost of a four-year private college is $26,273 per year, while public universities charge $7,020 for in-state students. With tuition and other costs like room and board rising $377-420 each year, the total price of college increases by $172-1,096 annually. Unless steps are taken to reduce costs, high tuition will negatively impact high school graduation rates and encourage more students to drop out as college becomes unaffordable.
The document provides information about Nancy Saia's portfolio including her business card, logo, website, and rack card. It also includes information about Reverend Christine Guerrera's psychotherapy and spiritual services in Shelton and Monroe, Connecticut. Finally, it outlines the mission and services of the ARC Sacred Center, an interfaith spiritual community center in Monroe, Connecticut.
Este documento presenta el plan de estudios para la asignatura de Computación II en la Universidad Cesar Vallejo. La asignatura cubrirá los fundamentos de programación orientada a objetos incluyendo estructura, comportamiento y prácticas de laboratorio usando Visual Studio .NET 2005.
Mexico has diverse climate and vegetation zones. The native oak and pine forests have been heavily cut down, and most of the country now grows crops like wheat, oats, barley and rye. The southern coast is hot and humid, while higher elevations are cooler. Coastal areas experience more rain than inland regions, and hurricanes occasionally impact the east and west coasts in summer and fall. Mexico City has temperatures ranging from the 40s to 70s Fahrenheit and receives light snow or rain most of the year. Mexico has a large population of over 111 million as of 2010 and is a popular tourist destination.
The document outlines the Summary for Policymakers from the Working Group II contribution to the IPCC's Fifth Assessment Report, which assesses the impacts of, adaptation to, and vulnerability from climate change. It discusses the context and terms used in the assessment and provides overviews of observed impacts on natural and human systems, future risks from climate change, and principles for effective adaptation. The summary is authored by over 80 climate experts from around the world.
Master MIBS - International Business for Small and Medium Enterprises - PreviewKristina Rakic
Master MIBS - International Business for Small and Medium Enterprises offers you the opportunity to look a preview of the module of "Strategy and Business Plan".
Contact us for more infomation.
The document describes a portfolio of presentation slides and decks created in PowerPoint and Keynote. It discusses the company SkilledWizard.com which aims to connect skilled workers and employers directly without the use of job boards or recruiters. It also includes strategy proposals for Johnny Rockets and Titan Advisers, and information about the digital middle school program eScience3000 targeting expansion to additional countries.
1) Adopting small, gradual changes to eating habits and physical activity can help families build healthy lifestyles. Starting with replacing soda with water or low-fat milk and cooking more meals at home are some easy steps.
2) Eating together as a family, turning off distractions, and serving smaller portions can help promote healthy eating. Aim for at least 5 servings of fruits and vegetables per day.
3) Making healthy choices the whole family enjoys, like swapping out red meat for fish or chicken a few nights a week, helps balance nutrition and moderation.
The document provides a weekly briefing covering various topics:
1) Retirement savings are dropping as many workers have saved little and are not confident they can retire comfortably. Longer lifespans are exacerbating the problem.
2) A UN report found that human development has risen worldwide since 1990 as countries have improved health, education, and living standards. However, more progress is still needed.
3) The SEC has opened fewer investigations and filed fewer fraud cases recently, reflecting calmer economic times, though accounting fraud remains a focus.
Integrating technology into the teaching of elahzick
The document discusses integrating technology into teaching English Language Arts (ELA) for grades K-5. It provides examples of how to use the websites Blabberize and Movie Maker to enhance ELA instruction and have students demonstrate their learning. Teachers are encouraged to use these tools to engage students and help meet technology standards, while continuing to focus on ELA content. Success is measured through increased test scores and achievement of technology standards.
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
Wo die Neuerungen von ECMAScript 5 recht unspektakulär waren, sind die Features des neuen Sprachstandards umso interessanter. ECMAScript 6 versucht einige Anforderungen zu erfüllen, mit denen man als JavaScript-Entwickler täglich konfrontiert ist. Klassische Beispiele sind hier Promises zum Umgang mit asynchronen Funktionen, ein Module Loader zur Strukturierung der Applikation, Generatoren und Iteratoren oder aber ein neuer Gültigkeitsbereich für Variablen. Aber nicht nur große Änderungen, sondern auch sinnvolle Erweiterungen bestehender Objekte wie String und Array halten mit dem neuen Standard Einzug in den Browser. Problematisch wird die Situation jedoch, wenn man in den Genuss verschiedener Features kommen möchte, die aktuell noch von keinem Browser unterstützt werden. Hier schafft Traceur, der ECMAScript-6-Compiler von Google, Abhilfe.
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?Robin Sedlaczek
Slides from my talk about early feedback during development time, flexibility for customers and security as a Must-have. It's nothing about management - it's all about C# Script and practical use.
My slides from the Advanced Developers Conference 2017 (ADC Core) in Cologne! It's about C# scripting and how you can use it in your application. Benefits for developers and customers.
Wie oft haben Sie schon in Foren gelesen: "Das geht nicht mit Bordmitteln; das muss man mit der C API machen". Schön und gut, aber wie geht das? Welche Tools benötige ich, und wo bekomme ich diese her? Die Session gibt einen Überblick über die Anwendungsgebiete der C / C++ API für Lotus Notes / Domino und erläutert die Installation einer Entwicklungsumgebung. Neben der Erstellung von C Programmen wird auch der direkte Aufruf von Funktionen aus Lotusscript heraus erläutert.
Praktische Beispiele sollen dem Entwickler den Einstieg in die Programmierung mit der C / C++ API für Lotus Notes / Domino erleichtern. Level: Einsteiger, die sich auch in Zeiten von XPages, JAVA und SSJS noch an das "Urgestein C" herantrauen.
Eine Sammlung von Best Practices für Applikationen mit AngularJS. Der Vortrag stellt Strukturen und Konventionen vor, mit denen sich auch umfangreiche Applikationen wartbar und erweiterbar halten lassen.
Software die verwendet wird, muss irgendwann geändert werden. Das ist keine neue Erkenntnis.
Dennoch finden wir uns sehr oft in der Situation wieder, dass sich einfache Anforderungen nur mit erheblichem Aufwand umsetzen lassen oder zu unerwarteten Ergebnissen führen.
SOLID Prinzipien können uns helfen das Design unserer Anwendungen zu verbessern.
Talk about the programming language Go and the feature of generics. Those have been added to the language with the version 1.18. To have more control about allowed generics Go also got type constraints as careful extension of the interfaces. Get insight into this powerful extension and how it can help you.
Testgetriebene Entwicklung mit Jasmine und Karma hat sich mittlerweile schon als defacto-Standard etabliert. Routinen ohne Abhängigkeiten lassen sich damit ohne Probleme testen. Die Schwierigkeiten beginnen jedoch schon, wenn es um die Auflösung von Abhängigkeiten geht. In diesem Vortrag werden verschiedene Strategien und Werkzeuge vorgestellt, mit denen Abhängigkeiten zu Objekten und Funktionen oder zum Server abgedeckt werden können. Aber nicht nur Abhängigkeiten stellen Schwierigkeiten bei der testgetriebenen Entwicklung dar, auch der Umgang mit Fixtures ist bei der testgetriebenen Entwicklung mit JavaScript relevant. Abgerundet wird dieser Vortrag mit einigen Best Practices für die testgetriebenen Entwicklung mit JavaScript.
Erfahrene Ärzte können einige Krankheiten bereits am Geruch ihres Patienten erkennen. Ähnliches können erfahrene Softwareentwickler, im übertragenen Sinne auch mit Software tun. Beide Berufsgruppen nehmen dazu unterschwellige Hinweise auf und können Rückschlüsse darauf ziehen welche Bereiche nicht arbeiten wie sie sollten. Typische schlechte Gerüche wollen wir uns in diesem Vortrag ansehen und darüber sprechen wie man ihnen begegnet. Um sie leichter zu verstehen, werden sie dabei als Antipattern beschrieben. Auf diese Weise wird der Rahmen abgesteckt in dem sie auftreten und wie man ihnen begegnen kann.
Keynote der Dotnet Developer Conference 2017 zum Thema C#. Neben einer Historie der einzelnen Sprachfeatures liegt der Fokus danach auf den aktuellen Versionen (6.0, 7.0, 7.1,7.2) sowie der kommenden Sprachversion C# 8.0
Mit WebDirect kann man wieder mehr Plugins einsetzen auf dem Server. Da bietet es sich doch an eventuell ein eigenes Plugin zu bauen für Schnittstellen. Per Plugin etwas schneller machen, auf Betriebssystemfunktionen zugreifen oder das Plugin als Schnittstelle zu einer C Bibliothek nehmen, die etwas wichtiges macht. Wir schauen uns die Vorraussetzungen an, das Plugin SDK und wie man eigene Funktionen definiert. In der Demo bauen wir ein Plugin selbst und probieren es gleich mal aus.
Frameworks wie Next.js und Nuxt versuchen, Client und Server wieder näher zusammenzubringen und setzen dabei auf die großen SPA-Frameworks React und Vue. Die leichtgewichtige Bibliothek htmx dagegen versucht, das gleiche Ziel auf ganz andere Weise zu erreichen. Muss es denn immer eine SPA sein? Reicht nicht auch in vielen Fällen deutlich weniger Overhead? Wir haben schließlich HTML als Strukturelement und CSS für das gute Aussehen. Genau diesen Ansatz greift htmx auf und erweitert die Fähigkeiten der HTML-Struktur. Serverkommunikation und Eventhandling erreichen mit dieser Bibliothek eine ganz neue Dimension.
Aber was bedeutet das für unsere tägliche Arbeit? Setzen wir in Zukunft alle neuen Applikationen nur noch mit htmx um, oder migrieren wir unsere Vue-Codebasis auf htmx? Diesen und vielen weiteren Fragen widmen wir uns in diesem Vortrag, nicht nur in der Theorie, sondern auch am praktischen Beispiel.
Angular ist die Komplettlösung für die Umsetzung von Webapplikationen im Frontend. Ein so umfassendes Werkzeug hat allerdings auch seine Schattenseiten: Die Einstiegshürde ist relativ hoch. Dieser Vortrag stellt die wichtigsten Elemente des Frameworks wie Komponenten, Direktiven und Services vor. In einem praktischen Beispiel werden die verschiedenen Elemente von Angular Schritt für Schritt zu einer kompletten Applikation zusammengefügt. Damit lernen Sie nicht nur die Elemente des Frameworks kennen, sondern gleichzeitig die wichtigsten Architekturpatterns und zahlreiche Best Practices.
Node.js is a lightweight but yet capable platform for creating powerful web applications. The core of Node.js is kept small and restricted to a limited functionality that is extended by a vast ecosystem. With the right combination of packages you are able to build full-featured web applications. There is nearly no limit in features starting with simple problems such as authentication or logging over web interfaces with REST or GraphQL to a whole application based on a microservices architecture. In this talk I will introduce you to some commonly used packages and show you how to use them by example.
This document discusses microservices using Node.js and JavaScript. It covers building an HTTP microservice with Express including routing, structure, database integration, logging and testing. It also discusses building command-based microservices with Seneca including patterns, plugins, and queueing. Finally, it discusses containerization with Docker, API gateways, testing, process management with PM2, and some considerations around when microservices may not be the best solution.
Nobody likes to wait for web pages to load in the browser. The longer it takes, the more dissatisfied the users become. Slow web pages lead to a higher bounce rate and the loss of customers. To solve this kind of problems can be very hard sometimes. Before you even start to optimise your page, you have to understand the workflows a browser performs in order to display a page on the screen. In this talk you will get some insights in the critical rendering path and the javascript engine of your browser that help you to find performance problems and solve them. I will show you also some tools and best practices that make your life easier when it comes to performance.
Lange Wartezeiten und mangelnde Responsivität unserer Webapplikation führen zu unzufriedenen Benutzern, was sich in hohen Absprungraten und Abwanderung zur Konkurrenz oder einfach der Weigerung, die Applikation zu verwenden, niederschlägt. Das Problem einer langsamen Applikation lässt sich jedoch leider nicht ganz so einfach lösen. Wichtig für eine nachhaltige Lösung ist das Verständnis der Abläufe im Browser. Aus diesem Grund beschäftigen wir uns hier mit Konzepten wie dem Critical Rendering Path und einigen Charakteristiken der JavaScript-Engines. Im Zuge dieses Vortrags werden einige der häufigsten Problemstellungen von Webapplikationen analysiert und Lösungsansätze und Best Practices zur Behebung der Performanceprobleme vorgestellt.
Features einer Applikation werden häufig implementiert, weil die Verantwortlichen vermuten, dass diese Funktionalitäten einen Mehrwert für die Benutzer der Applikation bieten. Je nach Umfang wird mehr oder weniger Geld investiert. Ohne weitere Unterstützung sind und bleiben es jedoch Vermutungen. Eine bessere Lösung bieten hier A/B-Tests. Features werden kostengünstig in einer oder mehreren Varianten umgesetzt und mit einer Kontrollimplementierung verglichen. Die Umsetzung, die sich als die beste herausstellt, wird überarbeitet und bleibt in der Applikation erhalten. Diese Vorgehensweise lässt sich sehr gut in node.js-Applikationen integrieren. Mithilfe von A/B-Tests können Sie Ihre Applikation an den Anforderungen Ihrer Benutzer ausrichten.
Streams allow connecting programs like connecting garden hoses. They provide a way to pipe input through multiple steps to an output. There are different types of streams like readable, writable, duplex, and transform streams. Common uses of streams in Node.js include http, fs, child processes, tcp, and zlib. Streams are event emitters that can be used to process data incrementally instead of all at once.
Mein Vortrag auf der EnterJS 2015 über Sicherheit in Node.js Applikationen. Es werden verschiedene Angriffsvektoren vorgestellt und wie man ihnen begegnen kann.
In diesem Vortrag werden drei zentrale Fragen gestellt (und beantwortet):
Wie bringe ich meine Idee schnell auf den Markt?
Wie finde ich heraus, ob meine Idee gut ist?
Wie kann ich auf geänderte Anforderungen reagieren?
Wie erstelle ich Webapplikationen mit Node.js. Vorgestellt werden verschiedene Frameworks wie Express.js oder Koa. Außerdem wird auf Skalierung eingegangen.
Wie kann ich die Browser Tools zum Auffinden von Fehlern und Schwachstellen in meinem Sourcecode benutzen? Dieser Talk stellt die wichtigsten Features vor.
18. var myString: string;
myString = 4;
console.log(myString);
tsc index.ts
test.ts(3,1): error TS2322: Type 'number' is
not assignable to type 'string'.
Das Script funktioniert aber trotzdem.
19. var myVar = 'Hello World';
myVar = function () {
return myVar;
};
console.log(myVar());
[Function]
20. var myVar: string = 'Hello World';
myVar = function () {
return myVar;
};
console.log(myVar());
test.ts(2,1): error TS2322: Type '() => string' is not assignable to
type 'string'.
test.ts(6,13): error TS2349: Cannot invoke an expression whose type
lacks a call signature.
23. Number
var myNum: number = 1337;
var my2ndNum: number = 3.141;
Und nein, auch in Typescript haben wir keine Unterscheidung
zwischen Integer und Float.
25. Array
var arr: number[] = [1, 2, 3];
var arr2: Array<number> = [1, 2, 3];
var arr: (string|number)[] = [];
arr.push(1);
arr.push('Hello');
Arrays mit verschiedenen Typen? Union Types!
26. Enum
Mengen von Ganzzahlen mit verständlichen Namen.
enum Food {Burger, Pizza, Schnitzel}
console.log(Food.Pizza); // 1
if (2 === Food.Schnitzel) { console.log('yummy!')} // yummy!
27. Any
Der Standardtyp, der alle anderen Typen beinhaltet. Erleichtert
den Umstieg von bestehendem JavaScript auf Typescript
erheblich.
31. function add(a: number, b: number): number {
return a + b;
}
add(1, 2);
add();
error TS2346: Supplied parameters do not match any signature of call
target.
add(1);
error TS2346: Supplied parameters do not match any signature of call
target.
add(1, 2, 3);
error TS2346: Supplied parameters do not match any signature of call
target.
add('Hello', 'World');
TS2345: Argument of type 'string' is not assignable to parameter of
type 'number'.
33. var x = 3; // var x: number = 3;
function add(a: number, b: number) {
if (a % 2 === 0) {
return a + b;
}
return 'Hello';
}
TS2354: No best common type exists among return expressions.
35. class Rectangle {}
var rect: Rectangle;
rect = new Rectangle();
Klassendefinition
Instanziierung
Variablendeklaration
36. var Rectangle = (function () {
function Rectangle() {
}
Rectangle.prototype.getHeight = function () {
return this.height;
};
return Rectangle;
})();
Ein Beispiel für eine kompilierte Typescript-Klasse:
42. Konstruktor
class Rectangle {
height: number;
width: number;
constructor(height: number, width: number) {
this.height = height;
this.width = width;
}
}
var rect: Rectangle;
rect = new Rectangle(20, 40);
43. Konstruktor - Shortcut
class Rectangle {
constructor(public height: number, public width: number) {
}
}
var rect: Rectangle;
rect = new Rectangle(20, 40);
48. class Square extends Rectangle {
constructor(side: number) {
super(side, side);
}
}
var square = new Square(20);
extends-Schlüsselwort
super für den Zugriff auf Parent
52. Interfaces
Definieren die Mindestanforderung an die Struktur eines
Typs. Interfaces können anonym oder benannt verwendet
werden und kommen sowohl für Klassen als auch Funktionen
zum Einsatz. Interfaces können andere Interfaces erweitern.
59. Module
Namespacing für Applikationen, um Namenskonflikte zu
vermeiden. Definition von Abhängigkeiten im Quellcode. Zwei
Varianten von Modulen: interne und externe.
60. Interne Module
module Shapes {
export class Rectangle {
constructor(public height: number, public width: number) {}
}
}
var rect = new Shapes.Rectangle(15, 20);
console.log(rect);
61. Interne Module
tsc --out sample.js index.ts
index.ts
/// <reference path="shape.ts" />
var rect = new Shapes.Rectangle(15, 20);
console.log(rect);
module Shapes {
export class Rectangle {
constructor(public height: number, public width: number) {}
}
}
shape.ts
62. Externe Module
Können mit anderen Modulloadern wie require.js oder dem
Node.js-Modulsystem verwendet werden.
Externe Module benötigen mindestens ein Toplevel export
oder import.
Kommandozeilenoption —module für den Compiler.
Mögliche Werte sind commonjs (Node.js) und amd
(require.js).
63. Externe Module
import shape = require('shape');
var rect = new shape.Rectangle(30, 40);
console.log(rect);
index.ts
export class Rectangle {
constructor(public height: number, public width: number) {}
}
shape.ts
tsc --module commonjs index.ts
67. 3rd Party Libraries
Headerdateien für 3rd Party Libraries wie jQuery oder
Angular, damit diese auch mit Typescript sinnvoll verwendet
werden können.