<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Payforward</title>
    <link>https://blog.takanabe.tokyo/en/</link>
    <description>Recent content on Payforward</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 18 Sep 2023 12:00:00 +0900</lastBuildDate>
    
	<atom:link href="https://blog.takanabe.tokyo/en/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Understanding key metrics for ragas</title>
      <link>https://blog.takanabe.tokyo/en/2023/09/ee194398-aff2-4065-bf2a-1acbe7b081d5/</link>
      <pubDate>Mon, 18 Sep 2023 12:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2023/09/ee194398-aff2-4065-bf2a-1acbe7b081d5/</guid>
      <description>Motivation In my article, Evaluating ragas: A framework for RAG pipelines, I explored the workings of ragas and the metrics it emphasizes. This piece offers a deeper examination of those metrics.
Performance Metrics ragas evaluates RAG pipeline&amp;rsquo;s performance using the following dimensions:
   Faithfulness: Ensures the generated answer&amp;rsquo;s consistency with the given context. Penalties are given for claims not deduced from the context. Calculated using the answer and retrieved context.</description>
    </item>
    
    <item>
      <title>Evaluating ragas: A framework for RAG pipelines</title>
      <link>https://blog.takanabe.tokyo/en/2023/09/6e5629d2-5dea-4203-b6c4-8a0ac352b032/</link>
      <pubDate>Sun, 17 Sep 2023 12:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2023/09/6e5629d2-5dea-4203-b6c4-8a0ac352b032/</guid>
      <description>TL;DR ragas is a framework designed to assess the performance of Retrieval Augmented Generation (RAG) pipelines, a type of LLM application that uses external data to enhance its context. While there are tools to build RAG pipelines, evaluating their performance can be challenging. ragas offers tools rooted in recent research to evaluate LLM-generated text, providing insights into RAG pipeline performance. It can also be incorporated into CI/CD for ongoing performance checks.</description>
    </item>
    
    <item>
      <title>Evaluating LLM Applications for RAG: A Comprehensive Overview from Databricks</title>
      <link>https://blog.takanabe.tokyo/en/2023/09/834d7288-8621-4e16-87a3-7fdc955d55bc/</link>
      <pubDate>Sat, 16 Sep 2023 15:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2023/09/834d7288-8621-4e16-87a3-7fdc955d55bc/</guid>
      <description>TL;DR Databricks offers a detailed exploration of the evaluation techniques specific to LLM applications in RAG. The emphasis is on the importance of robust metrics and the nuanced intricacies of the evaluation process.
Motivation In the ever-evolving world of Natural Language Processing, understanding how to evaluate Language Model applications is paramount. This article, inspired by Databricks&amp;rsquo; &amp;ldquo;Best Practices for LLM Evaluation of RAG Applications&amp;rdquo;, delves deep into the metrics, methodologies, and challenges of evaluating LLM applications using Retrieval-Augmented Generation (RAG).</description>
    </item>
    
    <item>
      <title>Collections in Java</title>
      <link>https://blog.takanabe.tokyo/en/2022/06/40-f87-d38-0-e07-4-c50-a884-6-d5-a0-c054318/</link>
      <pubDate>Sun, 19 Jun 2022 08:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2022/06/40-f87-d38-0-e07-4-c50-a884-6-d5-a0-c054318/</guid>
      <description>TL;DR  As for collection usages in collaborative projects , I prefer to use Guava instead of Java API for consistency, simplicity, and safety. Use immutable collections if we don&amp;rsquo;t need mutable ones to take advantages of performance and get rid of mis-operations around collections. JDK&amp;rsquo;s Collections.unmodifiableXXX is an error-prone and need to understand the behavior deeply (not good for team-wise projects).  Motivation  Still not productive in Java due to my unfamiliarity.</description>
    </item>
    
    <item>
      <title>enum in Java</title>
      <link>https://blog.takanabe.tokyo/en/2022/02/4a30422a-d158-4c43-a808-c3e389301831/</link>
      <pubDate>Tue, 15 Feb 2022 08:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2022/02/4a30422a-d158-4c43-a808-c3e389301831/</guid>
      <description>Motivation  Understand how to write an enum type in Java.  Basic definitions and instance methods public class Main { public static void main(String[] args) { try { System.out.printf(&amp;quot;LogLevel.valueOf(): %s\n&amp;quot;, LogLevel.valueOf(&amp;quot;LOW&amp;quot;)); System.out.printf(&amp;quot;LogLevel.valueOf().getClass(): %s\n&amp;quot;, LogLevel.valueOf(&amp;quot;LOW&amp;quot;).getClass()); System.out.printf(&amp;quot;LogLevel.valueOf(): %s\n&amp;quot;, LogLevel.valueOf(&amp;quot;NONE&amp;quot;)); } catch (Exception e){ System.out.println(e); } System.out.println(); // Testing enum&#39;s constructor for (LogLevel logLevel: LogLevel.values()) { System.out.println(&amp;quot;--------------------START-----------------------&amp;quot;); System.out.printf(&amp;quot;# Log level: %s\n&amp;quot;, logLevel); System.out.printf(&amp;quot;instance of LogLevel?: %b\n&amp;quot;,logLevel instanceof LogLevel); System.out.println(); // Testing getter method System.</description>
    </item>
    
    <item>
      <title>Executing Java code like a script</title>
      <link>https://blog.takanabe.tokyo/en/2022/02/ce01dc9b-1d3f-4afb-b9a4-161acd5e3e0e/</link>
      <pubDate>Mon, 14 Feb 2022 09:30:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2022/02/ce01dc9b-1d3f-4afb-b9a4-161acd5e3e0e/</guid>
      <description>TL;DR  JEP 330 allows us to run casual (e.g. scripting purpose) Java code without javac  Traditional Java code execution Let&amp;rsquo;s say we have the following Main.java and Word.java.
// Main.java public class Main { public static void main(String[] args) { for (Word str : Word.values()) { System.out.println(str.getWord()); } } }  // Word.java public enum Word { A(&amp;quot;apple&amp;quot;), B(&amp;quot;banana&amp;quot;), C(&amp;quot;cat&amp;quot;), D(&amp;quot;dog&amp;quot;) ; private final String str; Word(String str) { this.</description>
    </item>
    
    <item>
      <title>Sabbatical and new journey at Launchable</title>
      <link>https://blog.takanabe.tokyo/en/2022/01/312b7f26-be12-4ff8-91fd-aaca65f729f6/</link>
      <pubDate>Sat, 15 Jan 2022 06:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2022/01/312b7f26-be12-4ff8-91fd-aaca65f729f6/</guid>
      <description>TL;DR  I had two-months sabbatical since Oct, 2021 I resigned Cookpad Inc. and joined Launchable, Inc.  Journey at Cookpad is closed As described in my Japanese article, after closing my memorable journey at Cookpad Inc., I joined Launchable, Inc. I had many interesting technical challenges and could enthusiastically tackle them every day. Because I spent almost six years at the multi-national company, I have many friends around the globe, which is the most valuable for me more than anything.</description>
    </item>
    
    <item>
      <title>Comparison of CircleCI and GitHub Actions</title>
      <link>https://blog.takanabe.tokyo/en/2022/01/ac0d08e7-90a3-4242-97df-4b5b82b2e7ae/</link>
      <pubDate>Thu, 13 Jan 2022 06:30:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2022/01/ac0d08e7-90a3-4242-97df-4b5b82b2e7ae/</guid>
      <description>The following comparison tables are useful to understand differences between CicleCI and GitHub Actions services as of Jan 13, 2022. I created this table to ellaborate on the differences between two most used CI SaaS for small/middle size organizations.
TL;DR  GitHub Actions and CircleCI have almost same features If you start using CI SaaS today, use GitHub actions If you want to support a monorepo, use GitHub actions If you need huge concurrency capacity but don&amp;rsquo;t want to manage self-hosted runners, use CircleCI  Feature comparison    Feature Expectation Circle CI GitHub Actions Note     Manual CI execution We can trigger CI jobs by manually outside of CI/CD pipelines.</description>
    </item>
    
    <item>
      <title>Error handling in golang 1.13</title>
      <link>https://blog.takanabe.tokyo/en/2020/05/error-handling-in-golang-1.13/</link>
      <pubDate>Fri, 08 May 2020 13:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2020/05/error-handling-in-golang-1.13/</guid>
      <description>TL;DR  errors standard library package in golang 1.13 cannot be alternatives of pkg/errors and xerrors. Use xerrors for error handling for new golang projects. No need to switch from pkg/errors to xerrors.  Motivation golang is a very simple language and that&amp;rsquo;s the core philosophy of its design. Along with the design, standard libraries are also simple and don&amp;rsquo;t do too many things. However, the features of error standard library is not enough for developments.</description>
    </item>
    
    <item>
      <title>Can GitHub CLI be alternative of hub?</title>
      <link>https://blog.takanabe.tokyo/en/2020/04/can-github-cli-be-alternative-of-hub/</link>
      <pubDate>Sat, 25 Apr 2020 07:00:00 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2020/04/can-github-cli-be-alternative-of-hub/</guid>
      <description>TL;DR  The GitHub CLI replaces the hub if you&amp;rsquo;re using only github.com GitHub Enterprise is not supported now (as of 2020/4/24), so it&amp;rsquo;s not a replacement for hub for my use. The GitHub CLI now supports GHE !! See GA for more info.  Motivation Since GitHub CLI can do more things, I investigated whether I can migrate from hub, which is usually used as a CLI client of GitHub.</description>
    </item>
    
    <item>
      <title>Remove squash-merged local git branches</title>
      <link>https://blog.takanabe.tokyo/en/2020/04/remove-squash-merged-local-git-branches/</link>
      <pubDate>Sun, 19 Apr 2020 22:45:59 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2020/04/remove-squash-merged-local-git-branches/</guid>
      <description>Motivation The default merge method on GitHub Pull Requests creates a merge commit. But GitHub also provides us several merge options and &amp;ldquo;Squash and merge&amp;rdquo; option is one of them. Because a squash-merged commit is not the same as the commits in a local branch, git cannot list the squash-merged local branch by git branch --merged. Therefore, we cannot clean up outdated local branches with the following commands.
$ git fetch --prune $ git branch --merged | egrep -v &amp;quot;(^\*|master|ANY_BRANCH_YOU_WANT_TO_EXCLUDE)&amp;quot; | xargs -I % git branch -d %  These commands can remove obsolete remote branches on GitHub and local branches when we use default merge commits.</description>
    </item>
    
    <item>
      <title>Elasticsearch basic for operators part 1: Terminology in Elasticsearch world</title>
      <link>https://blog.takanabe.tokyo/en/2020/04/elasticsearch-basic-for-operators-part-1-terminology-in-elasticsearch-world/</link>
      <pubDate>Sun, 05 Apr 2020 23:00:59 +0900</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2020/04/elasticsearch-basic-for-operators-part-1-terminology-in-elasticsearch-world/</guid>
      <description>Motivation Elasticsearch is one of the candidates to provide search and auto-completion features to web and mobile applications. I&amp;rsquo;ve delivered Elasticsearch in production for many years in various services. However, I&amp;rsquo;m stupid enough to forget its technical jargon and essential concepts, configurations, and operations. It&amp;rsquo;s a waste of time to investigate the Elastic official documents again and again because the page I looked for was always the same. Thus, I will leave the important information to deliver Elasticsearch in production from my experiences.</description>
    </item>
    
    <item>
      <title>Strategy for two-tier on-call rotation</title>
      <link>https://blog.takanabe.tokyo/en/2019/06/strategy-for-two-tier-on-call-rotation/</link>
      <pubDate>Tue, 25 Jun 2019 14:44:55 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2019/06/strategy-for-two-tier-on-call-rotation/</guid>
      <description>TL;DR  I tried to elaborate on the pros and cons of single-, dual-, and triple-site on-call rotations.  Single-site on-call rotation is straightforward and easy to deliver Dual-site on-call rotation brings huge advantages such as the promise of being able to sleep and have private time, as well as talent pool expansions, if we can break barriers to communication Triple-site on-call rotation is not feasible because of the significant cost for communication and delivery   Motivation I have been working as a Site Reliability Engineer (SRE) for a while now.</description>
    </item>
    
    <item>
      <title>An Elegant Puzzle: Systems of Engineering Management [Chapter 2]</title>
      <link>https://blog.takanabe.tokyo/en/2019/06/an-elegant-puzzle-systems-of-engineering-management-chapter-2/</link>
      <pubDate>Wed, 05 Jun 2019 01:06:51 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2019/06/an-elegant-puzzle-systems-of-engineering-management-chapter-2/</guid>
      <description>Motivation This is a book reading record of &amp;ldquo;An Elegant Puzzle: Systems of Engineering Management [Chapter 2]&amp;rdquo;
   An Elegant Puzzle: Systems of Engineering Management (English Edition) Author: Will Larson Manufacturer: Stripe Press Publish date: 2019-05-28     The main purpose of reading this book is gaining knowledge to lead teams in rapid growth organizations.
It seems that the author had experienced those kinds of significant organization growth at Uber and Stripe (organization size changed from 200 to 2000) and I think the insights and experiences accumulated in the chaotic environment must be valuable for teams which will face the same kinds of growth and problems embraced by the growth.</description>
    </item>
    
    <item>
      <title>An Elegant Puzzle: Systems of Engineering Management [Chapter 1]</title>
      <link>https://blog.takanabe.tokyo/en/2019/06/an-elegant-puzzle-systems-of-engineering-management-chapter-1/</link>
      <pubDate>Sun, 02 Jun 2019 15:37:47 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2019/06/an-elegant-puzzle-systems-of-engineering-management-chapter-1/</guid>
      <description>Motivation This is a book reading record of &amp;ldquo;An Elegant Puzzle: Systems of Engineering Management [Chapter 1]&amp;rdquo;
   An Elegant Puzzle: Systems of Engineering Management (English Edition) Author: Will Larson Manufacturer: Stripe Press Publish date: 2019-05-28     The main purpose of reading this book is gaining knowledge to lead teams in rapid growth organizations.
It seems that the author had experienced those kinds of significant organization growth at Uber and Stripe (organization size changed from 200 to 2000) and I think the insights and experiences accumulated in the chaotic environment must be valuable for teams which will face the same kinds of growth and problems embraced by the growth.</description>
    </item>
    
    <item>
      <title>Python Machine Learning Chapter3.1&amp;3.2</title>
      <link>https://blog.takanabe.tokyo/en/2017/03/python-machine-learning-chapter3.13.2/</link>
      <pubDate>Sun, 05 Mar 2017 02:24:00 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2017/03/python-machine-learning-chapter3.13.2/</guid>
      <description>Motivation Learn fundamental Machine learning skill set
Chapter3. A Tour of Machine Learning Classifiers Using Scikit-learn Goal of this Chapter  Take a tour though a selection of popular and powerful machine learning algorithms Lean about the differences between several supervised learning algorythm for classification Develop an intuitive appreciation of their strengths and weakness  Summary of this Chapter  Introduction to the concepts of popular classification algorithms Using the scikit-learn machine learning library Questions to ask when selecting a machine learning algorithm(how do we choose?</description>
    </item>
    
    <item>
      <title>fluentd input plugin RDS Aurora slowquery log</title>
      <link>https://blog.takanabe.tokyo/en/2016/10/fluentd-input-plugin-rds-aurora-slowquery-log/</link>
      <pubDate>Thu, 27 Oct 2016 13:43:42 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2016/10/fluentd-input-plugin-rds-aurora-slowquery-log/</guid>
      <description>Overview This fluent input plugin collects RDS Aurora slowquery log with ParameterGroup option log_output=FILE. This plugin fetches only the difference between the latest and previous fetched slow query log.
Background There are a lot of RDS mysql slowlog input plugins that collect mysql slowquery logs with ParameterGroup option log_output=TABLE. However if you use RDS Aurora with the option, there are two following problems:
1. mysql.slow_log table is operated with Engine=CSV mysql.</description>
    </item>
    
    <item>
      <title>Redux boilerplate with React &amp; Material UI</title>
      <link>https://blog.takanabe.tokyo/en/2015/10/redux-boilerplate-with-react-material-ui/</link>
      <pubDate>Tue, 20 Oct 2015 13:57:55 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2015/10/redux-boilerplate-with-react-material-ui/</guid>
      <description>Motivation There is no boilerplate of Redux using React &amp;amp; Material UI when I wanted to created a new web application with the combination.
Since I felt it was waste of time to solve its dependency problems among React, Redux and Material UI, I prepared its boilerplate on github.
 takanabe/react-redux-material_ui-boilerplate · GitHub  I wish you would consentrate to develop application by using the template :)
About boilerplate A boilerplate for React + Redux + Material UI + ES6 syntax applications.</description>
    </item>
    
    <item>
      <title>Introduction of OpenStack</title>
      <link>https://blog.takanabe.tokyo/en/2015/03/introduction-of-openstack/</link>
      <pubDate>Thu, 12 Mar 2015 13:02:38 +0000</pubDate>
      
      <guid>https://blog.takanabe.tokyo/en/2015/03/introduction-of-openstack/</guid>
      <description>Motivation To organise information, knowledge and experiences of OpenStack.
About this article A year has passed since beginning development of an OpenStack infrastructure. There is now a lot of information and knowledge available which I didn&amp;rsquo;t have when I first started developing the IaaS. Through summarising and and organising gained knowledge and experiences and highlighting with some informative articles, I hope to share information with newcomers to the OpenStack world.</description>
    </item>
    
  </channel>
</rss>