This document provides a general overview of the Camellia project from November 2003. It discusses smart cameras and their applications, as well as the motivations and goals of the Camellia project, which aims to develop algorithms and an architecture for a co-processor to enable smart camera functionality. The document outlines the project's applications, co-processor requirements, prototyping efforts, and conclusions.
This document provides an overview of actor modeling and how to implement actors using the Akka library. It begins with explaining the actor model and benefits of actors over threads. It then discusses how to create actors with Akka, demonstrating with a multiplayer chess game. The schedule outlines explaining the actor model for 1/4 of the time and how to create Akka actors for 3/4 of the time using the chess game demo. Useful links are provided for Akka documentation and chess/game related projects.
This document discusses internationalizing (i18n) Scala programs using the gettext approach. It describes marking strings for translation, extracting them to template files, loading translation files, and translating at runtime. Tools are introduced for extracting strings from Scala code and templates, editing translation files, and parsing loaded files. The approach works for various Scala template engines and frameworks like Play.
This document provides an overview of actor modeling and how to implement actors using the Akka library. It begins with explaining the actor model and benefits of actors over threads. It then discusses how to create actors with Akka, demonstrating with a multiplayer chess game. The schedule outlines explaining the actor model for 1/4 of the time and how to create Akka actors for 3/4 of the time using the chess game demo. Useful links are provided for Akka documentation and chess/game related projects.
This document discusses internationalizing (i18n) Scala programs using the gettext approach. It describes marking strings for translation, extracting them to template files, loading translation files, and translating at runtime. Tools are introduced for extracting strings from Scala code and templates, editing translation files, and parsing loaded files. The approach works for various Scala template engines and frameworks like Play.
Develop realtime web with Scala and XitrumNgoc Dao
This document discusses a talk given by Ngoc Dao on developing realtime and distributed web applications with Scala and Xitrum. The talk covers:
1) An overview of Scala, including its functional features, object-oriented features, tools like SBT and REPL, and how to get started.
2) Using Scala for web development with the Xitrum framework, including routing, responding to requests, internationalization, and metrics.
3) Using Scala for concurrency with futures, actors, and Akka FSM.
4) Building realtime web applications with websockets, Socket.IO and SockJS.
5) Distributed systems with Akka remoting
This document discusses writing web frameworks. It begins by introducing the speaker, Ngoc, and his experience writing several web frameworks in different languages. It then asks questions to prompt discussion about web frameworks, including differences between frameworks and libraries, challenges in writing frameworks, and important framework features. The document emphasizes that frameworks should have a clear vision and workflow. It also provides examples from Sinetja and Xitrum frameworks to illustrate concepts.
This document provides an overview of Xitrum, an asynchronous and clustered Scala web framework built on top of Netty and Akka. It describes what Xitrum is, why it should be used, how it works, examples of its features like actions, views, routing, authentication, and more. It also provides links to the Xitrum homepage, guides, community, and examples of where Xitrum is used in production.
Actor-based concurrency and Akka FundamentalsNgoc Dao
This document discusses actor-based concurrency and the Akka framework. It explains that actors are lightweight processes that communicate asynchronously by message passing rather than by sharing memory. This allows for high levels of concurrency. The document provides an example demonstrating how to define actor messages and behaviors in Akka to implement a simple counter actor. It also discusses some antipatterns to avoid, such as directly modifying actor state from outside the actor.
This document provides an overview of how to use the Xitrum web framework, including how to create a new project, routes, run and debug the application, internationalization, scaling, and monitoring. It also compares Xitrum to the Play framework and lists some key differences.
Xitrum is a Scala web framework inspired by Rails that provides asynchronous and clustered capabilities. It uses Netty for asynchronous IO, Hazelcast for clustered data, and Akka for remote code. The framework was created because existing Scala options like Scalatra and Lift were not fully featured or easy to use from a Ruby perspective. Xitrum aims to provide more features than Scalatra and easier use than Lift. It has been used in many of the creator's projects involving chat systems, APIs, and real-time websites.
SockJS provides a WebSocket-like API that works across all browsers, including older browsers, by using multiple transport mechanisms as needed such as xhr-polling. It supports both client-side and server-side libraries for major platforms. While SockJS mimics the WebSocket API, it is simpler than solutions like Socket.IO that provide additional functionality beyond a raw protocol.
Tsung is an open source tool for load testing applications. It can perform load testing from a single machine or in a distributed manner across multiple machines. The document discusses how to install Tsung and Erlang, configure a basic load test using a test.xml file, run the test, and view reports. It also covers how to set up distributed load testing using multiple client nodes and load balancing across Erlang VMs. Load testing WebSocket applications with Tsung is also briefly mentioned.
This document provides an introduction to using Scala, including how to install Scala, use the Scala interactive console and compile Scala scripts and programs. It also discusses SBT (Scala Build Tool) for managing Scala projects and dependencies, and introduces some useful Scala frameworks like Xitrum for building web applications and Akka for building concurrent and distributed applications.
Xitrum uses the Netty framework and follows a handler-based architecture. It aggregates HTTP requests and responses into a HandlerEnv object that passes through various handlers. These handlers include converting requests to HandlerEnv, selecting and calling actions, converting responses back to HTTP, and more. Routing is done by collecting routes specified by annotations at startup and dispatching requests to the appropriate action class execute method.