JavaScript is a client-side script language, but we can use it on server side programming now. However, it is still difficult to write server-side application for front-end developer.
Here we try to find a solution to write server-side script that developer only need to understand and have client-side experience.
This is how we build www.attictv.com with NodeJS, and the development philosophies we adopted as a startup.
AtticTV is a music video website that is going to the the MTV of the Internet. Just get on www.attictv.com and music video starts playing, no searching, no waiting.
The slide notes are in Chinese because I presented the slide at NodeJS Party Taiwan at Taipei. If you have any questions, feel free to buzz me at @conancat on Twitter!
JavaScript is a client-side script language, but we can use it on server side programming now. However, it is still difficult to write server-side application for front-end developer.
Here we try to find a solution to write server-side script that developer only need to understand and have client-side experience.
This is how we build www.attictv.com with NodeJS, and the development philosophies we adopted as a startup.
AtticTV is a music video website that is going to the the MTV of the Internet. Just get on www.attictv.com and music video starts playing, no searching, no waiting.
The slide notes are in Chinese because I presented the slide at NodeJS Party Taiwan at Taipei. If you have any questions, feel free to buzz me at @conancat on Twitter!
This document discusses techniques for writing domain-specific languages (DSLs) in Go. It begins by providing an example of a DSL for service configuration in Go using self-referential functions. It then compares DSLs in Ruby, noting issues like lack of type safety and syntax errors. The document goes on to discuss using code generation in Go with go:generate to reduce boilerplate like error handling. It provides an example of a code generator that automatically adds error handling based on error variable names. In summary, the document explores writing DSLs in Go and techniques like code generation to improve developer experience.
This document discusses using peer-to-peer (P2P) networking to scale the web. It notes that P2P can address bandwidth, single point of failure, and cost issues by distributing content across multiple peers. It describes how P2P uses content addressing rather than location addressing, and public-key cryptography to identify content. Examples of companies using P2P techniques like BitTorrent for deployment are provided. The document demos a P2P test and library, and discusses challenges of implementing P2P in browsers, which can be addressed using WebRTC. It advocates for decentralization and argues new browsers are needed to address user data control issues.
This document discusses using the Go programming language to build full-stack applications that can run on the web using GopherJS. GopherJS compiles Go code to JavaScript, allowing Go code to run in browsers. It supports key Go features like goroutines and channels. The document provides examples of writing Hello World apps, exporting Go functions to JavaScript, handling callbacks, and measuring performance. It also discusses bindings for DOM manipulation, jQuery, and other JavaScript libraries as well as things to watch out for like import size and blocking callbacks. The document recommends designing applications with a custom bytecode format that can be translated to different platforms and languages.
Gopher Taiwan Gathering #16: Build a smart bot via GolangEvan Lin
This document summarizes a presentation about using Golang to build smart IM bots. It discusses choosing Golang for its fast performance, concurrency, and tooling. It then provides steps to build Line and Facebook bots using Golang and deploying to Heroku. Examples of pet-care bots are shown. The presentation discusses using LUIS for natural language processing and envisions bots communicating directly without APIs in the future to provide customer service. It also discusses building "right brain" bots and job opportunities.
The document discusses how logs (LOG) can be used as the basis for many software systems and applications. It describes logs as sequentially recorded events that provide an immutable record of what happened over time. It then gives examples of how databases, version control systems, distributed systems, messaging, and many other areas are based on logs and benefit from their append-only, immutable nature. Logs allow sharing state, reaching consensus, and building deterministic, scalable, and maintainable systems.
muCon 2016: Authentication in Microservice Systems By David BorsosOpenCredo
Software security is hard. Software security in Microservice Systems is even harder. Microservice-style software architectures have steadily been gaining popularity in recent years. They offer many benefits over traditional monolithic software products, however they also introduce new challenges - one of these being security.
In recent years David has worked on this problem in several independent projects, and this talk will draw on his learnings within the topic of authenticating end-users. David will describe, compare and evaluate several authentication options from the perspective of how secure they are and how well they comply with the qualities of a well-designed microservice system. You will leave the talk with suggested evaluation criteria and guidance for implementation based on their use cases.
This document discusses techniques for writing domain-specific languages (DSLs) in Go. It begins by providing an example of a DSL for service configuration in Go using self-referential functions. It then compares DSLs in Ruby, noting issues like lack of type safety and syntax errors. The document goes on to discuss using code generation in Go with go:generate to reduce boilerplate like error handling. It provides an example of a code generator that automatically adds error handling based on error variable names. In summary, the document explores writing DSLs in Go and techniques like code generation to improve developer experience.
This document discusses using peer-to-peer (P2P) networking to scale the web. It notes that P2P can address bandwidth, single point of failure, and cost issues by distributing content across multiple peers. It describes how P2P uses content addressing rather than location addressing, and public-key cryptography to identify content. Examples of companies using P2P techniques like BitTorrent for deployment are provided. The document demos a P2P test and library, and discusses challenges of implementing P2P in browsers, which can be addressed using WebRTC. It advocates for decentralization and argues new browsers are needed to address user data control issues.
This document discusses using the Go programming language to build full-stack applications that can run on the web using GopherJS. GopherJS compiles Go code to JavaScript, allowing Go code to run in browsers. It supports key Go features like goroutines and channels. The document provides examples of writing Hello World apps, exporting Go functions to JavaScript, handling callbacks, and measuring performance. It also discusses bindings for DOM manipulation, jQuery, and other JavaScript libraries as well as things to watch out for like import size and blocking callbacks. The document recommends designing applications with a custom bytecode format that can be translated to different platforms and languages.
Gopher Taiwan Gathering #16: Build a smart bot via GolangEvan Lin
This document summarizes a presentation about using Golang to build smart IM bots. It discusses choosing Golang for its fast performance, concurrency, and tooling. It then provides steps to build Line and Facebook bots using Golang and deploying to Heroku. Examples of pet-care bots are shown. The presentation discusses using LUIS for natural language processing and envisions bots communicating directly without APIs in the future to provide customer service. It also discusses building "right brain" bots and job opportunities.
The document discusses how logs (LOG) can be used as the basis for many software systems and applications. It describes logs as sequentially recorded events that provide an immutable record of what happened over time. It then gives examples of how databases, version control systems, distributed systems, messaging, and many other areas are based on logs and benefit from their append-only, immutable nature. Logs allow sharing state, reaching consensus, and building deterministic, scalable, and maintainable systems.
muCon 2016: Authentication in Microservice Systems By David BorsosOpenCredo
Software security is hard. Software security in Microservice Systems is even harder. Microservice-style software architectures have steadily been gaining popularity in recent years. They offer many benefits over traditional monolithic software products, however they also introduce new challenges - one of these being security.
In recent years David has worked on this problem in several independent projects, and this talk will draw on his learnings within the topic of authenticating end-users. David will describe, compare and evaluate several authentication options from the perspective of how secure they are and how well they comply with the qualities of a well-designed microservice system. You will leave the talk with suggested evaluation criteria and guidance for implementation based on their use cases.