Now a days, thousands of database are supporting many kind of Rakuten's services. and it is hard to manage many databases well. especially, backup and restore.
so, we are progressing new backup system for our databases.
I am going to share some know-hows and experiences that have been acquired with you
Now a days, thousands of database are supporting many kind of Rakuten's services. and it is hard to manage many databases well. especially, backup and restore.
so, we are progressing new backup system for our databases.
I am going to share some know-hows and experiences that have been acquired with you
Introduction to GraalVM and Native ImageKoichi Sakata
?
2019/08/23 JVM Language Summit Report Event at KanJava JUG
https://kanjava.connpass.com/event/139770/
This slide is about GraalVM, especially SubstrateVM that is able to generate native images.
Journey of Migrating Millions of Queries on The Cloudtakezoe
?
This document discusses challenges in upgrading a query engine and summarizing strategies for efficiently simulating queries to test compatibility and performance. It proposes grouping queries by signature and narrowing data scans to reduce the number of queries tested. It also recommends automating result verification by generating human-readable reports and excluding uncheckable queries. Assistance tools are proposed to aid investigation of differences, which helped discover real bugs in the target version.
GitBucket: Open source self-hosting Git server built by Scalatakezoe
?
This document provides information about GitBucket, an open source self-hosting Git server created by Naoki Takezoe using Scala. Some key points:
- GitBucket is an open source self-hosting Git server built using Scala and Java technologies. It allows hosting both public and private repositories.
- It has over 8,000 stars on GitHub and supports features like issues, pull requests, wiki pages, and plugins.
- The developer chose Scala for its interoperability with Java libraries and broad ecosystem. This helped minimize development costs, which is important for sustainability of personal open source projects.
Testing Distributed Query Engine as a Servicetakezoe
?
Naoki Takezoe from Treasure Data discussed testing their distributed query engine Presto as a service. They developed a tool called presto-query-simulator to test using production data and queries in a safe manner. The tool reduces testing time by grouping similar queries and narrowing data scans. It also helps analyze results and find problematic queries. Future work includes running tests more frequently and improving coverage.
This document discusses different approaches to dependency injection in Scala, including Google Guice, implicit parameters, the cake pattern, Reader monad, MacWire, and Airframe. It compares runtime DI approaches like Guice and Airframe to compile-time approaches. The best approach depends on whether auto-wiring is needed, whether compile-time checking or dynamic binding is preferred, and whether life-cycle management is required.
How to keep maintainability of long life Scala applicationstakezoe
?
Naoki Takezoe discusses maintaining long-term Scala applications. He outlines two main difficulties: programming style differences that impact understandability and upgrades that require coordinating framework, Scala, and Java version changes. Case studies show upgrades can be blocked until dependent libraries support new versions. Solutions include reducing dependencies, using popular libraries, custom libraries for core components, and considering Java alternatives. Regular maintenance and preparing for breaking changes are key to sustainable Scala applications.
GitBucket: Git Centric Software Development Platform by Scalatakezoe
?
GitBucket is an open source Git server platform written in Scala that provides easy installation and setup. It allows for public and private repositories along with features like issue tracking, pull requests, wikis, and notifications. While based on traditional Java technologies like Jetty and JGit, it uses the Scalatra framework to integrate these components and provide a unified web interface for managing Git repositories and collaboration.
Xtend is a Java-compatible language developed by Eclipse. It has a simpler syntax than Java and compiles to Java bytecode. Xtend supports features like lambda expressions, extension methods, and switch expressions. It has strong tooling support in Eclipse and IntelliJ IDEs. Xtend aims to be a pragmatic alternative to Java for development while maintaining full interoperability.
Zipkin is a distributed tracing system created by Twitter that allows services to record and query traces of requests across microservices. It uses HTTP headers to propagate trace data between services and stores trace data in storage backends like Cassandra, MySQL, or Elasticsearch. The Brave library can be used to instrument Java applications to send trace data to a Zipkin server.
This document discusses using Scala and Scala.js for type-safe front-end web development. It introduces Scala.js, which compiles Scala code to JavaScript, enabling the use of Scala on the front-end. It also discusses related libraries like ScalaTags for type-safe HTML generation and ScalaCSS for type-safe CSS. While Scala.js enables fully type-safe front-ends, the document acknowledges challenges like large JavaScript file sizes and lack of type mappings for existing JavaScript libraries. It proposes an approach where Scala programmers provide Scala.js interfaces for front-end code, while JavaScript programmers implement the user interface using frameworks like React.
This document compares various Scala frameworks for building web applications and interacting with databases. It discusses alternatives to the standard Play and Slick frameworks, including Finagle, Akka HTTP, Skinny Micro, Quill, doobie, and ScalikeJDBC. For web frameworks, all the alternatives look promising but Play is also still viable. For databases, there is no clear standard yet, but ScalikeJDBC appears suitable for most users.
This document discusses macros in Scala. Macros allow code to be generated at compile time by expanding directives or generating abstract syntax trees (ASTs). Examples show how macros can be used for validation, type generation, domain-specific languages (DSLs), and optimization without runtime overhead. The document explains macro types in Scala, how to construct ASTs using AST models, reify, and quasiquotes, and future plans to replace scala.reflect with the safer scala.meta metaprogramming toolkit.
The document discusses Reactive Slick, a new version of the Slick database access library for Scala that provides reactive capabilities. It allows parallel database execution and streaming of large query results using Reactive Streams. Reactive Slick is suitable for composite database tasks, combining async tasks, and processing large datasets through reactive streams.
markedj: The best of markdown processor on JVMtakezoe
?
This document discusses selecting a markdown parser for a Scala-based GitHub clone called GitBucket. It evaluates several Java-based markdown parsers but finds them lacking support for features like GitHub Flavored Markdown tables and fences. It describes initially trying to port the JavaScript markdown parser marked.js to Scala but facing issues with its use of regular expressions and mutability. The document then explains the decision to port marked.js to Java instead, resulting in the new markdown parser markedj, which supports GFM and has a simple API. GitBucket plans to switch to using markedj starting in its next version.