redis - erlang 学习
redis - erlang 学习1. download rediswindows-exe:https://github.com/MSOpenTech/redis/releasesgit source: https://github.com/antirez/redis2. 启动 and 配置 and 简单熟悉网上有教程,可以很快的启动和简单配置
http://www.runoob.com
读取.csv文件为.erl文件
1. 功能描述
erlang游戏服务器经常会用到的一个功能模块就是将策划配置的.csv文件改写成 .erl 文件。所以我把这个功能单独写成了一个服务。
2. 服务git地址为
https://github.com/hongweikkx/csv2erl.git
3. 功能效果:
.csv 文件
cat hero.csv
hero_id,hero_name
英雄id,英雄名字
...
erlang-面向函数的程序 面条 vs 馄饨
erlang-面向函数的程序 面条 vs 馄饨
1. 如何解决面条式的代码?(面条:代码结构或者逻辑混乱如意大利面般)
1. 变量命名
2. 函数中一致性的抽象层次
(错误表象:一个函数有多于两层的嵌套或者缩进)
3. 短小函数
(错误表象: 一眼望不到边的函数)
4. 重复函数
(错误表象:有ctrl-c ctrl-v 的代码片段)
2.如何解决函数过于短小导...
google c++编码风格(中文)
google c++编码风格-zh
http://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/
解决git 本地修改导致不能pull
问题:
我在本地修改过 README.md
git pull 时发现报错:
Your local changes to the following files would be overwritten by merge: README.md.
Please commit your changes or stash them before you merge
可是我现在不想提交本地的修改...
abstract_code 和erl文件的互相转换
erl <=> abstract_code
erl => abstract_code
erlc +debug_info test.erl
{ok, {_, [{abstract_code, {_, Abs}}]}} = beam_lib:chunks(test, [abstract_code]).
abstract_code => erl
S = e...
基础语法之七:重载操作符的成员和非成员选择
1、c++ primer :选择成员和非成员实现 赋值(=)、下标([])、调用(())和成员访问箭头(->)等操作符必须定义为成员,将这些操作符定义为非成员函数将在编译时标记为错误。 像赋值一样,复合赋值操作符通常应定义为类的成员,与赋值不同的是,不一定非得这样做,如果定义非成员复合赋值操作符,不会出现编译错误。 改变对象状态或与给定类型紧密联系的其他一些操作符,如自增、自减和解引用,通常就定义为类成员。 对称的操作符,如算术操作符、相等操作符、关系操作符和位操作符,最好定义为普通非成员函数
golang &^ 运算符
&^ 运算符
0110 &^ 1011 = 0100
1011 &^ 1101 = 0010
&^ 二元运算符的操作结果是“bit clear”
若: a &^ b 的意思就是 将b中为1的位 对应于a的位清0, a中其他位不变...
(未完)HashMap源码
继承类:AbstractMap 实现接口:Map、Cloneable Map:将key-value映射为对象,接口取代了Dictionary类, AbstractMap实现了Map,减少实现Map接口时的工作量 Cloneable实现此接口的类可以进行拷贝操作 重要说明: 1、异或操作: x是二进制数0101,y是二进制数1011; 则x ^ y=1110 2、每个键值对Node节点的hashCode=Objects.hashCode(key) ^ Objects.hashCode(value
BZOJ2597 WC2007剪刀石头布(费用流)
考虑使非剪刀石头布情况尽量少。设第i个人赢了xi场,那么以i作为赢家的非剪刀石头布情况就为xi(xi-1)/2种。那么使Σxi(xi-1)/2尽量小即可。 考虑网络流。将比赛建成一排点,人建成一排点,每场未确定比赛向比赛双方连边,确定比赛向赢者连边,这样就是一种合法的比赛方案了。 在此基础上控制代价最小。由于每多赢一场非剪刀石头布情况的增量就更大,将边拆开费用设为增量即可。 #include<iostream>
#include<cstdio>
#include<cmath>
#
【leetcode】143. Reorder List
题目说明 https://leetcode-cn.com/problems/reorder-list/description/ 给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 解法1 首先利用快慢指针找到链表中间结点mid,然后从head遍历到mid,遍历时,将对应的尾部结点插入到当前结点之后。 找尾部对应结点时,从mid遍历到尾部找到对应的尾部结点。整个过程进行了双重循环,时间复杂度较高。还是推荐解法2。 时间复杂
多工序、多机台(产线)环境下的排程要点
关于生产计划排程的种类及其特性 释义:文中提到的资源,是指需要完成一个生产作业所需的生产条件,例如机台、原料等,称为广义资源。 对于生产计划,常见有以下四种类型: 单一工序,单一资源种类. 单一工序,多资源种类. 多工序,单一资源种类(较少见). 多工序,多资源种类. 下面对上述四种生产计划进行逐一分析,本文的分析,着重于计划的优化实现,而不是硬性规则的实现,例如通过工序的就绪情况来确定资源的就绪要求,例如MRP等,这些硬性的约束可以通过规则引擎(例如Drools)来确保在生成计划过程中,计划
Heap-Architectures-for-Concurrent-Languages-using-Message-Passing
设计并发语言的一个难点就在于运行时系统中存储结构的实现,
这里将讨论 依赖自动内存回收和通过异步消息传递实现并发的语言的运行时系统实现
有三种可选择的内存堆结构。
1:每个进程分配和管理自己的内存区域, 所有在进程间的消息都必须拷贝。
2:有一个所有进程都共享的堆
3:一个混合的架构, 每个进程有自己的私有堆,同时有一个共享的堆用于类似于消息的数据发送.
接下...
hibernate and why gen_server2 ?
hibernate - 休眠
1. 描述:
使进程进入一个最小内存分配的等待状态。 如果这个进程并没有期望近期接收任何消息, 那么这个状态是有用的。
2. 行为:
会丢掉进程调用栈,然后 进行gc。 这样所有的活数据就会在一个连续的堆中。 这个堆大小几近相当于所有活数据的大小(即便这个大小小于最小进程堆大小) . 如果所有活数据大小小于最小进程堆大小的话,在醒来后就会发生一次g...
动态规划、分治、贪心、递归
一言以蔽之:
dp 和分治 之间的区别就在于是否有重叠子问题 ,如果有那就应该dp 否则就应该分治。 当然如果可以每一步都产生最优解那么就不必dp了, 贪心算法就可以了. 而递归只是一种实现算法的方法.
例子
下面分别用 dp, dc(分治法), 贪心来做 leetcode 514. 自由之路
https://leetcode-cn.com/problems/freedom-trai...
golang 用函数名动态调用函数(包括变参函数)
golang 用函数名动态调用函数(包括变参函数)
func main(){
ret1 := Apply(Hello, []interface{}{2,3})
for _, v:= range ret1{
fmt.Println(v)
}
ret2 := Apply(Format, []interface{}{"hello",44})
f...
今日推荐
周排行