原创 python 常用api

1. python 2/3 區別 整除 python 2: print '3 / 2 =', 3 / 2 print '3 // 2 =', 3 // 2 print '3 / 2.0 =', 3 / 2.0 print '3

原创 java jni 入門

1. 安裝java環境 yum install java-devel -y yum install java -y 2. 編譯流程 下面將介紹編寫 JNI 入門教程HelloNative程序的編寫, 主要的步驟爲: 編寫 H

原创 Centos7 / Centos 8常用操作

Centos 8 安裝桌面系統 dnf groupinstall Workstation systemctl set-default graphical Centos 8 安裝C++ 靜態庫 sudo dnf config-ma

原创 tensorflow C++ api

1. 背景 TensorFlow是一個從離線到在線一條龍實現的機器學習庫。 一般來說,離線算法一般採用Python進行開發,並進行訓練,以及得到模型結果, 而在線部分,採用的則是C++來實現,主要考慮到在線預測要一定的性能要求。這

原创 搜索排序之線性模型

搜索排序一般分成粗排和精排,一般來說,粗排使用線性模型,可以快速迭代出結果。後續等有用戶行爲之後,則進行進一步的精排模型的接入, 可以進一步提升搜索排序的精準度。今天這裏主要介紹搜索排序的線性模型。 1. 背景 最近在看一本關

原创 MySQL 索引基本常識

本文摘自微信公衆號。 什麼是索引? 索引爲什麼查詢快,索引的數據結構是什麼? 聚簇索引/非聚簇索引區別? 什麼是覆蓋索引? 唯一索引/普通索引? 單列索引/聯合索引區別?Full-index全文索引? 什麼是下推索引? 什麼

原创 gerrit 常用小技巧

文章目錄背景基礎設置操作提交代碼操作 背景 工作使用的gerrit,記錄一些平時經常會用到的git命令,方便備忘。 基礎設置操作 設置用戶名和郵箱 git config --global user.name xxx git c

原创 C++ 11 私有成員變量就地初始化

在C++11之前,對於類中的非靜態成員變量,不能在類中進行初始化,它們的初始化操作只能通過構造函數來進行,示例如下: class Foo { private: int a = 1; //編譯錯誤

原创 double buffer 實現

1. 背景 字典或者模型加載經常會用到雙buffer這樣讀多寫少的數據結構。這裏介紹一個從百度的brpc拿出來的一個雙buffer實現。 2. 痛點 經常會遇到的是一個讀遠多於寫的數據結構:大部分時候,所有線程從一個不變的serv

原创 TarsCpp 的pb2tarscpp支持協程

1. 背景 講真的,開源出來的tars代碼質量真的很一般。雖然原生的tars協議(jce協議),支持的比較好, 但是其他協議支持就很一般了,比如pb協議的支持,裏面有幾個bug, 包括命名空間的支持、rpc調用多個函數指針錯亂,以

原创 基於DAG簡單的任務調度

1. 背景 DAG:是一個無迴路的有向圖。一個經典的應用是用於任務的調度,用來定義任務的依賴關係和流向, 根據整個DAG的定義,可以從中獲取哪個任務該先執行,哪個任務後執行。哪些步驟是可以並行執行的。 2. DAG的定義 這裏闡述

原创 無鎖內存隊列

應用場景 消費者生產者模型,經常會用到的是無鎖內存隊列。例如異步日誌上報,異步數據上報, 一般的做法,多個線程生產數據寫入內存,而會由一個線程對數據進行匯聚上報,從而達到數據緩衝的效果。 無鎖內存隊列的核心思想就是無鎖,如何做到

原创 LTR101 線性模型

1. 背景 搜索排序最簡單的模型算法是point wise,這裏簡單展示使用簡單的線性模型調權的方案。 2. 數據集合 grade,titleScore,overviewScore,ratingScore,comment:# <d

原创 NDCG原理和實現

1. 原理 對於搜索引擎,本質是用戶搜一個query, 引擎返回一個結果列表,那麼如何衡量這個結果列表的好壞? 我們希望把最相關的結果放到排名最靠前的位置,因爲大部分用戶都是從上往下閱讀的, 那麼最相關的前面可以最大程度減少用

原创 深度文本匹配

1. 傳統的文本匹配 最近在瞭解文本匹配相關一些實現和算法。在信息檢索系統裏面,如何釐清文本的相關性,是一個非常關鍵的問題。所謂的相關性,主要包括兩個方面, 一個方面是文本相關性,還有一個語義的相關性。在經典的模型裏面,比較常見的