├── 2013 ├── April │ ├── Return_of_C++.zip │ ├── Scala.ppt │ ├── announcement.md │ └── photo.zip ├── June │ ├── announcement.md │ ├── haskell.pdf │ └── yesod.pdf ├── May │ ├── announcement.md │ ├── photo.zip │ └── schemepy.html └── October │ ├── 2013-shlug-lisp.pdf │ ├── announcement.md │ └── haskell_intro.tar.bz2 ├── 2014 ├── Jan │ ├── 2014-01-25-email-system.tgz │ ├── D_Programming.pdf │ └── announcement.md ├── July │ └── announcement.md ├── June │ └── announcement.md ├── Mar │ ├── announcement.md │ ├── pacemaker介绍.odp │ └── 密码强度分析.txt ├── May │ ├── PCI_software_engineer_perspective.odp │ ├── announcement.md │ └── pci_driver.c └── October │ ├── announcement.md │ └── maintenance.pdf ├── 2015 ├── April │ ├── HAWQ.pptx │ ├── Introduction_to_Kubernetes.pdf │ └── announcement.md ├── August │ └── announcement.md ├── Dec │ └── announcement.md ├── Jan │ └── announcement.md ├── June │ ├── announcement.md │ └── teambition_map.jpeg └── Oct │ └── announcement.md ├── 2016 ├── Dec │ └── announcement.md ├── Feb │ ├── WebShell-by-FuKui.pptx │ ├── announcement.md │ └── security-design-principles-by-ADUCID.ppsx ├── Jan │ └── announcement.md ├── July │ ├── DL101_and_MXNet_Tutorial.pdf │ ├── Miracast_and_Linux.pdf │ └── announcement.md ├── June │ ├── announcement.md │ ├── microservices.pdf │ ├── microservvice_and_asp_deployment.pdf │ └── raft.pdf ├── March │ ├── SSL.pdf │ ├── announcement.md │ └── ftrace.txt └── Nov │ ├── A Brief Introduction to Neural Networks with Practical Example.pdf │ └── announcement.md ├── 2017 ├── July │ ├── announcement.md │ ├── cljs-intro.md │ └── debian.pdf ├── June │ ├── announcement.md │ ├── kernel.key │ ├── kernel.pdf │ └── kubernetes.pdf ├── May │ ├── a_brief_intro_nix_and_nixos.org │ ├── a_brief_intro_nix_and_nixos.pdf │ ├── announcement.md │ └── git.pdf ├── Nov │ └── h5control.pdf ├── Oct │ ├── announcement.md │ ├── btc_forks.pdf │ └── openvpn.pdf └── Sep │ ├── A_step_by_step_LED_lamp_DIY_guide_for_smart_home.html │ ├── The_future_of_Bitcoin.pdf │ └── announcement.md ├── 2018 ├── April │ ├── Introduction_to_Cluster_Scheduler_Nomad │ ├── Testing_with_QuickCheck │ └── announcement.md ├── Aug │ ├── announcement.md │ └── slides_and_photos.md ├── Jan │ ├── 180124_U mine Crypto & Mining.pdf │ └── announcement.md ├── June │ ├── announcement.md │ └── slides_and_photos.md └── Mar │ ├── 2018-spring-ipfs-dat-slide │ ├── Pregel.pdf │ └── announcement.md └── README.md /2013/April/Return_of_C++.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/April/Return_of_C++.zip -------------------------------------------------------------------------------- /2013/April/Scala.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/April/Scala.ppt -------------------------------------------------------------------------------- /2013/April/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2013年4月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,4月21日SHLUG将会举办2013年的4月技术交流聚会,也是今年FP季第一场。 4 | 5 | **地址:** 上海静安区昌平路990号8号楼(近延平路) - 联合创业办公社 6 | 7 | **时间:** 2013年4月21日(星期日) 14点 至 17点 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题1:**《C++王者归来》** 演讲者:**吴咏炜** 16 | 17 | 2. 主题2:**《Scala函数式编程简介》** 演讲者:**小马xiaoma** 18 | 19 | 3. 自由交流 20 | 21 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 22 | 23 | # 主题详细信息: 24 | 25 | ## 主题1 26 | 《C++王者归来》 27 | 28 | ## 演讲者 29 | **吴咏炜** 30 | 31 | ## 简介 32 | C++已经34岁了,已经进入中年,但依然活力焕发。从服务器、台式机到iPhone或Android手机,到处可见其身影。本讲座将阐释其中的原因,解释为什么C++在当今的世界仍相当重要。讲座将概要介绍C++11标准中的新特性,并向大家展示如何使用这些新特性让你的程序变得更简单,更具表达性,以及更健壮。 33 | 34 | ## 目标听众 35 | C++开发人员,以及对编程语言和范式感兴趣的其他人士。 36 | 37 | ## 需要的基础知识 38 | C++98的基本特性,最好熟悉STL(会使用即可,不要求掌握模板开发技术)。 39 | 40 | ## 预计时长 41 | 90分钟 42 | 43 | ## 主题2 44 | 《Scala函数式编程简介》 45 | 46 | ## 演讲者 47 | **小马xiaoma** 48 | 49 | ## 简介 50 | Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。在twitter, foursquare, meetup,LinkedIn 等网站得到广泛使用。本技术讲座主要简单介绍Scala的一些基本原理和概念,并且以函数式编程为例,详细介绍Scala的函数式编程的概念。 51 | 52 | ## 目标听众 53 | JAVA开发人员,以及对函数式编程感兴趣的其他人士。 54 | 55 | ## 需要的基础知识 56 | 需要基础的编程知识。 57 | 58 | ## 预计时长 59 | 60分钟 60 | -------------------------------------------------------------------------------- /2013/April/photo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/April/photo.zip -------------------------------------------------------------------------------- /2013/June/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2013年6月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,6月22日SHLUG将会举办2013年的6月技术交流聚会,也是今年FP季第三场。 4 | 5 | **地址:** 上海静安区昌平路990号8号楼(近延平路) - 联合创业办公社 6 | 7 | **时间:** 2013年6月22日(星期六) 14点 至 17点 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《用haskell和yesod开发web应用》** 演讲者:**吴江** 16 | 17 | 2. 自由交流 18 | 19 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 20 | 21 | # 主题详细信息: 22 | 23 | ## 主题1 24 | 《用haskell和yesod开发web应用》 25 | 26 | ## 演讲者 27 | **吴江** 28 | 29 | ## 简介 30 | haskell是纯粹的函数式编程语言,yesod是haskell上的web框架。通过介绍haskell和yesod的一些特性,介绍这个组合的优点。 31 | 32 | ## 目标听众 33 | 对函数式编程和web开发有兴趣的同学。 34 | 35 | ## 需要的基础知识 36 | 最好预先了解一些haskell 37 | 38 | ## 预计时长 39 | 60分钟 40 | -------------------------------------------------------------------------------- /2013/June/haskell.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/June/haskell.pdf -------------------------------------------------------------------------------- /2013/June/yesod.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/June/yesod.pdf -------------------------------------------------------------------------------- /2013/May/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2013年5月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,5月25日SHLUG将会举办2013年的5月技术交流聚会,也是今年FP季第二场。 4 | 5 | **地址:** 上海静安区昌平路990号8号楼(近延平路) - 联合创业办公社 6 | 7 | **时间:** 2013年5月25日(星期六) 14点 至 17点 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《schemepy,用python实现可尾递归的scheme》** 演讲者:**Shell909090** 16 | 17 | 2. 自由交流 18 | 19 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 20 | 21 | # 主题详细信息: 22 | 23 | ## 主题1 24 | 《schemepy,用python实现可尾递归的scheme》 25 | 26 | ## 演讲者 27 | **Shell909090** 28 | 29 | ## 简介 30 | schemepy是以python为基础实现的,可以尾递归的scheme。通过解构这一实现,简单的解释了如何模拟栈工作来实现一个lisp系统。 31 | 32 | ## 目标听众 33 | 对scheme的原理和实现有兴趣的同学 34 | 希望在python内嵌入更有强力的内省语言的同学 35 | 希望实现挂起/coroutine功能的同学 36 | 37 | ## 需要的基础知识 38 | 基本看完sicp,尤其是第四章。 39 | 40 | ## 预计时长 41 | 60分钟 42 | -------------------------------------------------------------------------------- /2013/May/photo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/May/photo.zip -------------------------------------------------------------------------------- /2013/May/schemepy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | schemepy 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |
25 | 26 |
27 |
28 |

解析

29 |

lisp系列语言的解析器很简单,简单里说,就是匹配括号,形成树。这个在任何一本算法书上都有。有三点细节,一个是引号。在字符串结束前,不需要匹配括号。而且字符串内部还要处理转义。一个是注释,从分号到行结束。最后一个是引用,单引号后面不需要空格。

30 | 31 |
32 |
33 |
34 |
35 |

编译

36 |

解析的结果是python对象,要转换为scheme对象才方便使用。为了简单起见,不需要特别处理的对象,实际上是同功能的python对象来兼容的,包括int,long,float。同时,某些string对象实际上会被转换为其他对象,例如#t和#f。

37 |

scheme对象的核心是OCons,在类lisp语言中,序对被广泛用于列表,树的定义。

38 | 39 |
40 |
41 |
42 |
43 |

环境

44 |

执行是lisp的核心。lisp语言的执行有两个对象,一个是执行环境,一个是栈。

45 |

所谓执行环境,就是保存符号和对象对应关系的地方。从语言模型来说,这是一个层级模型。符号应当首先在最内层查找,当内层无法找到对象时逐层向外查找,直到找到为止。

46 |
(define (fib n)
 47 |   (define (fib1 i a b)
 48 |     (if (= i n)
 49 |         a
 50 |         (fib1 (+ i 1) (+ a b) a)))
 51 |   (fib1 1 1 1))
 52 | (display (fib 1))
 53 | (display (fib 2))
 54 | (display (fib 3))
 55 | (display (fib 4))
 56 | (display (fib 5))
 57 | 
58 | 59 |
60 |
61 |
62 |
63 |

函数调用和子环境

64 |

所谓子环境,就是在函数内部有一个自有的子执行环境,保存所有内部的执行结果和中间变量。在每个子函数执行的时候,都应当定义一个子环境。更广泛的说,在每个函数,let的内部,,或者其他需要保存自有的执行环境的地方,都有一个子环境。

65 |

子环境还和函数调用密切相关。调用时的形参和实参对应,实际上是在子环境内,将实参的对象赋值给形参符号的过程。理解了这点,就很容易理解动态参数和命名参数的处理方法。

66 | 67 |
68 |
69 |
70 |
71 |

闭包和环境树

72 |

闭包依赖于子环境又不止于子环境。为了支持闭包,每个生成的函数对象必须保存他生成时的环境栈。

73 |

由于环境需要逐层向上查找,而且环境内又会嵌套环境。因此最终环境会构成类似于树的结构。但是和通常的树相反,树的指向并不是从根到每个叶子,而是从叶子到根。

74 | 75 |
76 |
77 |
78 |
79 |

快速查找

80 |

上述算法是理论算法,为了查找一个对象,需要在多个子环境中进行查询,其效率是O(n),n是环境深度。在层数比较多的时候,这个会严重拖慢系统速度。

81 |

我们可以想象,对于某个子环境来说,有哪些符号,绑定到哪些值,相对都是固定的,很少调整。因此,查找是频繁操作,而写入不是。对于这种情况,我们可以用缓存来增加查找速度。

82 | 83 |
84 |
85 |
86 |
87 |

88 |

尾递归

89 |

是否支持尾递归是一个非常重要的特性,因为不支持尾递归的语言,不可以用递归解一些问题。例如fib问题的单递归解法,在不支持尾递归的系统里面很容易跑到栈溢出。

90 | 91 |
92 |
93 |
94 |
95 |

trampoline

96 |

为了支持尾递归,有几种可选做法。我采用了一种叫做trampoline的做法,配合自行实现的栈来实现尾递归。要特别说明的是,为了支持尾递归,系统的执行效率必然有一些下降。这主要是因为在python语言中,list的效率比系统栈更低,而我又不愿意为了这事专门优化一个特殊的list。

97 |

trampoline的核心思想是。在执行某个单次调用时,约定返回分为两种值,普通结果和特殊值。当返回结果是普通结果时,将最上层的待执行对象退栈。当结果为特殊值时,不对执行对象退栈。因此相反,在执行过程中可以对执行栈进行压栈。这样就可以形成三种情况:

98 |
    99 |
  • 返回普通值:调用返回
  • 100 |
  • 执行过程中压栈,返回特殊值:调用
  • 101 |
  • 执行过程中退栈,再压入新的执行对象,配合返回特殊值:转跳/尾递归
  • 102 |
103 | 104 |
105 |
106 |
107 |
108 |

传递变量

109 |

为了达到对普通求值过程的透明,我设计了一个当前传递变量r。并约定tuple为特殊值。任何对象的执行结果不允许为tuple,除非经过特殊包裹。当用户返回一个tuple时,r = r[0]来获得真实的传递变量值。

110 |

当返回普通值时,r为返回值。这个值在下次执行栈顶对象时会被传入,作为调用的返回结果。当r返回tuple时,这个值则是作为调用/转跳/尾递归传递值,传递给执行对象。

111 |

因此,从具体函数的编写角度来考虑,第一次从系统中取得的r值是上层函数所传递的。当函数需要递归调用时,调用栈的call方法,栈会将目标对象压栈,并返回tuple。将tuple返回trampoline函数,就会完成调用过程。

112 |

然后就是相对不好理解的return过程。当栈求值完成时,执行对象会再次执行。传递的参数就不是上层函数的值了,而是调用的返回。

113 | 114 |
115 |
116 |
117 |
118 |

执行挂起

119 |

当我们自行控制了执行环境和栈之后,我们就可以在执行的任何时候,将环境和栈序列化,再将来的特定时候重新加载再进行计算。这个任何时候,包括某些需要等待IO输入输出的时候,也可以是等待用户输入的时候。

120 |

从简单来说,这是coroutine,但是没有设计多个上下文切换和调度的功能。从复杂来说,这赋予了程序在某个python环境中执行到一半,代码挂起。在合适的条件下,在另一个python环境中被恢复运行。对此,scheme代码无需感知到差异。

121 |

例如下面的例子:

122 |
(display "user input:")
123 | (let ((s (raw_input)))
124 |     (when
125 |      ((= s "q") (quit))
126 |      ((= s "t") (display "temp file size"))
127 |      (#t (quit))
128 |      ))
129 | 
130 |

其中,raw_input的时候,程序会暂停执行,在web界面上弹出提示框让用户选择。当用户选择了之后,程序才会继续执行。而代码对此一无所知。

131 |

具体的实现上,使用了一种特殊的异常。当触发异常时,就会触发trampoline进行核心转储。从理论上,这个赋予了任何代码状态保留和调试的能力。当然,有些时候保存是无法再执行的,例如已经做了压栈但是环境传递变量还没有跟着更新的时候。

132 | 133 |
134 |
135 |
136 |
137 |

coroutine

138 |

为了完成coroutine,至少还需要一个调度核心。调度核心需要维护一个(或者两个)表,分别记录所有被挂起的上下文,和其中那些已经就绪。具体关于调度核心的内容,可以参考操作系统书中调度队列的描述。

139 | 140 |
141 |
142 |
143 |
144 |

函数调用

145 |

函数调用过程

146 |

在lisp中调用一个函数非常辛苦的。由于函数是第一类对象,因此可能出现((lambda (x) (* x x)) 10)的语句。因此首先,当希望调用一个函数的时候,必须先对函数本身求值。

147 |

当函数的值已经确定时,我们又要区分两种情况——正则序对象和应用序对象。在scheme里,这个又被称为严格的和非严格的。大部分对象而言,计算应当是严格的。在所有参数计算完成后才进入函数的体。而为了定义内部符号,有部分计算必须是非严格的,例如if。如果将两个分支分别执行完成后才调用if的体,那就没有任何意义了。

148 |

因此,在解释器中有一个标志位,分别判断是否需要严格执行。

149 |

对于严格执行的对象,另一个麻烦是参数求值顺序。一个是右到左求值,另一个是左到右。在实际的代码中,我采用的是右到左顺序。在初始化时将list反转,结果直接append list就可以完成参数的计算。

150 | 151 |
152 |
153 |
154 |
155 |

内部符号

156 |

由于可以定义非严格计算对象,因此我们才可能将所有内部符号的实现独立于scheme执行和解析系统。

157 |

内部符号是在一个叫做builtin的环境中定义的。在任意执行环境中,这是一切的根。因此用户可以定义自己的符号来覆盖系统符号,例如定义自己的if(如果可以解决非严格问题的话)。由于在系统内还没有引入宏,因此实际上是定义不出合法的if的。

158 | 159 |
160 |
161 |
162 |
163 |

调试

164 |

trampoline给予了我们一个很方便的调试接口——在每次系统对栈顶求值之前,调用一个调试接口。这个接口就等效于单步中断。在系统中,我实现了两个最简单的调试器——print_step和Debuger。前者会将每次的中间栈状态和传递变量打印出来,便于我们跟踪程序。后者可以显示栈,环境,符号,传递变量,监视栈的增长和退出。不过由于尾递归的特性,这并不等于可以监视调用。基本上,除了breakpoint外,这个调试工具实现了一个调试器所需要的所有功能。

165 | 166 |
167 |
168 |
169 |
170 |

打印和格式化

171 |

为了能够调试,我们对必须可以将对象打印出来。出于简单化的理由,我希望打印出来的源码是可读和可执行的。就是说,将一段代码写好后,执行打印出来的代码和执行源代码应当是完全相同的。

172 |

为此,我设计了调试打印系统,这个系统的执行逻辑和编译相反,将转换的目标树格式化为合适的代码。

173 |

同时,由于对代码格式化的规范性,因此可以将不整齐的代码通过parser读入,从format中打印出去,达到格式化的效果。

174 | 175 |
176 |
177 | 178 | 179 | 185 | 186 | 187 |
188 |
189 | 190 | 210 | 211 | -------------------------------------------------------------------------------- /2013/October/2013-shlug-lisp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/October/2013-shlug-lisp.pdf -------------------------------------------------------------------------------- /2013/October/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2013年10月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,10月19日SHLUG将会举办2013年的10月技术交流聚会,也是今年FP季第四场。 4 | 5 | **地址:** 上海静安区昌平路700号 昌平路和常德路路口, 联合创业办公社的三期:光源 举办 6 | 7 | **时间:** 2013年10月19日(星期六) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《Introduction to Haskell, an elegant and expressive language》** 演讲者:**喻昌远** 16 | 17 | 2. 主题:**《Lisp 语言及当前的应用和发展》** 演讲者:**黄涧石** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA制聚餐 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | 27 | ## 主题1 28 | 《Introduction to Haskell, an elegant and expressive language》 29 | 30 | ### 演讲者 31 | **喻昌远** 32 | 33 | ### 简介 34 | Haskell是一门函数式的编程语言,其惰性、静态以及纯粹的特性使它在各种编程语言中独树一帜。Haskell的语法简洁优雅,表达能力丰富。本讲座将先简单地介绍Haskell以及函数式编程的一些知识,然后通过具体的例子来展示Haskell的使用,展现其极具特色的一面,使听众对函数式编程以及Haskell有一个直观的了解,达到启发大家编程思路的目的。 35 | 36 | ### 目标听众 37 | 程序设计人员,或者对函数是编程感兴趣的其他人士 38 | 39 | ### 需要的基础知识 40 | 一定的程序设计基础,对C或ruby的语法有一定了解,如果熟悉或使用过其他函数式语言更佳 41 | 42 | ### 预计时长 43 | 90分钟 44 | 45 | ## 主题2 46 | 《Lisp 语言及当前的应用和发展》 47 | 48 | ### 演讲者 49 | **黄涧石** 50 | 51 | ### 简介 52 | Lisp 是一门 Hacker 所推崇的语言,讲座将会介绍 Lisp 语言中一些特性,实际编写软件中独特的优点,以及当前一些优秀的应用和工具,最后介绍一下应用 Lisp(主要是 Clojure)的一些创业公司。 53 | 54 | ### 目标听众 55 | Lisp 爱好者,程序语言爱好者(特别是动态语言fans) 56 | 57 | ### 需要的基础知识 58 | 程序语言的基本知识,编程经验,有 Lisp 编程经验为佳 59 | 60 | ### 预计时长 61 | 90分钟 62 | -------------------------------------------------------------------------------- /2013/October/haskell_intro.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2013/October/haskell_intro.tar.bz2 -------------------------------------------------------------------------------- /2014/Jan/2014-01-25-email-system.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2014/Jan/2014-01-25-email-system.tgz -------------------------------------------------------------------------------- /2014/Jan/D_Programming.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2014/Jan/D_Programming.pdf -------------------------------------------------------------------------------- /2014/Jan/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2014年1月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,1月25日SHLUG将会举办2014年的1月技术交流聚会。 4 | 5 | **地址:** 上海市浦东新区乳山路506弄上海滩花园洋房南区1号楼5楼 Gitcafe (Google地图链接:http://goo.gl/maps/UXn5a) 6 | 7 | **时间:** 2014年1月25日(星期六) 13:30 - 18:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《D语言介绍,The D Programming Language》** 演讲者:**Lionello Lunesu** 16 | 17 | 2. 主题:**《郵件系統》** 演讲者:**MaskRay** 18 | 19 | 3. 自由交流 20 | 21 | 4. 烧烤活动 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | 27 | ## 主题1 28 | 《D语言介绍,The D Programming Language》 29 | 30 | ### 演讲者 31 | **Lionello Lunesu**(微博:http://weibo.com/u/2127170620) 32 | 33 | ### 简介 34 | D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity. It’s a one of the few modern systems programming languages, with fast code generation and unparalleled meta-programming facilities. 35 | 36 | ### 需要的基础知识 37 | 会读C语言比较方便 38 | 39 | ### 预计时长 40 | 60分钟 (时间可根据观众要求顺延,当场做用D语言做一个Workshop) 41 | 42 | ## 主题2 43 | 《郵件系統》 44 | 45 | ### 演讲者 46 | **MaskRay**(微博:http://weibo.com/MaskRay) 47 | 48 | ### 简介 49 | 郵件頭、SMTP, IMAP, MTA, mail命令, MX record等 50 | 51 | ### 目标听众 52 | 熱衷折騰桌面Linux的用戶和工作中建站涉及郵件系統的人士 53 | 54 | ### 需要的基础知识 55 | 基礎 shell 56 | 57 | ### 预计时长 58 | 60分钟 59 | -------------------------------------------------------------------------------- /2014/July/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2014年7月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,7月27日SHLUG将会举办2014年的7月技术交流聚会。感谢[**云人科技**](http://peopleyun.com/)的场地赞助. 4 | 5 | **地址:** 上海市杨浦区伟德路6号云海大厦13楼(靠近大学路) 地铁10号线江湾体育场站 6 | 7 | **时间:** 2014年7月27日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 16 | 1. 主题:**《Docker不是虚拟机》** 演讲者:[**Shell909090**](http://weibo.com/u/1660625800) 17 | 18 | 2. 主题:**《Openstack四周岁》** 演讲者:[**Ben**](http://weibo.com/communitymanager) 19 | 20 | 3. 自由交流 21 | 22 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 23 | 24 | # 主题详细信息: 25 | 26 | ## 主题1 27 | 《docker不是虚拟机》 28 | 29 | ### 演讲者 30 | [**Shell909090**](http://weibo.com/u/1660625800) 31 | 32 | ### 简介 33 | docker真的不是虚拟机 34 | 35 | 36 | ### 需要的基础知识 37 | 对吐槽不过敏 38 | 39 | ### 预计时长 40 | 30~50分钟 41 | 42 | 43 | ## 主题2 44 | 《Openstack四周岁》 45 | 46 | ### 演讲者 47 | [**Ben**](http://weibo.com/communitymanager) 48 | 49 | ### 简介 50 | Openstack发展历程及企业应用之路 51 | 52 | ### 预计时长 53 | 50分钟 -------------------------------------------------------------------------------- /2014/June/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2014年6月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,6月28日SHLUG将会举办2014年的6月技术交流聚会。 4 | 5 | **地址:** 上海市浦东新区乳山路506弄上海滩花园洋房南区1号楼5楼 Gitcafe (Google地图链接:http://goo.gl/maps/UXn5a) 6 | 7 | **时间:** 2014年6月28日(星期六) 13:30 - 18:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《前端工程师逆袭攻略》** 演讲者:**Yao Yuan** 16 | 17 | 2. 主题:**《AngularJS之旅》** 演讲者:**小马xiaoma** 18 | 19 | 3. 烧烤 20 | 21 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 22 | 23 | # 主题详细信息: 24 | 25 | ## 主题1 26 | 《前端工程师逆袭攻略》 27 | 28 | ### 演讲者 29 | **Yao Yuang** 30 | 31 | ### 简介 32 | 年初,Facebook收购了Parse.com。这标志着BaaS时代的来临( Backend As A Service )。这意味着任何一个人只要通过点击几次鼠标就能够生成一个可口可控的基于云计算的后端服务。本讲座将介绍如何从一个“做网页的”,华丽转身为某个App的作者。 33 | 讲座将通过介绍Backbone.js在Parse.com上的应用来讲解CoffeeScript的一些特性。 34 | 35 | ### 需要的基础知识 36 | Javascript, 少许HTML 37 | 38 | ### 预计时长 39 | 45分钟 40 | 41 | 42 | ## 主题2 43 | 《AngularJS之旅》 44 | 45 | ### 演讲者 46 | **小马xiaoma** 47 | 48 | ### 简介 49 | AngularJS是一款开源 JavaScript函式库,由Google维护,用来协助单一页面应用程式运行的。它的目标是透过MVC模式,增强基于浏览器的应用,使开发和测试变得更加容易。 50 | 51 | AngularJS是建立在这样的信念上的:即声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。 52 | 53 | AngularJS设计目标: 54 | 55 | 将应用逻辑与对DOM的操作解耦。这会提高代码的可测试性。 56 | 将应用程序的测试看的跟应用程序的编写一样重要。代码的构成方式对测试的难度有巨大的影响。 57 | 将应用程序的客户端与服务器端解耦。这允许客户端和服务器端的开发可以齐头并进,并且让双方的复用成为可能。 58 | 59 | ### 需要的基础知识 60 | 了解基本的HTML/CSS和Javascript,对Web前端开发有兴趣。 61 | 62 | ### 预计时长 63 | 60分钟 64 | -------------------------------------------------------------------------------- /2014/Mar/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2014年3月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,3月29日SHLUG将会举办2014年的3月技术交流聚会。 4 | 5 | **地址:** 上海市浦东新区乳山路506弄上海滩花园洋房南区1号楼5楼 Gitcafe (Google地图链接:http://goo.gl/maps/UXn5a) 6 | 7 | **时间:** 2014年3月29日(星期六) 14:00 - 18:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《集群资源管理 Pacemaker》** 演讲者:[**Jian Huang**](http://weibo.com/u/2062423255) 16 | 17 | 2. 主题:**《密码强度分析》** 演讲者:[**Shell909090**](http://weibo.com/u/1660625800) 18 | 19 | 3. 自由交流 20 | 21 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 22 | 23 | # 主题详细信息: 24 | 25 | ## 主题1 26 | 《集群资源管理 Pacemaker》 27 | 28 | ### 演讲者 29 | [**Jian Huang**](http://weibo.com/u/2062423255) 30 | 31 | ### 简介 32 | pacemaker(起搏器),是一个集群资源管理器。它检测集群服务的节点和资源级故 障,恢复故障的节点和资源,实 现集群的高可用性。使用集群基础组件 (Corosync或Heaerbeat)实现通信和关系管理 。它可以做各种规模的集群,并配 备了一个强大的依赖模型,使管理员能够准确地表达集群 资源之间的关系(包括 顺序和位置)。任何能用脚本控制的资源都可以作为集群的服务。 33 | 34 | ### 目标听众 35 | 高可靠性服务器集群开 发人员,以及对集群感兴趣的其他人士。 36 | 37 | ### 需要的基础知识 38 | Linux命令行脚本 (shell script), 后台进程(daemon)。 39 | 40 | ### 预计时长 41 | 60分钟 42 | 43 | 44 | ## 主题2 45 | 《密码强度分析》 46 | 47 | ### 演讲者 48 | [**Shell909090**](http://weibo.com/u/1660625800) 49 | 50 | ### 简介 51 | 简述了密码强度分析的方法,密码相关机制对强度的影响,和普通用户保护密码的几个建议。 52 | 53 | ### 目标听众 54 | 网站开发者,对密码机制感兴趣的普通用户 55 | 56 | ### 需要的基础知识 57 | 概率论和数理统计 58 | 信息论 59 | C语言 60 | 61 | ### 预计时长 62 | 72分钟(不计提问时间) 63 | -------------------------------------------------------------------------------- /2014/Mar/pacemaker介绍.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2014/Mar/pacemaker介绍.odp -------------------------------------------------------------------------------- /2014/Mar/密码强度分析.txt: -------------------------------------------------------------------------------- 1 | 《密码强度分析》 演讲者:Shell909090 2 | slide地址:https://dl.dropboxusercontent.com/u/200711/slide/passwd.html 3 | -------------------------------------------------------------------------------- /2014/May/PCI_software_engineer_perspective.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2014/May/PCI_software_engineer_perspective.odp -------------------------------------------------------------------------------- /2014/May/announcement.md: -------------------------------------------------------------------------------- 1 | #SHLUG 2014年5月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,5月22日SHLUG将会举办2014年的5月技术交流聚会。 4 | 5 | 本次月聚会将在ChinaNetCloud的会议室举办,感谢来自ChinaNetCloud长期以来对SHLUG的支持! 6 | 7 | **地址:** 上海市徐汇区斜土路1238号X2创意空间1号楼601 8 | 地铁:四号线 大木桥路站 4号口 9 | 九号线 嘉善路站 10 | 11 | **时间:** 2014年5月22日(星期四晚上) 19:00 - 21:00 /* 18点30开始可以入场,预计19点开始 */ 12 | 13 | **报名:** 不需要 14 | 15 | **费用:** 不需要 16 | 17 | 本月聚会内容: 18 | --------------- 19 | 1. 主题:**《PCI -- a software perspective》** 演讲者:**Wizard**(http://weibo.com/u/1148710327) 20 | 21 | 2. 自由交流 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | 27 | ## 主题1 28 | 《PCI -- a software perspective》 29 | 30 | ### 演讲者 31 | **Wizard**(http://weibo.com/u/1148710327) 32 | 33 | ### 简介 34 | PCI 是现系统上用的比较多的总线之一,虽然底层涉及了很多硬件知识,但是对于软件开发人员来说只需要了解系统中 35 | 是如何抽象一个设备就可以了。本次分享主要就是讲解PCI设备对于软件开发者来说哪些接口和概念是需要理解的。 36 | 37 | ### 目标听众 38 | 想要写linux PCI驱动,想知道在系统上如何察看PCI设备和属性。 39 | 40 | ### 需要的基础知识 41 | 基本没有,如果有linux使用经验 c语言知识更好。 42 | 43 | ### 预计时长 44 | 40分钟 45 | 46 | 47 | ### 关于报名 48 | SHLUG的活动向来是不需要报名的,不过ChinaNetCloud方面为了更好的提供场地,需要对场地进行事先布置,因此希望知道大概的参与人数,所以请确定参加的人回复一下本邮件,以便统计,谢谢! -------------------------------------------------------------------------------- /2014/May/pci_driver.c: -------------------------------------------------------------------------------- 1 | /* 2 | * ===================================================================================== 3 | * 4 | * Filename: pci_driver.c 5 | * 6 | * Description: 7 | * 8 | * Version: 1.0 9 | * Created: 02/28/2013 03:15:29 PM 10 | * Revision: none 11 | * Compiler: gcc 12 | * 13 | * Author: YOUR NAME (), 14 | * Company: 15 | * 16 | * ===================================================================================== 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | MODULE_LICENSE("Dual BSD/GPL"); 23 | 24 | /* This is a test driver for a specific e1000e type 25 | * 26 | * Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection 27 | */ 28 | static DEFINE_PCI_DEVICE_TABLE(test_e1000_pci_tbl) = { 29 | { PCI_VDEVICE(INTEL, 0x1502), 0 }, 30 | { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */ 31 | }; 32 | MODULE_DEVICE_TABLE(pci, test_e1000_pci_tbl); 33 | 34 | char test_e1000_driver_name[] = "e1000e_test"; 35 | 36 | /* Register offset, copyied from hw.h */ 37 | #define E1000_RCTL 0x00100 /* Rx Control - RW */ 38 | 39 | /* Receive Control, copyied from defines.h */ 40 | #define E1000_RCTL_EN 0x00000002 /* enable */ 41 | 42 | struct priv_data { 43 | void __iomem *hw_addr; 44 | }; 45 | 46 | static int test_e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 47 | { 48 | int err, bar; 49 | u16 vendor, device; 50 | unsigned long mmio_start, mmio_end, mmio_len, mmio_flags; 51 | void *ioaddr; 52 | u32 rctl; 53 | struct priv_data *priv; 54 | int pm_cap; 55 | 56 | /* access the config space */ 57 | pci_read_config_word(pdev, PCI_VENDOR_ID, &vendor); 58 | pci_read_config_word(pdev, PCI_DEVICE_ID, &device); 59 | pr_info("The vendor_id is %x, the device_id is %x\n", vendor, device); 60 | 61 | err = pci_enable_device_mem(pdev); 62 | 63 | /* IO BARs */ 64 | bar = pci_select_bars(pdev, IORESOURCE_IO); 65 | pr_info("Availale IO BARs are 0x%x\n", bar); 66 | 67 | /* Request a IO region */ 68 | err = pci_request_selected_regions_exclusive(pdev, 69 | bar, test_e1000_driver_name); 70 | 71 | /* MEM BARs */ 72 | bar = pci_select_bars(pdev, IORESOURCE_MEM); 73 | pr_info("Availale MEM BARs are 0x%x\n", bar); 74 | 75 | /* Request a MEM region */ 76 | err = pci_request_selected_regions_exclusive(pdev, 77 | bar, test_e1000_driver_name); 78 | 79 | mmio_start = pci_resource_start(pdev, 0); 80 | mmio_end = pci_resource_end(pdev, 0); 81 | mmio_len = pci_resource_len(pdev, 0); 82 | mmio_flags = pci_resource_flags(pdev, 0); 83 | pr_info("Resource 0: start at 0x%lx with lenght %lu\n", 84 | mmio_start, mmio_len); 85 | 86 | /* Allocate the dev private data structure */ 87 | priv = kzalloc(sizeof(struct priv_data), GFP_KERNEL); 88 | if (!priv) { 89 | err = -1; 90 | goto fail1; 91 | } 92 | 93 | pci_set_drvdata(pdev, priv); 94 | 95 | /* ioremap MMIO region */ 96 | ioaddr = ioremap(mmio_start, mmio_len); 97 | if (!ioaddr) { 98 | err = -1; 99 | pr_info("Couldn't ioremap MMIO\n"); 100 | goto fail2; 101 | } 102 | priv->hw_addr = ioaddr; 103 | pr_info("Mapped resource 0x%lx to 0x%p\n", mmio_start, ioaddr); 104 | 105 | /* MMIO r/w, enable the receive function */ 106 | rctl = readl(ioaddr + E1000_RCTL); 107 | pr_info("Address 0x%p contains 0x%08x\n", ioaddr, rctl); 108 | 109 | /* ATTENTION!!! 110 | * Read SPEC before do the write. 111 | * This may cause undefined behavior. 112 | */ 113 | writel(rctl | E1000_RCTL_EN, ioaddr + E1000_RCTL); 114 | rctl = readl(ioaddr + E1000_RCTL); 115 | pr_info(" -- after enablement 0x%08x\n", rctl); 116 | 117 | pm_cap = pci_find_capability(pdev, PCI_CAP_ID_PM); 118 | pr_info("The Power Management Capability Position is %d\n", pm_cap); 119 | 120 | return err; 121 | 122 | fail2: 123 | kfree(priv); 124 | 125 | fail1: 126 | pci_release_selected_regions(pdev, 127 | pci_select_bars(pdev, IORESOURCE_IO|IORESOURCE_MEM)); 128 | 129 | pci_disable_device(pdev); 130 | return err; 131 | } 132 | 133 | static void test_e1000_remove(struct pci_dev *pdev) 134 | { 135 | struct priv_data *priv; 136 | 137 | priv = pci_get_drvdata(pdev); 138 | 139 | iounmap(priv->hw_addr); 140 | kfree(priv); 141 | 142 | pci_release_selected_regions(pdev, 143 | pci_select_bars(pdev, IORESOURCE_IO|IORESOURCE_MEM)); 144 | 145 | pci_disable_device(pdev); 146 | } 147 | 148 | static struct pci_driver test_e1000e_driver = { 149 | .name = test_e1000_driver_name, 150 | .id_table = test_e1000_pci_tbl, 151 | .probe = test_e1000_probe, 152 | .remove = test_e1000_remove, 153 | }; 154 | 155 | static int pci_driver_test_init(void) 156 | { 157 | int ret; 158 | pr_info("--- A test driver for pci device ---\n"); 159 | ret = pci_register_driver(&test_e1000e_driver); 160 | 161 | return ret; 162 | } 163 | static void pci_driver_test_exit(void) 164 | { 165 | pci_unregister_driver(&test_e1000e_driver); 166 | } 167 | module_init(pci_driver_test_init); 168 | module_exit(pci_driver_test_exit); 169 | -------------------------------------------------------------------------------- /2014/October/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2014年10月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,10月26日SHLUG将会举办2014年的10月技术交流聚会。感谢**凯络中国(Carat China)**的场地赞助. 4 | 5 | **地址:** 上海市淮海国际广场5楼 [**地图**:https://goo.gl/maps/n4eL8](https://goo.gl/maps/n4eL8) 6 | 7 | **时间:** 2014年10月26日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 16 | 1. 主题:**《一线运维故障排查经验分享》** 演讲者:**Bryton Lee** 17 | 18 | 2. 主题:**《Openstack四周岁》** 演讲者:[**Ben_杜玉杰**](http://weibo.com/communitymanager) 19 | 20 | 3. 自由交流 21 | 22 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 23 | 24 | # 主题详细信息: 25 | 26 | ## 主题1 27 | 《一线运维故障排查经验分享》 28 | 29 | ### 演讲者 30 | Bryton Lee 31 | 32 | ### 简介 33 | 互联网公司运维部门分工越精细,对于工程人员对于某一领域的知识掌握越深入。 一线运维相对于系统运维更贴近业务和研发,一线运维工程师调用运维部其他资源完成业务方提供的需求,同时需要对所负责的产品线系统的稳定性负主要责任。本主题分享的内容与稳定性密切相关,从进程,内存,网络I/O三方面系统的讲解相关知识点,结合本人在一线运维积累的案例共同学习和提高故障处理技能,保障好业务的稳定性。 34 | 35 | ### 需要的基础知识 36 | 了解互联网公司一线运维,或者对于互联网公司一线运维感兴趣。 37 | 38 | ### 预计时长 39 | 90~120分钟 40 | 41 | 42 | ## 主题2 43 | 《Openstack四周岁》 44 | 45 | ### 演讲者 46 | [**Ben_杜玉杰**](http://weibo.com/communitymanager) 47 | 48 | ### 简介 49 | Openstack发展历程及企业应用之路 50 | 51 | ### 预计时长 52 | 50分钟 -------------------------------------------------------------------------------- /2014/October/maintenance.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2014/October/maintenance.pdf -------------------------------------------------------------------------------- /2015/April/HAWQ.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2015/April/HAWQ.pptx -------------------------------------------------------------------------------- /2015/April/Introduction_to_Kubernetes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2015/April/Introduction_to_Kubernetes.pdf -------------------------------------------------------------------------------- /2015/April/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2015年4月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,4月26日SHLUG将会举办2015年的4月技术交流聚会。感谢**上海树维信息科技有限公司**为本次活动提供的场地赞助. 4 | 5 | **地址:** 上海市杨浦区隆昌路619号1号楼A区A109 [**在线地图**](https://www.google.com.hk/maps/place/城市概念/@31.275937,121.542169,17z/data=!3m1!4b1!4m2!3m1!1s0x35b27401fa83193b:0x79bc8c9f7d1f7242) 6 | 7 | **时间:** 2015年4月26日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《Google Kubernetes 简介与演示》** 演讲者:**Adieu** 16 | 17 | 2. 主题:**《HAWQ,支持原生HDFS的MPP SQL》** 演讲者:**wormwang** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | 27 | 28 | ## 主题1 29 | 《Google Kubernetes 简介与演示》 30 | 31 | ### 演讲者 32 | **Adieu** 33 | 34 | ### 简介 35 | Kubernetes是Google开源的Docker集群管理工具。它提供了任务调度,服务发现,滚动升级等有用的功能。在2014年发布之后,迅速获得了大量开发者的关注以及IBM,Readhat等厂商的支持。Google也在其Cloud 36 | Platform提供了基于Kubernetes的Container Engine服务。 37 | 38 | 近在工作中把服务迁移到了Kubernetes,过程中积累了一些经验,也遇到一些坑。我可以演示一下基本使用方法,介绍一些基础概念,让大家对Kubernetes有一个初步的认识。再大家一起探讨下基于Kubernetes进行架构的思路。 39 | 40 | ### 需要的基础知识 41 | 适合对Docker有兴趣,或者对运维架构有兴趣的同学 42 | 43 | ### 预计时长 44 | 60-90分钟 45 | 46 | ## 主题2 47 | 《HAWQ,支持原生HDFS的MPP SQL》 48 | 49 | ### 演讲者 50 | **wormwang** 51 | 52 | ### 简介 53 | HAWQ是一个支持HDFS的分布式并行SQL数据库引擎,它从 Pivotal卓越的分析型数据库Greenplum DB发展出来,又融合了Hadoop HDFS的优秀的扩展性和便利性。HAWQ原生支持读写HDFS数据格式文件。HAWQ具有世界最好的数据库线性扩展性和性能,比 Impala,Spark,Hive快许多。 54 | 它已有许多大型客户,有些客户数据量达到PB级别,500多节点。它的管理和使用仍然与常用的SQL数据库非常相似,因此对用户很便利。 HAWQ 支持完整的SQL2008标准,包括标准中OLAP扩展项。它已经宣布开源。 55 | 56 | 57 | ### 预计时长 58 | 45分钟 59 | -------------------------------------------------------------------------------- /2015/August/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2015年8月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,8月30日SHLUG将会举办2015年的8月技术交流聚会。感谢游仁堂对本次的场地支持,欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 4 | 5 | **地址:** [普陀区曹杨路450号绿地和创大厦709~710室](http://j.map.baidu.com/M_jKv) (近地铁3号线曹杨路站) 6 | 7 | **时间:** 2015年8月30日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《使用Swagger实做Web API文档》** 演讲者:**吴江** 16 | 17 | 2. 主题:**《Hadoop简介》** 演讲者:**Yao Yuan** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | # 主题详细信息: 24 | 25 | ## 主题1 26 | 《使用Swagger实做Web API文档》 27 | 28 | ### 演讲者 29 | **吴江** 30 | 31 | 吴江,资深Ruby程序员,8年Rails经验,曾经在Inker, Factual, Ehoke, EMC等知名公司担任高级程序员。2010年在日本筑波举办的RubyKaigi上演讲Sinatra心得,是Sinatra文档的简体中文译者。现在在中国著名的代码托管网站GitCafe担任Tech Lead,主导API的开发工作。 32 | 33 | ### 演讲内容 34 | 35 | 36 | 随着Mobile程序和Single Page Application的流行,编写REST API变得越来越常见和重要。 Swagger是一个简单而又十分强大的描述REST API的规范,允许开发者使用JSON描述API的元数据,结构和数据模型。Swagger的开发者社区在不断的成长。在规范以外,Swagger有多种实现,并提供丰富的工具套件,帮助API开发者生成交互性的文档(且与代码保持同步)和client SDK,大幅度地提高API的成功采用。 本次演讲主要介绍如何使用grape-swagger这个ruby gem开发符合Swagger规范的API描述,减少代码和文档中的重复,并用Swagger UI展现文档和实时测试。 37 | 38 | 39 | ### 需要的基础知识 40 | HTTP协议, 最好了解REST服务和Ruby还有Javascript 41 | 42 | ### 预计时长 43 | 60分钟 44 | 45 | 46 | ## 主题2 47 | 《Hadoop简介》 48 | 49 | ### 演讲者 50 | **Yao Yuan** 51 | 52 | ### 演讲内容 53 | 54 | Hadoop作为大数据分析系统大家已经如雷贯耳。 55 | 本讲座将简单介绍一下现在数据分析行业中比较常见的架构,开源服务。以及快速搭建Hadoop集群的方法。 56 | 同时介绍如何对数据进行可视化分析。 57 | 58 | ### 需要的基础知识 59 | Linux基本命令行操作。 60 | 61 | ### 预计时长 62 | 90分钟 63 | -------------------------------------------------------------------------------- /2015/Dec/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2015年12月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,12月20日SHLUG将会举办2015年的12月技术交流聚会。感谢**[发园地](http://www.parkmap.org/)**对本次的场地支持,欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 4 | 5 | **地址:** 上海市闵行区陈行路2388号浦江科技广场7号楼3F 临港新业坊·互联网创客空间 (地铁8号线浦江镇1号出口 步行325米即达) 6 | 7 | **时间:** 2015年12月20日(星期日) 14:00 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《zfs & btrfs 使用心得分享》** 演讲者:**戴禮度 (Derek 呆)** 16 | 17 | 2. 自由交流 18 | 19 | 3. 会后AA聚餐 20 | 21 | # 主题详细信息: 22 | 23 | ## 主题1 24 | 《zfs & btrfs 使用心得分享》 25 | 26 | ### 演讲者 27 | **戴禮度 (Derek 呆)** 28 | 29 | 30 | ### 演讲内容 31 | 文件系統快照, 內容回滾, 自我檢修, 子卷管理, 增量備份, 壓縮去重, ... 歡迎跳入次世代文件系統的坑! 32 | 33 | ### 需要的基础知识: 34 | 基本 Linux 安裝操作經驗, 有接觸過 RAID 及 LVM 更好. 35 | 36 | ### 预计时长: 37 | 40 分鐘 38 | -------------------------------------------------------------------------------- /2015/Jan/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2015年1月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,1月25日SHLUG将会举办2015年的1月技术交流聚会。感谢[**七牛公司**]( http://www.qiniu.com/ )储为本次活动提供的场地赞助. 4 | 5 | **地址:** 上海市浦东新区亮秀路112号Y1栋309室 [**在线地图**]( http://map.sogou.com/#uids=1_ugcpoi_307198&urltype=u&c=13536457,3636562,15&where=13534386.71875,3635105.46875,13538519.53125,3638019.53125,0&page=1,10) 6 | 7 | **时间:** 2015年1月25日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《上下文切换技术简介》** 演讲者:**Shell.Xu** 16 | 17 | 2. 主题:**《使用Google Cloud Platform打造你的下一个创业项目》** 演讲者:**Adieu** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | 27 | 28 | ## 主题1 29 | 《上下文切换技术简介》 30 | 31 | ### 演讲者 32 | **Shell.Xu** 33 | 34 | ### 简介 35 | 程序员闲着没事瞎折腾的研究。通过测试,源码阅读等手段,研究各种上下文切换技术和性能对比。 36 | 37 | ### 需要的基础知识 38 | 最好上过操作系统课,了解什么叫做进程。 39 | 40 | ### 预计时长 41 | 看个人心情,从40分钟到一小时左右。 42 | 43 | ## 主题2 44 | 《使用Google Cloud Platform打造你的下一个创业项目》 45 | 46 | ### 演讲者 47 | **Adieu** 48 | 49 | ### 简介 50 | 最近在创业做一个开源软件新闻推送系统 [**Porter.io**]( http://porter.io )。整套系统使用了多项Google Cloud 51 | Platform的服务,如Appengine, Cloud Storage, Cloud Compute 52 | Engine等。在使用这些服务的过程中,积累了一些经验教训,打算在talk中与朋友们分享。同时也希望抛砖引玉,听听其他在使用网络云服务方面有经验的朋友们在这方面的见解。 53 | 54 | 55 | ### 需要的基础知识 56 | 适合对Python或Go开发有兴趣,或对PaaS,IaaS方面有兴趣,或对互联网产品架构方面有兴趣的朋友 57 | 58 | ### 预计时长 59 | 60-90分钟 60 | -------------------------------------------------------------------------------- /2015/June/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2015年6月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,6月28日SHLUG将会举办2015年的6月技术交流聚会。本次活动与**[Teambition](https://www.teambition.com)**合办,欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 4 | 5 | **地址:** [浦东新区碧波路888号畅星大厦2幢2层](http://j.map.baidu.com/Lt5B3) (地铁2号线张江高科地铁站,出站后地图请见最下方图片) 6 | 7 | **时间:** 2015年6月28日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《运维安全与案例分享》** 演讲者:**陈天乐** 16 | 17 | 2. 自由交流 18 | 19 | 3. 会后AA聚餐 20 | 21 | # 主题详细信息: 22 | 23 | ## 主题1 24 | 《运维安全与案例分享》 25 | 26 | ### 演讲者 27 | **陈天乐(http://brucectl.iteye.com)** 28 | 29 | 资深系统工程师、MySQL资深顾问、MCSE,RHCE,CMDBA 30 | 31 | 近8年大型跨国公司、近20年专业的互联网公司工作经验。曾任职于LYCOS中国大中华区运维总监,LIVEDOOR上海分公司运维总监等职务。在大型互联网系统以及传统的数据库系统方面有大量研究和实践经验。精通LINUX集群,WINDOWS集群等大型系统的架构设计,安全加固,对Linux-windows混合的操作系统环境运维有独到的研究。对MySQL有深入了解,精通MySQL的性能优化,备份恢复,日常维护以及扩展架构。 32 | 33 | ### 演讲内容 34 | 这两年,互联网上纷纷爆出BASH漏洞、OPENSSL漏洞、幽灵漏洞、OPENSSH漏洞等等,面对如此众多已知的和未知的惊天大漏洞,我们该如何从运维技术角度做好安全加固工作,避免中枪和遭殃呢! 35 | 36 | ### 需要的基础知识 37 | 有一些互联网技术基础,或者对于互联网运维感兴趣者。 38 | 39 | ### 预计时长 40 | 120-150分钟 41 | 42 | 43 | ![Teambition](teambition_map.jpeg) -------------------------------------------------------------------------------- /2015/June/teambition_map.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2015/June/teambition_map.jpeg -------------------------------------------------------------------------------- /2015/Oct/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2015年10月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,10月24日SHLUG将会举办2015年的10月技术交流聚会。感谢**首都在线**对本次的场地支持,欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 4 | 5 | **地址:** 上海市浦东新区碧波路572弄115号19幢3层 首都在线上海分公司 (Google地图:https://goo.gl/maps/9rXw7VhzaB42) (近张江高科地铁站,园区内可停车) 6 | 7 | **时间:** 2015年10月24日(星期六) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《tachyon on mesos 分布式内存文件系统在mesos应用中的实践》** 演讲者:**张明峰** 16 | 17 | 2. 主题:**《跨数据中心部署Docker容器的实践分享》** 演讲者: **黎为民** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | # 主题详细信息: 24 | 25 | ## 主题1 26 | 《tachyon on mesos 分布式内存文件系统在mesos应用中的实践》 27 | 28 | ### 演讲者 29 | **张明峰** 北京数人科技有限公司 30 | 31 | 32 | ### 演讲内容 33 | 34 | 1 mesos是分布式资源分配系统 35 | 36 | 2 tachyon是内存分布式文件系统 37 | 38 | 3 tachyon on mesos的一些实践以及通用框架开发的难点。 39 | 40 | 41 | ## 主题2 42 | 43 | 《跨数据中心部署Docker容器的实践分享》 44 | 45 | ### 演讲者 46 | **黎为民** 首都在线 研发中心总监 47 | 48 | 互联网行业老兵,在埃森哲,Square-Enix,Electronic Arts,Kabam以及机锋网等多家企业负责产品研发,主要领域涵盖互联网应用、移动互联网平台和在线游戏,现在首都在线负责高性能云平台 的研发和优化,对构建基于云计算的生态系统有浓厚兴趣。 49 | 50 | ### 演讲内容 51 | 52 | Docker技术以其高效率和灵活性正在成为云计算领域的热点,如何将Docker技术应用于大规模实际应用为业界所关注。本次演讲主要介绍首都在线结合自有的GPN技术与Docker技术,在实际业务应用中,如何通过动态部署Docker实例来实现动态适应系统 压力和跨区域能力投放的成功案例,与开发者分享Docker在实际应用中的效果和存在问题。 53 | -------------------------------------------------------------------------------- /2016/Dec/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年12月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,12月25日(星期日)SHLUG将会举办2016年度第七次技术交流聚会。本次活动将与Ubuntu合办, 感谢[**联合创业办公社People Squared**](http://www.people-squared.com/lighthouse.html)为本次活动提供的场地赞助. 4 | 5 | 6 | **地址:** 静安区昌平路700号(近常德路) 联合创业办公社(光源) 地铁7号线昌平路地铁站。 [**谷歌地图**](https://goo.gl/maps/3XjoQjKra6m) [**百度地图**](http://j.map.baidu.com/fZ8PH) 7 | 8 | 9 | **时间:** 2016年12月25日(星期日) 14:00 - 17:00 10 | 11 | **报名:** 不需要 12 | 13 | **费用:** 不需要 14 | 15 | 本月聚会内容: 16 | --------------- 17 | 1. 主题:**《Ubuntu Core 16 & snapcraft 技术开发分享》** 演讲者:**刘晓国** 18 | 19 | 2. 自由交流 20 | 21 | 3. 会后AA聚餐 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | ## 主题1 27 | 《Ubuntu Core 16 & snapcraft 技术开发分享》 28 | 29 | ### 演讲者 30 | **刘晓国**,Ubuntu资深技术专家,专业从事Ubuntu平台开发。对Ubuntu手机、平板有着丰富的开发经验,曾经就职于Nokia、Linaro等知名公司,在物联网OS Ubuntu Core也有着深厚的技术实力。 31 | 32 | ### 简介 33 | Ubuntu Core是一个精简版的Ubuntu系统,完全采用安全、易于更新的开源Linux打包格式Snap构建。Ubuntu Core针对生产环境从头开始设计,并在安全性和易维护性方面进行了优化。同时,Ubuntu Core为快速打造物联网设备和嵌入式设备提供了一个安全的支持平台,Ubuntu Core支持ARM、X86架构硬件。snapcraft是snap应用格式包的工具打包。 34 | 35 | PS:我们会带一些支持Ubuntu Core的硬件到现场,大家可以现场体验。 36 | 37 | ### 需要的基础知识 38 | 了解Linux、Ubuntu,熟悉嵌入式硬件(如树莓派)、通信协议,有无开发经验皆可; 39 | 40 | ### 预计时长 41 | 60分钟+30分钟QA(QA时间视现场反馈) 42 | -------------------------------------------------------------------------------- /2016/Feb/WebShell-by-FuKui.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/Feb/WebShell-by-FuKui.pptx -------------------------------------------------------------------------------- /2016/Feb/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年2月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 4 | (English version below) 5 | 6 | 7 | 大家好,2月28日SHLUG将会举办2016年的2月技术交流聚会。感谢[**中以创新中心**(http://www.siti.co.il))](www.siti.co.il)为本次活动提供的场地赞助. 8 | 9 | **地址:** **中以创新中心** [**在线地图**:http://f.amap.com/0C015ka](http://f.amap.com/0C015ka) 上海市浦东新区松涛路647弄1号楼(路演中心) 10 | 11 | **时间:** 2015年2月28日(星期日) 13:30 - 17:00 12 | 13 | **报名:** 不需要 14 | 15 | **费用:** 不需要 16 | 17 | 本月聚会内容: 18 | --------------- 19 | 1. 主题:**《无单点故障安全架构设计》** 演讲者:**Ivo** 20 | 21 | 2. 主题:**《网站后门之WebShell技术分享》** 演讲者:**傅奎** 22 | 23 | 3. 自由交流 24 | 25 | 4. 会后AA聚餐 26 | 27 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 28 | 29 | # 主题详细信息: 30 | 31 | 32 | ## 主题1 33 | 《无单点故障安全架构设计》 34 | 35 | ### 演讲者 36 | **Ivo**: ADUCID中国区总监 37 | 38 | ### 简介 39 | 40 | 我们团队已耗时7年时间致力于研发“世界上最先进的认证系统”。回顾过去,我们发现这些设计原则也普遍适用于所有无单点故障的安全架构设计中。本次演讲中我会先带你了解身份认证安全的一些设计要点,然后会准备一些关于”如何设计安全的通讯与数据存储”的互动案例。如果大家乐意,我们还能就防火墙等其他问题进行交流。 41 | 42 | ### 预计时长 43 | 60分钟 44 | 45 | ## 主题2 46 | 《网站后门之WebShell技术分享》 47 | 48 | ### 演讲者 49 | **傅奎** 50 | 51 | ### 简介 52 | 分享如何打造一款永远不被查杀的网站后门 53 | 1、WebShell基本概念 54 | 2、WebShell能做什么 55 | 3、WebShell如何检测 56 | 4、WebShell如何规避检测 57 | 58 | ### 预计时长 59 | 30分 60 | 61 | # SHLUG Monthly-Meetup February 2016 62 | ------------------------------------------- 63 | 64 | Hello,open source lovers.We will hold this year's second time SHLUG Monthly-Meetup at Sunday, February 28. Thanks [**Sino Israel Technology Innovations**(www.siti.co.il)](www.siti.co.il) for sponsoring the space. 65 | 66 | 67 | **Location**: Building 1, 647 Songtao Road Zhangjiang Hi-tech Park Shanghai.[**Online Map**:http://f.amap.com/0C015ka](http://f.amap.com/0C015ka) 68 | 69 | **Time**: Sunday, February 28, 2016 13:30PM to 17:00 PM 70 | 71 | Registration is **not required** 72 | 73 | Registration fee is also **not required** 74 | 75 | 76 | # SCHEDULE: 77 | 78 | 1. Presentation: **Designing security infrastructure with no single-point-of-failure** by **Ivo** 79 | 80 | 2. Presentation: **An Introduction to WebShell** by **傅奎** 81 | 82 | 3. Free chat 83 | 84 | 4. Go out for dinners 85 | 86 | ## Presentation 1 87 | Designing security infrastructure with no single-point-of-failure 88 | 89 | ## Speaker 90 | **Ivo**: head of ADUCID in China 91 | 92 | ## Description 93 | 94 | Our team has spent 7 years developing "the world's most advanced authentication system" but when we took a step back from it, we realized that our design principles are almost universally applicable to designing any security infrastructure without any single-point-of-failure - I will walk you through the design of security of identity and I will then prepare a few interactive case studies on how to design the security of communication, data storage and maybe we can talk more about firewalls or other topics based on your preference. 95 | 96 | ## Expected time 97 | 60 minutes 98 | 99 | ## Presentation 2 100 | An Introduction to WebShell 101 | 102 | ## Speaker 103 | 傅奎 104 | 105 | ## Description 106 | Share how to create a Hidden Backdoor in website: 107 | 1、Basic concepts of WebShell 108 | 2、What WebShell can do 109 | 3、How to detect WebShell 110 | 4、How to make WebShell avoid detection 111 | 112 | ## Expected time 113 | 30 minutes 114 | -------------------------------------------------------------------------------- /2016/Feb/security-design-principles-by-ADUCID.ppsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/Feb/security-design-principles-by-ADUCID.ppsx -------------------------------------------------------------------------------- /2016/Jan/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年1月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,1月24日SHLUG将会举办2016年的1月技术交流聚会。感谢[XNode创极无限(静安空间)](https://mozzos.com/zh/spaces/view/d571496a-1315-42ee-93e8-c90886996b61)为本次活动提供的场地赞助. 4 | 5 | **地址:** [XNode创极无限(静安空间)](https://mozzos.com/zh/spaces/view/d571496a-1315-42ee-93e8-c90886996b61) 延安西路129号华侨大厦9楼 上海, 静安区[**在线地图**](http://m.amap.com/search/view/keywords=%E4%B8%AD%E5%9B%BD%E4%B8%8A%E6%B5%B7%E5%B8%82%E4%B8%8A%E6%B5%B7%E9%9D%99%E5%AE%89%E5%8C%BA%E5%BB%B6%E5%AE%89%E8%A5%BF%E8%B7%AF129%E5%8F%B7) 6 | 7 | **时间:** 2015年1月24日(星期日) 13:30 - 17:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《ARM嵌入式开发介绍以及探讨》** 演讲者:**曹一凌** 16 | 17 | 2. 自由交流 18 | 19 | 3. 会后AA聚餐 20 | 21 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 22 | 23 | # 主题详细信息: 24 | 25 | 26 | ## 主题1 27 | 《ARM嵌入式开发介绍以及探讨》 28 | 29 | ### 演讲者 30 | **曹一凌**, 担任上海新技实业公司技术总监,多年嵌入式经验,主导开发各类工业类软硬件,深度学习项目;2009年前在澳大利亚多家公司担任运维。 31 | 32 | ### 简介 33 | 简述ARM系列处理器简述,Beaglebone 的启动过程,交叉编译,uboot,kernel,rootfs自制法,我们应该考虑哪些方面选择适合我们的处理器。 和其他应用探讨。 34 | 35 | ### 需要的基础知识 36 | 无需特别知识,对嵌入开发有兴趣。 37 | 38 | ### 预计时长 39 | 30-60分钟 40 | -------------------------------------------------------------------------------- /2016/July/DL101_and_MXNet_Tutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/July/DL101_and_MXNet_Tutorial.pdf -------------------------------------------------------------------------------- /2016/July/Miracast_and_Linux.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/July/Miracast_and_Linux.pdf -------------------------------------------------------------------------------- /2016/July/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年7月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,7月30日(星期六)SHLUG将会举办2016年度第五次技术交流聚会。感谢**上海音智达信息**再次为本次活动提供的场地赞助. 4 | 5 | 6 | **地址:** 上海市安西路100号 [**在线地图**](http://map.sogou.com/#c=13516636,3639148,15&uids=999900002398410&where=13514566.40625,3637691.40625,13518699.21875,3640605.46875,0&page=1,10) 7 | 地铁2/11号线江苏路站4号口出来,沿愚园路向西走大概500米到安西路,安西路100号就在十字路口的西北角 8 | 9 | **时间:** 2016年7月30日(星期六) 14:30 - 18:00 10 | 11 | **报名:** 不需要 12 | 13 | **费用:** 不需要 14 | 15 | 本月聚会内容: 16 | --------------- 17 | 1. 主题:**《Deep Learning 101 and MXNet Tutorial》** 演讲者:**刘忆智** 18 | 19 | 2. 主题:**《Miracast 與 Linux》** 演讲者:**Derek 呆** 20 | 21 | 3. 自由交流 22 | 23 | 4. 会后AA聚餐 24 | 25 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 26 | 27 | # 主题详细信息: 28 | ## 主题1 29 | 《Deep Learning 101 and MXNet Tutorial》 30 | 31 | ### 演讲者 32 | **刘忆智**, MXNet Committer 33 | 34 | ### 简介 35 | MXNet是由DMLC社区开发的一款Deep Learning框架,因其高效灵活、对分布式训练的优秀支持,在学术界和工业界都有广泛应用。 36 | 本次分享将简要讲解什么是Deep Learning,Deep Learning可以做什么,并介绍MXNet一些新进展和我们将其和Spark等大数据处理平台结合的一些尝试。 37 | 38 | ### 需要的基础知识 39 | 最好了解机器学习的一些基本概念 40 | 41 | ### 预计时长 42 | 60分钟 43 | 44 | ## 主题2 45 | 《Miracast 與 Linux》 46 | 47 | ### 演讲者 48 | **Derek 呆**, Linux 玩家, 目前就職於深度科技. 49 | 50 | ### 简介 51 | Miracast 做為開放的無線顯示標準, 支持度廣泛, Windows 8.1, Android 4.2, Ubuntu 16.10 都陸續加上了支持. 可惜, 在 Linux 桌面平台上還沒有一個非常完美且通用的實現, 現況如何? 問題在哪? 我們能做些什麼? 52 | 53 | ### 需要的基础知识 54 | Linux 使用經驗 55 | 56 | ### 有以下相关知识或使用经验更好 57 | * C 編程能力 58 | * WiFi P2P (Direct) 59 | * iw 命令 60 | * wpa_supplicant 命令 61 | * rfkill 命令 62 | 63 | ### 预计时长 64 | 60分钟 65 | -------------------------------------------------------------------------------- /2016/June/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年6月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,6月25日(星期六)SHLUG将会举办2016年度第四次技术交流聚会。感谢**上海音智达信息**为本次活动提供的场地赞助. 4 | 5 | 6 | **地址:** 上海市安西路100号 [**在线地图**](http://map.sogou.com/#c=13516636,3639148,15&uids=999900002398410&where=13514566.40625,3637691.40625,13518699.21875,3640605.46875,0&page=1,10) 7 | 地铁2/11号线江苏路站4号口出来,沿愚园路向西走大概500米到安西路,安西路100号就在十字路口的西北角 8 | 9 | **时间:** 2016年6月25日(星期六) 14:30 - 18:00 10 | 11 | **报名:** 不需要 12 | 13 | **费用:** 不需要 14 | 15 | 本月聚会内容: 16 | --------------- 17 | 1. 主题:**《Raft一致性算法》** 演讲者:**吴江** 18 | 19 | 2. 主题:**《微服务架构》** 演讲者:**吴江** 20 | 21 | 3. 主题:**《微服务简介与ASP.NET Core的开发部署》** 演讲者:**马钧** (待定) 22 | 23 | 4. 自由交流 24 | 25 | 5. 会后AA聚餐 26 | 27 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 28 | 29 | # 主题详细信息: 30 | 31 | 32 | ## 主题1 33 | 《Raft一致性算法》 34 | 35 | ### 演讲者 36 | **吴江** 资深Ruby程序员,现在EMC公司CTD部门。 37 | 38 | ### 简介 39 | 传统的关系型数据库,对于Consistency使用强一致性,导致横向扩展性(Partition tolerance)并不好。新出现的以Cassandra为代表的NoSQL则侧重AP,对于C只提供Eventual Consistency保证。但是在企业级软件或者电商系统中C仍然很重要,这个时候就需要借助Raft这种Consensus Algorithm实现CP。我会讲解一下Raft一致性算法的原理,采用Raft算法的软件,并展示具体的使用效果。 40 | 41 | ### 预备知识 42 | CAP原理 43 | 44 | ### 预计时长 45 | 30分钟 46 | 47 | ## 主题2 48 | 《微服务架构》 49 | 50 | ### 演讲者 51 | **吴江** 资深Ruby程序员,现在EMC公司CTD部门。 52 | 53 | ### 简介 54 | 我们公司有服役了快10年的Rails服务,最近也在用微服务架构开发新产品。所以对于monolith应用和微服务架构的特点都有所涉猎。在2012的时候我就设想过利用消息队列拆分现有的服务。但是事实证明微服务架构对于基础设施的要求是非常多的,不限于服务配置,服务发现,API gateway,断路器等等。 55 | 56 | 我会讲解一下为什么会有微服务架构和微服务架构的现状,以及微服务常用的pattern。 57 | 58 | ### 预备知识 59 | 无 60 | 61 | ### 预计时长 62 | 60分钟 63 | 64 | ## 主题3 65 | 《微服务简介与ASP.NET Core的开发部署》 66 | 67 | ### 演讲者 68 | **马钧** 开源技术爱好者,全端程序员。20多年各种硬件平台,操作系统,数据库,编程语言开发经验。现在从事web开发工作。 69 | 70 | ### 简介 71 | 72 | 2105年11月12日,微软在其.Net Framework博客上宣布:.NET Core开源,包括运行时和框架代码,并且已经上传至全球最大同性交友社区:https://github.com/Microsoft/dotnet。 73 | 74 | .NET开源项目采用MIT或Apache 2协议,部分项目协议文档及其它形式内容则采用Creative Commons Attribution 4.0。 75 | 76 | .NET Core 是.NET Framework的新一代版本,是微软开发的第一个官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),也是微软在一开始发展时就开源的软件平台。 77 | 78 | ASP.NET Core 是新一代的 ASP.NET,早期称为 ASP.NET vNext,并且在推出初期命名为 ASP.NET 5,但随着 .NET Core 的成熟,以及 ASP.NET 5 的命名会使得外界将它视为 ASP.NET 的升级版,但它其实是新一代从头开始打造的 ASP.NET 核心功能,因此微软宣布将它改为与 .NET Core 同步的名称,即 ASP.NET Core。 79 | 80 | ASP.NET Core 可运行于 Windows 平台以及非 Windows 平台,如 Mac OSX 以及 Ubuntu Linux 操作系统,是 Microsoft 第一个具有跨平台能力的 Web 开发框架。 81 | 82 | 本次演讲主要简单介绍微服务以及如何使用一个由微软开发的,同时支持Windows、Linux和OS X操作系统的开源文本编辑器Visual Studio Code(VS Code)开发并且通过Docker在linux下部署一个ASP.NET Core的Web应用(服务)。 83 | 84 | ### 预备知识 85 | 无, 最好了解Docker基本概念和c#编程 86 | 87 | ### 预计时长 88 | 30分钟 89 | -------------------------------------------------------------------------------- /2016/June/microservices.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/June/microservices.pdf -------------------------------------------------------------------------------- /2016/June/microservvice_and_asp_deployment.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/June/microservvice_and_asp_deployment.pdf -------------------------------------------------------------------------------- /2016/June/raft.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/June/raft.pdf -------------------------------------------------------------------------------- /2016/March/SSL.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/March/SSL.pdf -------------------------------------------------------------------------------- /2016/March/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年3月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,3月27日(星期日)SHLUG将会举办2016年度第三次技术交流聚会,亦是安全相关主题的第二期讲座。感谢[**七牛公司**]( http://www.qiniu.com/ )为本次活动提供的场地赞助. 4 | 5 | 6 | **地址:** 上海市浦东新区亮秀路112号Y1栋309室 [**在线地图**]( http://map.sogou.com/#uids=1_ugcpoi_307198&urltype=u&c=13536457,3636562,15&where=13534386.71875,3635105.46875,13538519.53125,3638019.53125,0&page=1,10) 7 | 8 | **时间:** 2016年3月27日(星期日) 14:30 - 18:00 9 | 10 | **报名:** 不需要 11 | 12 | **费用:** 不需要 13 | 14 | 本月聚会内容: 15 | --------------- 16 | 1. 主题:**《ssl协议原理简述》** 演讲者:**Shell.Xu** 17 | 18 | 2. 主题:**《聊聊ftrace》** 演讲者:**Derek 呆** 19 | 20 | 3. 自由交流 21 | 22 | 4. 会后AA聚餐 23 | 24 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 25 | 26 | # 主题详细信息: 27 | 28 | 29 | ## 主题1 30 | 《ssl协议原理简述》 31 | 32 | ### 演讲者 33 | **Shell.Xu** 34 | 35 | ### 简介 36 | 简述SSL的设计目地,工作原理,配置安全基线等。 37 | 38 | ### 预计时长 39 | 60分钟 40 | 41 | ## 主题2 42 | 《聊聊ftrace》 43 | 44 | ### 演讲者 45 | **Derek 呆**: Linux 及開源愛好者, 但什麼成就都沒有, 反省他的人生中~ 46 | 47 | ### 简介 48 | ftrace 是 Linux kernel 中的 trace 框架, 可配合事先定義好的事件源觀察你的系統, 也可以在任意處加上新的事件源, 事件發生時由 ftrace 將事件資訊記錄在 kernel 的 ring buffer 中, 無 I/O 發生, 高效且成熟, 並且是唯一一個能從 kernel 初始 trace 到 panic 或關機的機制. 49 | 50 | 51 | ### 预计时长 52 | 60分钟 53 | -------------------------------------------------------------------------------- /2016/March/ftrace.txt: -------------------------------------------------------------------------------- 1 | 感謝 Frank 與昌遠的組織, 以及 shell 公司提供場地, 讓月聚順利的舉行, 歡樂的結束. 2 | 3 | 附上個人覺得比較有用的 ftrace 參考資料 4 | * Debugging the kernel using Ftrace - part 1 5 | * Debugging the kernel using Ftrace - part 2 6 | * Ftrace: Latency Tracing 7 | * Secrets of the Ftrace function tracer 8 | * Ftrace: The hidden light switch 9 | * Measuring Function Duration with Ftrace 10 | * Ftrace Kernel Hooks:More than just tracing 11 | * Documentation/trace/ 12 | 13 | 關於 ftrace 的設計 14 | * function tracer guts 15 | 16 | shell 題到 kprobe 新增時的問題 17 | * An introduction to KProbes 18 | * Kernel Probes (Kprobes) 19 | 20 | perf-tools 項目: https://github.com/brendangregg/perf-tools 21 | 22 | 另外, uprobe 的例子是少了一層 +|-N(). +|-N() 的作用是, 將 () 中的地址取出, 加上 N 後, 取內存中的值. 23 | 24 | 當 PyCFunction_Call() 被調用時, 第一個參數為 (PyCFunctionObject *) func, 一個指針, 對這個指針的地址加上 16, 取得內存中的值後, 得到 (PyMoethodDev *) m_ml 這個指針的值. 25 | 26 | m_ml 的第一個 field 即為 (char *) ml_name, 下午在這裡就 :string 了. 27 | 28 | 在 ftrace + uprobe 或 ftrace + kprobe 時, 要經由 pointer 取得值, 不論指向的類型是 u8/u16/...s8/s16... 或是 string, 都得要再 +|-N() 一次, 所以要這麼寫 29 | 30 | $ sudo ./utrace trace /usr/bin/python2.7 -p 'PyCFunction_Call:+0(+0(+16(%di))):string' 31 | 1 probe point(s) added 32 | python2.7-11877 [000] d... 3870.515308: PyCFunction_Call: (0x4b3b40) arg1="utf_8_decode" 33 | python2.7-11877 [000] d... 3873.719929: PyCFunction_Call: (0x4b3b40) arg1="utf_8_decode" 34 | python2.7-11877 [000] d... 3873.719994: PyCFunction_Call: (0x4b3b40) arg1="displayhook" 35 | python2.7-11877 [003] d... 3878.665339: PyCFunction_Call: (0x4b3b40) arg1="utf_8_decode" 36 | python2.7-11877 [000] d... 3881.165017: PyCFunction_Call: (0x4b3b40) arg1="utf_8_decode" 37 | python2.7-11877 [000] d... 3881.401642: PyCFunction_Call: (0x4b3b40) arg1="utf_8_decode" 38 | python2.7-11877 [003] d... 3882.492313: PyCFunction_Call: (0x4b3b40) arg1="utf_8_decode" 39 | python2.7-11877 [003] d... 3882.492383: PyCFunction_Call: (0x4b3b40) arg1="displayhook" 40 | applet.py-2099 [000] d... 3897.960556: PyCFunction_Call: (0x4b3b40) arg1="isinstance" 41 | applet.py-2099 [000] d... 3897.960589: PyCFunction_Call: (0x4b3b40) arg1="get" 42 | applet.py-2099 [000] d... 3897.960592: PyCFunction_Call: (0x4b3b40) arg1="get" 43 | applet.py-2099 [000] d... 3897.960595: PyCFunction_Call: (0x4b3b40) arg1="get" 44 | applet.py-2099 [000] d... 3897.960613: PyCFunction_Call: (0x4b3b40) arg1="get_args_list" 45 | applet.py-2099 [000] d... 3897.960636: PyCFunction_Call: (0x4b3b40) arg1="get" 46 | applet.py-2099 [000] d... 3897.960639: PyCFunction_Call: (0x4b3b40) arg1="get" 47 | applet.py-2099 [000] d... 3897.960642: PyCFunction_Call: (0x4b3b40) arg1="get" 48 | 49 | 在 perf-tools 項目中有 uprobe 及 kprobe 兩個 script, 可用它們簡化 uprobe & kprobe 的操作 (指 debugfs 的部份). 在 examples/ 下有 bin/ 下這些 script 的說明及用例. 50 | -------------------------------------------------------------------------------- /2016/Nov/A Brief Introduction to Neural Networks with Practical Example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2016/Nov/A Brief Introduction to Neural Networks with Practical Example.pdf -------------------------------------------------------------------------------- /2016/Nov/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2016年11月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,11月26日(星期六)SHLUG将会举办2016年度第六次技术交流聚会。感谢[**上海玻森数据科技**](http://bosonnlp.com)为本次活动提供的场地赞助. 4 | 5 | 6 | **地址:** 上海市徐汇区安福路288号话剧艺术中心 12 层玻森数据。近地铁1、7号线常熟路。 [**谷歌地图**](https://goo.gl/maps/Wj4532Bo6az) [**百度地图**](http://j.map.baidu.com/UI_Ak) 7 | 8 | 9 | **时间:** 2016年11月26日(星期六) 14:30 - 18:00 10 | 11 | **报名:** 不需要 12 | 13 | **费用:** 不需要 14 | 15 | 本月聚会内容: 16 | --------------- 17 | 1. 主题:**《基于深度学习的文本与图像处理实例》** 演讲者:**刘悠然** 18 | 19 | 2. 主题:**《基于 Docker 的集成测试与代码风格审查框架 Badwolf》** 演讲者:**吕路生** 20 | 21 | 3. 自由交流 22 | 23 | 4. 会后AA聚餐 24 | 25 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 26 | 27 | # 主题详细信息: 28 | ## 主题1 29 | 《基于深度学习的文本与图像处理实例》 30 | 31 | ### 演讲者 32 | **刘悠然**, 软件工程师,语言学、自然语言处理与机器学习爱好者。 33 | 34 | ### 简介 35 | 深度学习技术近年来逐渐被工业界广泛应用,在图像、语音、文本处理上均获得了令人印象深刻的效果。本次演讲介绍一些深度学习的基本知识,并使用一些常用的深度学习框架(mxnet, keras, tensorflow)演示一些深度学习在图像识别、文本分类、文本生成上的具体实例与工作流。 36 | 37 | ### 需要的基础知识 38 | 使用基于 Python 的深度学习框架进行演示,具有一般的类C系语言的编程基础即可。 39 | 40 | ### 预计时长 41 | 60分钟 42 | 43 | ## 主题2 44 | 《基于 Docker 的集成测试与代码风格审查框架 Badwolf》 45 | 46 | ### 演讲者 47 | **吕路生**, web后端开发工程师,badwolf 作者,Rust 爱好者。 48 | 49 | ### 简介 50 | 介绍为方便在 Bitbucket 上进行集成测试与代码风格审查的工具 [**Badwolf**](https://github.com/bosondata/badwolf) 51 | 52 | ### 需要的基础知识 53 | Python 编程语言基础。 54 | 55 | ### 预计时长 56 | 30分钟 57 | -------------------------------------------------------------------------------- /2017/July/announcement.md: -------------------------------------------------------------------------------- 1 | 2 | # SHLUG 2017年7月 月度技术分享会 3 | -------------------------------------------------------------------------------- 4 | 大家好,7月29日(星期六)SHLUG将会举办2017年度第三次技术交流聚会。感谢**上海音智达**为本次活动提供的场地支持. 5 | 6 | 7 | **地址:** 上海市安西路100号 地铁2/11号线江苏路站4号口出来,沿愚园路向西走大概500米到安西路,安西路100号就在十字路口的西北角 8 | 9 | **时间:** 2017年7月29日(星期六) 14:30 - 17:30 10 | 11 | **报名:** 不需要 12 | 13 | **费用:** 不需要 14 | 15 | 本月聚会内容: 16 | --------------- 17 | 1. 主题:**《重温Debian打包》** 演讲者:**孑影** 18 | 19 | 2. 主题:**《ClojureScript介绍》** 演讲者:**题叶** 20 | 21 | 3. 自由交流 22 | 23 | 4. 会后AA聚餐 24 | 25 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 26 | 27 | # 主题详细信息: 28 | ## 主题1 29 | 《重温Debian打包》 30 | 31 | ### 演讲者 32 | **孑影**,Linux系统开发者、开源软件粉丝、略懂C语言,Python。 33 | 34 | ### 简介 35 | Debian作为目前最流行的发行版之一,派生了Linux Mint,Deepin,Ubuntu等知名操作系统。大家知道Debian是由一个个流行的开源软件构建的,那么这些开源软件是如何构建成Debian系统的呢?简单来说是将开源代码源码打包成deb包,然后deb集成到软件仓库,最后通过仓库生成debian系统镜像。 36 | 37 | 本次分享将和大家一起探讨Debian包格式的制作。主要包括两个部分内容: 38 | 39 | 打包基础知识的回顾:从一个简单的hello word打包开始,回顾Debian打包过程。 40 | 41 | 基础知识进阶:介绍一些打包工作中常用的小技巧。 42 | 43 | 44 | ### 预计时长 45 | 60分钟 46 | 47 | 48 | ## 主题2 49 | 《ClojureScript介绍》 50 | 51 | ### 演讲者 52 | **题叶**, 前端工程师, 主要做单页面应用, 两年多React开发经验, 一年多ClojureScript开发经验. 53 | 54 | ### 简介 55 | ClojureScript是一门编译到JavaScript的Lisp方言, 包含一些有趣、经过设计的特性, 并对React所带来的在前端使用函数式编程的开发方式提供了更好的支持. 56 | 57 | 本次演讲主要会对ClojureScript的功能和使用做一些介绍, 共享ClojureScript一些最新进展. 58 | 59 | ### 预计时长 60 | 40分钟 61 | -------------------------------------------------------------------------------- /2017/July/cljs-intro.md: -------------------------------------------------------------------------------- 1 | 2 | # ClojureScript 介绍 3 | 4 | ---- 5 | 6 | # 关于我 7 | 8 | * ChenYong, @题叶, @jiyinyiyong 9 | * 前端开发者, 饿了么, Teambition 10 | * React, ClojureScript 11 | 12 | ---- 13 | 14 | # Clojure 是什么 15 | 16 | * 17 | * Lisp 方言, 动态语言, macros 18 | * 发明于 2007 年, 现代化的编程语言 19 | * 函数式编程, 不可变数据 20 | * Atoms/Refs 的并发编程 21 | * 编译到 JVM Bytecode, 使用 Jar 包和命名空间 22 | 23 | ---- 24 | 25 | # ClojureScript 是什么? 26 | 27 | * Clojure, 编译到 JavaScript 28 | * 通过 Google Closure Compiler 生成代码 29 | * 代码热替换功能 30 | * 31 | 32 | ---- 33 | 34 | # 有哪些语言特性 35 | 36 | * [ClojureScript Syntax in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes/blob/master/README.zh.md) 37 | * [learnxinyminutes Clojure](https://learnxinyminutes.com/docs/clojure/) 38 | * 39 | * 40 | 41 | 更多... 42 | 43 | ---- 44 | 45 | # Interop 46 | 47 | 48 | 49 | ---- 50 | 51 | # 工具链 52 | 53 | * Build Tasks: Lein / Boot 54 | * React bindings: Om / Reagent / Rum 55 | * REPL: Planck / [Lumo](https://github.com/anmonteiro/lumo) 56 | * Compiler wrapper: [shadow-cljs](https://github.com/thheller/shadow-cljs) 57 | 58 | ---- 59 | 60 | # Demo 61 | 62 | * REPL 63 | * cljs-basics 64 | 65 | 基本的代码的演示, 基于 [Lumo](https://github.com/anmonteiro/lumo) 66 | 67 | ---- 68 | 69 | # 为什么要研究 ClojureScript 70 | 71 | 跟前端的技术栈作对比 72 | 73 | * 语言设计, 对于数据有更清晰的概念, immutability, atom 74 | * 强调纯函数, 便于进行热替换 75 | * 强大的 DSL 能力 76 | * 同时 immutability 提供了更多优化的空间 77 | 78 | ---- 79 | 80 | # 社区 81 | 82 | * Clojurians(Slack) 83 | * Reddit/Clojure 84 | * Twitter 85 | * clojureverse.org 86 | * clojure-china.org 87 | 88 | ---- 89 | 90 | # npm 生态 91 | 92 | * 自动推断引用的外部代码 93 | * npm-deps 复用 npm 模块 94 | * Code Splitting 95 | 96 | 官网 News 或者 97 | 98 | 99 | ---- 100 | 101 | # Demo 102 | 103 | 基于 [shadow-cljs](https://github.com/thheller/shadow-cljs) 104 | 105 | * 基于热替换的 Node.js 命令行开发 106 | * 基于热替换的测试代码 107 | * 基于热替换的网页开发 108 | 109 | (连接大屏幕可能性能问题更明显) 110 | 111 | ---- 112 | 113 | # [Cumulo Editor](https://github.com/Cirru/cumulo-editor)(私货) 114 | 115 | 通过编辑器和 Macro 来编写 Clojure(Script) 116 | 117 | ---- 118 | 119 | Thanks 120 | -------------------------------------------------------------------------------- /2017/July/debian.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/July/debian.pdf -------------------------------------------------------------------------------- /2017/June/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2017年6月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,6月17日(星期六)SHLUG将会举办2017年度第二次技术交流聚会。感谢**cnxiaoma**为本次活动提供的场地支持. 4 | 5 | 6 | **地址:** 上海市杨浦区长阳路1687号长阳谷创意产业园1号楼3楼 [**百度地图**](http://j.map.baidu.com/6Y3tI) 7 | 8 | **时间:** 2017年6月17日(星期六) 14:00 - 17:00 9 | 10 | **报名:** 不需要 11 | 12 | **费用:** 不需要 13 | 14 | 本月聚会内容: 15 | --------------- 16 | 1. 主题:**《内核编译一二三》** 演讲者:**Wizard** 17 | 18 | 2. 主题:**《基于PXE的物理机Kubernetes集群管理方案》** 演讲者:**Adieu** 19 | 20 | 3. 自由交流 21 | 22 | 4. 会后AA聚餐 23 | 24 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 25 | 26 | # 主题详细信息: 27 | ## 主题1 28 | 《内核编译一二三》 29 | 30 | ### 演讲者 31 | **杨伟**,内核贡献者,主要贡献领域为mm,pci,device model等。现有内核补丁80。 32 | 33 | ### 简介 34 | 内核编译是一个比较冷门,且平时不太涉及,即使涉及也不用深究的一个领域。然而对内核编译系统的一定了解有助于了解内核代码结构,学习makefile对大型项目的管理方式。 35 | 36 | 本讲座尝试通过对具体例子的讲解,逐步展开内核编译系统的结构。帮助大家对内核编译,内核结构有一定了解。为以后内核相关工作,内核代码阅读打下基础。 37 | 38 | 参与者可以得到: 39 | 1. 内核编译的常用技巧 40 | 2. 内核编译系统的结构 41 | 3. 内核自身的组成部分 42 | 4. 内核编译过程的调试(看时间) 43 | 44 | ### 需要的基础知识 45 | 基础Makefile知识 46 | 47 | ### 预计时长 48 | 60分钟 49 | 50 | 51 | ## 主题2 52 | 《基于PXE的物理机Kubernetes集群管理方案》 53 | 54 | ### 演讲者 55 | **Adieu**,工程师,熟悉Python以及Go语言,Docker早期用户,容器架构实践者,开源爱好者。曽在多次活动中分享容器相关主题。开源软件资讯站 56 | Porter.io 作者。目前在经营 KubeUp.com,致力于协助客户公司以Kubernetes为基础结合众多开源组件进行底层架构,打造基于容器技术的高效开发运维流程,同时为企业使用Kubernetes过程遇到的问题提供技术支持和服务。 57 | 58 | ### 简介 59 | 基于公有云的Kubernetes集群管理方案已经相对成熟,系统管理员使用工具可以方便的完成集群搭建、扩容、升级等日常操作。在私有云环境中,现有的工具仅对OpenStack环境有所支持,物理机集群的管理方案和工具还相对欠缺。本次分享将介绍一种基于PXE的物理机配置管理方案供大家参考。依照不可变基础架构的建设思路,本方案将管理虚拟机所采用的用完即弃的办法引入到物理机管理流程当中,利用配套的管理工具,系统管理员可以方便的完成Kubernetes集群的搭建同时自动化大部分的日常运维工作,将宝贵的时间投入到更加有价值的集群规划以及业务架构当中去。 60 | 61 | ### 预计时长 62 | 45分钟 63 | -------------------------------------------------------------------------------- /2017/June/kernel.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/June/kernel.key -------------------------------------------------------------------------------- /2017/June/kernel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/June/kernel.pdf -------------------------------------------------------------------------------- /2017/June/kubernetes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/June/kubernetes.pdf -------------------------------------------------------------------------------- /2017/May/a_brief_intro_nix_and_nixos.org: -------------------------------------------------------------------------------- 1 | #+title: A brief introduction to Nix & NixOS 2 | #+author: 3 | #+email: 4 | 5 | #+REVEAL_THEME: serif 6 | #+OPTIONS: reveal_single_file:t 7 | #+OPTIONS: num:nil 8 | #+REVEAL_EXTRA_CSS: ./reveal.extra.css 9 | #+OPTIONS: toc:1 10 | 11 | #+REVEAL_HLEVEL: 2 12 | 13 | * Self Intro 14 | #+ATTR_REVEAL: :frag (fade-in) 15 | - digital IC design engineer(aka /frontend/), day job 16 | - GNU/Linux user 17 | + Debian(~0.5y) 18 | + Gentoo(>10yr) 19 | + NixOS(~1yr) 20 | - maintainer(one of) of SHLUG 21 | * What is Nix & NixOS 22 | #+begin_src 23 | The Purely Functional Package Manager 24 | --- http://www.nixos.org/nix 25 | 26 | The Purely Functional Linux Distribution 27 | --- http://www.nixos.org 28 | #+end_src 29 | ** Nix 30 | Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. It provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments. [[http://nixos.org/nix/about.html][Read more…]] 31 | ** NixOS 32 | NixOS is a Linux distribution with a unique approach to package and configuration management. Built on top of the Nix package manager, it is completely declarative, makes upgrading systems reliable, and has [[http://nixos.org/nixos/about.html][many other advantages]]. 33 | * Nix Expression Language 34 | The Nix expression language is a pure, lazy, functional language. 35 | ** values 36 | #+begin_src nix 37 | 1234 38 | 39 | "single line string" 40 | 41 | '' 42 | multiline 43 | string 44 | '' 45 | 46 | true 47 | 48 | false 49 | 50 | [1 2 3 4] 51 | 52 | { a = 2; b = "zz"; x = { y = 1; z = 2; }; } 53 | #+end_src 54 | *** simple values 55 | **** boolean 56 | - true 57 | - false 58 | **** integer 59 | - 1234 60 | - -2345 61 | - 0 62 | *** simple values 63 | **** string 64 | ***** between double quotation 65 | #+begin_src nix 66 | "this is string" 67 | "a two 68 | line string" 69 | #+end_src 70 | ***** /indented string/, between two single quotes 71 | #+begin_src nix 72 | '' 73 | 1. first line 74 | 2. second line 75 | '' 76 | ==> "1. first line\n2.second line" 77 | #+end_src 78 | ***** URI, https://example.com/ 79 | *** simple values 80 | **** path 81 | - /dev/null 82 | - ../tmp 83 | - ~/Desktop 84 | **** null 85 | *** lists 86 | #+ATTR_REVEAL: :frag (fade-in) 87 | - enclose with '[' & ']', whitespace separated 88 | - lazy in values, strict in length(not actually the lazy linked lists) 89 | *** sets 90 | #+ATTR_REVEAL: :frag (fade-in) 91 | - enclose with '{' & '}', always terminal with ';' for each "assignment" 92 | - is list of key/value pair(/attribute/) 93 | - core of Nix language 94 | + we use Nix to describe /derivation/ 95 | + /derivation/ is just a set of attributes to decribe the build process 96 | *** antiquotation 97 | #+ATTR_REVEAL: :frag (fade-in) 98 | - let a = "abc"; in "a = ${a}" 99 | - let b = { c = 123; }; in ''b = ${toString b.c}'' 100 | - let x = "a"; y = { a = 1; }; in y.${x} 101 | ** language constructs 102 | *** recursive set 103 | #+ATTR_REVEAL: :frag (fade-in) 104 | - rec { a = b; b = 3; } 105 | - rec { x = y; y = [1] ++ x; } (ERROR!) 106 | - [ rec { x = y; y = [1] ++ x; } ] (works) 107 | *** function 108 | #+ATTR_REVEAL: :frag (fade-in) 109 | - a: a + 1 110 | - a: b: a + b 111 | - a: {x = a + 1; y = a - 1;} 112 | - (a: a 2) (a: 4 / a) 113 | *** and more ... 114 | - let 115 | - with 116 | - inheriting attribute 117 | - conditional 118 | - assertion 119 | ** operators 120 | #+ATTR_REVEAL: :frag (fade-in) 121 | - /e/./attrpath/ [or /def/] 122 | + {a = 1;}.a 123 | + {"a b" = 2;}."a b" 124 | + {c = 3;}.d or 4 125 | - /e1/ /e2/ 126 | - /e/ ? /attrpath/ 127 | + {a = 1;} ? a 128 | + {a = 1;} ? b 129 | ** operators 130 | #+ATTR_REVEAL: :frag (fade-in) 131 | - /e1/ ++ /e2/ 132 | + [1] ++ [2] 133 | - /e1/ + /e2/ 134 | + 1 + 2 135 | + "a" + "b" 136 | + /home + /a/b 137 | - // 138 | + {a = 2; b = 3;} // {b = 4;} 139 | - and more 140 | + !, ==, !=, &&, ||, -> 141 | *** built-in function 142 | #+ATTR_REVEAL: :frag (fade-in) 143 | - builtins.head 144 | - builtins.div 145 | - builtins.toJSON, builtins.fromJSON 146 | - builtins.readFile, builtins.toFile 147 | + builtins.toFile "test.txt" "file content" 148 | - builtins.fetchurl 149 | + builtins.fetchurl "http://www.baidu.com" (changed every fetch) 150 | + builtins.fetchurl "http://example.com" (keep unchanged) 151 | *** built-in function 152 | - import 153 | + import ./a.nix 154 | + import ./hello 155 | + import (/search =$NIX_PATH=/) 156 | - derivation 157 | - and more... 158 | ** derivation 159 | A derivation is a build action, which return by built-in function /derivation/. The function take a set to describe the build process. 160 | *** non-optional attributes of /derivation/ function input 161 | #+ATTR_REVEAL: :frag (fade-in) 162 | - /system/ (eg. ="x86_64-linux"=) 163 | - /name/, string 164 | - /builder/, derivation or source(local reference, like /./build.sh/) 165 | + derivation => if output is an executable 166 | *** attribute translation 167 | All attributes are pass to builder as environment variable 168 | #+ATTR_REVEAL: :frag (fade-in) 169 | + string & integer just passed verbatim 170 | + /path/ will copy into store, and return the location 171 | + /derivation/ will be built before presentat derivation, return output path 172 | + lists of above type is allowed, and will simply concatenated, with space 173 | + /true/ is pass as string 1, /false/ and /null/ pass as empty string 174 | *** optional attributes 175 | - args 176 | - outputs 177 | *** mkDerivation 178 | #+ATTR_REVEAL: :frag (fade-in) 179 | - set /system/ to current system 180 | - always use bash as builder 181 | *** example 182 | #+begin_src nix 183 | { stdenv, fetchurl, perl }: 184 | 185 | stdenv.mkDerivation { 186 | name = "hello-2.10"; 187 | 188 | builder = builtins.toFile "builder.sh" " 189 | source $stdenv/setup 190 | 191 | PATH=$perl/bin:$PATH 192 | 193 | tar xvfz $src 194 | cd hello-* 195 | ./configure --prefix=$out 196 | make 197 | make install 198 | "; 199 | 200 | src = fetchurl { 201 | url = http://mirrors.163.com/gentoo/distfiles/hello-2.8.tar.gz; 202 | sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; 203 | }; 204 | inherit perl; 205 | } 206 | #+end_src 207 | *** manual build example 208 | #+begin_src nix 209 | pkgs = import {} 210 | hello = import ./hello.nix { 211 | stdenv = pkgs.stdenv; 212 | fetchurl = pkgs.fetchurl; 213 | perl = pkgs.perl; 214 | } 215 | #+end_src 216 | 217 | #+begin_src shell 218 | # shell 219 | nix-store --realise \ 220 | /nix/store/c6950gxq0ig84q1n00ykg0jaaydx3q81-hello-2.10.drv 221 | #+end_src 222 | 223 | #+begin_src nix 224 | with import {}; 225 | callPackage ./hello.nix {} 226 | #+end_src 227 | * How Nix Works? 228 | ** cli tools 229 | - nix-env 230 | + --install(-i), --uninstall(-e), 231 | + --list-generation, --rollback 232 | + -q, -qa 233 | - nix-instantiate 234 | - nix-store 235 | + --realise 236 | + -qR 237 | + --gc 238 | - nix-build, nix-collect-garbage, nix-shell ... 239 | ** nix store 240 | #+ATTR_REVEAL: :frag (fade-in) 241 | - /derivation/ -> package 242 | - all output of /derivation/ in a subdirectory in /nix store/ 243 | + usually "/nix/store" 244 | - path of output is determinate and is only depend on input 245 | + same input -> same output 246 | - /nix store/ is read only -> immutable 247 | ** build-time dependency 248 | #+ATTR_REVEAL: :frag (fade-in) 249 | - build environment is clean & determinate -> reproducible 250 | + external file(like ./build.sh) is copied to /nix store/ 251 | + package dependency is reference via /derivation/ 252 | - all build time dependency is contained in /derivation/ 253 | ** runtime dependency 254 | #+ATTR_REVEAL: :frag (fade-in) 255 | - scan all files for hash part of /nix store path/ 256 | + nix-store -qR /nix/store/*hello/bin/hello (strings /nix/store/*hello/bin/hello) 257 | + nix-store -qR /nix/store/*-unit-script/bin/pdnsd-post-start 258 | - binary distribution 259 | ** user profile 260 | How to access program install by Nix? 261 | #+ATTR_REVEAL: :frag (fade-in) 262 | - user profile at ~/.nix-profile 263 | + ~/.nix-profile/bin in $PATH 264 | - -> /nix/var/nix/profiles/per-user/ycy/profile 265 | - -> /nix/var/nix/profiles/per-user/ycy/profile-XXX-link 266 | - link will update when install or uninstall program with nix-env 267 | ** garbage collecting 268 | nix-* never delete any files, so we need GC 269 | #+ATTR_REVEAL: :frag (fade-in) 270 | - /nix/var/nix/profile 271 | - /nix/var/nix/gcroots 272 | + booted-system (current running system) 273 | + current-system (current NixOS) 274 | * From Nix to NixOS 275 | package manager(Nix) + ??? = OS(NixOS) 276 | 277 | #+ATTR_REVEAL: :frag (fade-in) 278 | - kernel 279 | - bootloader 280 | - service 281 | - config files in /etc 282 | ** cont. 283 | #+ATTR_REVEAL: :frag (fade-in) 284 | - package 285 | + kernel 286 | + bootloader(grub) 287 | - config 288 | + static files in /etc 289 | + service(systemd unit file) 290 | - state 291 | + /etc/passwd 292 | ** cli tools 293 | - nixos-rebuild 294 | + -switch 295 | + -build 296 | ** profile 297 | #+ATTR_REVEAL: :frag (fade-in) 298 | - /nix/var/nix/profiles/system 299 | - /run/current-system 300 | ** activation script 301 | - setup /etc 302 | - setup bootloader 303 | - other package specific setup 304 | * References & Resources 305 | manual, guide & tutorial 306 | - nix manual: http://nixos.org/nix/manual 307 | - nixos manual: http://nixos.org/nixos/manual/ 308 | - nix pills: http://lethalman.blogspot.com/search/label/nixpills 309 | - a gentle introduction to the nix family: http://ebzzry.io/en/nix/ 310 | - source code: https://github.com/NixOS/nixpkgs 311 | - nix cook book: http://funops.co/nix-cookbook/ 312 | - man configuration.nix 313 | ** cont. 314 | Papers, see https://nixos.org/docs/papers.html 315 | - Eelco Dolstra. The Purely Functional Software Deployment Model. PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3. 316 | - Armijn Hemel. NixOS: the Nix based operating system. Master’s thesis, INF/SCR-2005-091, Institute of Information and Computing Sciences, Utrecht University, Utrecht, The Netherlands. August 2006. 317 | -------------------------------------------------------------------------------- /2017/May/a_brief_intro_nix_and_nixos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/May/a_brief_intro_nix_and_nixos.pdf -------------------------------------------------------------------------------- /2017/May/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2017年5月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,5月21日(星期日)SHLUG将会举办2017年度第一次技术交流聚会。感谢**功夫国际孵化器**为本次活动提供的场地赞助. 4 | 5 | 6 | **地址:** 上海市浦东新区纳贤路800号B座7楼 功夫国际孵化器 [**百度地图**](http://j.map.baidu.com/BqNJI) 7 | 8 | 9 | **时间:** 2017年5月21日(星期日) 14:00 - 17:30 10 | 11 | **报名:** 不需要 12 | 13 | **费用:** 不需要 14 | 15 | 本月聚会内容: 16 | --------------- 17 | 1. 主题:**《Nix与NixOS简介》** 演讲者:**喻昌远** 18 | 19 | 2. 主题:**《Git 杂谈》** 演讲者:**张晨** 20 | 21 | 3. 自由交流 22 | 23 | 4. 会后AA聚餐 24 | 25 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 26 | 27 | # 主题详细信息: 28 | ## 主题1 29 | 《Nix与NixOS简介》 30 | 31 | ### 演讲者 32 | **喻昌远**,IC设计工程师,资深Linux用户,函数式编程爱好者。 33 | 34 | ### 简介 35 | 近年来函数式编程逐渐流行,其一些特点也被大家所了解;同时,随着软件日益复杂,能够方便地,可重复地配置、部署软件及其特定依赖,乃至同一软件多个不同版本变得尤为重要,这也是docker崛起的重要原因之一。而Nix包管理器通过借鉴函数式编程的诸多特性,从另外一个维度解决了软件依赖、多版本共存以及可重复性构建、部署等问题。NixOS则进一步将Nix的包管理推广到整个系统的配置、服务等的管理,从而实现了一个纯函数式的Linux发行版。 36 | 37 | 38 | ### 需要的基础知识 39 | 对Linux系统有初步的认识,了解Linux命令行的使用 40 | 41 | ### 预计时长 42 | 90分钟 43 | 44 | 45 | ## 主题2 46 | 《Git 杂谈》 47 | 48 | ### 演讲者 49 | **张晨**,FP、Web 开发、分布式系统技术爱好者,Splunk 软件开发工程师 50 | 51 | ### 简介 52 | Git 作为目前最流行的版本控制系统,已经成为程序员们的必备技能之一。这个技术分享致力于带领大家领略一些 Git 相关的进阶知识。主要内容包括: 53 | 54 | 1. Git 的一些进阶使用方法和好玩的应用 55 | 2. 深入 Git 内部的数据结构,探索 git add 和 git commit 的实现 56 | 3. 介绍一个简单的 HTTP Git Server 的实现原理 57 | 58 | 59 | ### 预计时长 60 | 60分钟 61 | -------------------------------------------------------------------------------- /2017/May/git.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/May/git.pdf -------------------------------------------------------------------------------- /2017/Nov/h5control.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/Nov/h5control.pdf -------------------------------------------------------------------------------- /2017/Oct/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2017年10月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,10月29日(星期日)SHLUG将会举办2017年度第五次技术交流聚会。本次活动将与[**上海区块链开发者组织**](https://www.meetup.com/SHBDev/)联合举办。感谢 [**Atmatrix.org**](https://atmatrix.org/) 为本次活动提供场地赞助。 4 | 5 | **地址:** 上海市黄浦区中山东二路88号外滩SOHO F座2楼 [地图](http://f.amap.com/tU8y_08A2dXp) 6 | 7 | - 轨道交通: 地铁10号线,豫园站1号口,步行10分钟。 8 | - 自驾: 人民路进入地下车库,开到F栋,坐货梯上到2楼。停车费:10元/小时。 9 | 10 | **时间:** 2017年10月29日(星期日) 14:00 - 18:00 11 | 12 | **报名:** 现场签到即可 13 | 14 | **费用:** 不需要 15 | 16 | 本月聚会内容: 17 | --------------- 18 | 1. 主题1:**《区块链应用畅想》** 演讲者:**金中兴** 19 | 20 | 2. 主题2:**《比特币分叉》** 演讲者:**程剑宇(Jamie Cheng)** 21 | 22 | 3. 主题3:**《OPENVPN的安装配置和生产实践》** 演讲者:**陈天乐** 23 | 24 | 4. 自由交流 25 | 26 | 5. 会后AA聚餐 27 | 28 | 我们热烈欢迎任何对于 Linux 以及开源技术感兴趣的朋友前来参加! 29 | 30 | # 主题详细信息: 31 | ## 主题1 32 | 《区块链应用畅想》 33 | 34 | ### 演讲者 35 | **金中兴**,法学学士,CFA Level 2 Candidate,高级软件工程师,BasicAttentionToken中国社区负责人。 36 | 37 | ### 简介 38 | 以比特币为代表的区块链技术是一个综合多门学科的全新领域,但目前参与这个话题讨论的人士由于身处各自的行业,在认知上存在一定程度的割裂:大部分技术人员主要关注技术特征和实现,在商业落地和广泛应用上缺乏足够的思考深度;并且较少看到技术人员针对普通民众提供比较友好的科普宣传,使得区块链对于一般非技术人员来说还是比较神秘的领域。商业人士有的看到了区块链的商业前景,有的将区块链看成万金油,由于不知道技术的边界,容易过度神话这项技术。讲者希望通过针对不同专业群体的一系列公益讲座,能够尽可能的缩小认知上的鸿沟,使大家一起让区块链技术尽快成为人们生活必不可少的一部分。 39 | 40 | 本次演讲会分三个部分 41 | 42 | 1. 以Amazon Gift Card为例,重新组合以ICO Token为基础的商业模式,使其合规化 43 | 2. 以抽象分层为切入点介绍支付系统的运行模式,并介绍比特币在大规模普及时可以从中借鉴到的经验 44 | 3. 介绍一个比较有意思的区块链应用场景:用户注意力货币化。该部分结合上面两个部分的内容,介绍区块链技术如何和其他领域的技术相结合,解决互联网广告领域长期的痛点 45 | 46 | ### 预计时长 47 | 50分钟 48 | 49 | 50 | ## 主题2 51 | 《比特币分叉》 52 | 53 | ### 演讲者 54 | **程剑宇(Jamie Cheng)**,现Blockseed高级工程师,前比特币中国交易所高级工程师。区块链早期爱好者和投资者。 55 | 56 | ### 简介 57 | 1. 什么是软硬分叉 58 | 2. 什么是重放攻击 59 | 3. segwit 2x是怎么回事 60 | 4. bitcoin cash是怎么回事 61 | 5. bitcoin gold是怎么回事 62 | 6. 扩容的其他解决方案 63 | 64 | ### 预计时长 65 | 60分钟 66 | 67 | 68 | ## 主题3 69 | 《OPENVPN的安装配置和生产实践》 70 | 71 | 72 | ### 演讲者 73 | **陈天乐**,资深系统工程师、MySQL 资深顾问、MCSE,RHCE,CMDBA近 8 年大型跨国公司、近 20 年专业的互联网公司工作经验。曾任职于 LYCOS 中国大中华区运维总监,LIVEDOOR 上海分公司运维总监等职务。在大型互联网系统以及传统的数据库系统方面有大量研究和实践经验。精通 LINUX 集群,WINDOWS 集群等大型系统的架构设计,安全加固,对 Linux-windows 混合的操作系统环境运维有独到的研究。对 MySQL 有深入了解,精通 MySQL的性能优化,备份恢复,日常维护以及扩展架构。BLOG 地址:http://brucectl.iteye.com 74 | 75 | ### 简介 76 | 1. OPENVPN介绍 77 | 2. 安装配置 78 | 3. CA证书安装 79 | 4. 服务器端配置 80 | 5. 客户端安装 81 | 6. 启动和停止 82 | 7. WIN客户端安装 83 | 8. 经验交流 84 | 85 | ### 预计时长 86 | 120分钟 87 | -------------------------------------------------------------------------------- /2017/Oct/btc_forks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/Oct/btc_forks.pdf -------------------------------------------------------------------------------- /2017/Oct/openvpn.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/Oct/openvpn.pdf -------------------------------------------------------------------------------- /2017/Sep/The_future_of_Bitcoin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2017/Sep/The_future_of_Bitcoin.pdf -------------------------------------------------------------------------------- /2017/Sep/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2017年9月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,9月23日(星期六) SHLUG 将会举办 2017 年度第四次技术交流聚会。感谢 [**Zippia**](https://www.zippia.com/) 为本次活动提供场地支持. 4 | 5 | **地址:** 杨浦区腾讯众创空间 5 楼 (走法:面对腾讯众创空间的牌子,楼下是杨浦幼稚园。右手边有一条 3 米宽的路,进来上楼即可。) [百度地图](http://j.map.baidu.com/Bv-NH) 6 | 7 | **时间:** 2017年9月23日(星期六) 14:00 - 18:00 8 | 9 | **报名:** 不需要 10 | 11 | **费用:** 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题:**《A step by step LED lamp DIY guide for smart home》** 演讲者:**喻昌远** 16 | 17 | 2. 主题:**《The Future of Bitcoin in China》** 演讲者:**小岛** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | 我们热烈欢迎任何对于 Linux 以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | ## 主题1 27 | 《A step by step LED lamp DIY guide for smart home》 28 | 29 | ### 演讲者 30 | **喻昌远**,数字集成电路设计工程师,自由软件爱好者,对函数式编程、智能家居感 31 | 兴趣,最近对区块链感兴趣。 32 | 33 | ### 简介 34 | 随着智能家居的兴起,各种“智能”家电层出不穷,但很多需要专门的软件才能使用。作为自由软件理念的践行者,DIY 有时不失为一个很好的选择。本演讲从硬件到软件,一步步地详细讲解一个通过 WIFI 控制的高亮 LED 灯的制作过程。 35 | 36 | ### 需要的基础知识 37 | 1. 中学物理(电学)知识,懂得 PWM 编码更佳 38 | 2. C 语言编程,有嵌入式开发经验更佳 39 | 40 | ### 预计时长 41 | 60分钟 42 | 43 | 44 | ## 主题2 45 | 《The Future of Bitcoin in China》 46 | 47 | ### 演讲者 48 | **小岛**,谷歌上海软件工程师,ACM/ICPC Regional 金牌,自由软件爱好者,喜欢参加各类黑客马拉松,并担任过 hack.init() 和 HACK×SJTU 的评委。曾参与运营开发过山寨币矿池 gPool,最近业余研究区块链,上个月初在 Taipei Ethereum Meetup 做过关于算力套汇的报告。 49 | 50 | ### 简介 51 | 随着比特币和区块链技术逐渐被人们所熟知,金融行业第一个开始受到影响,上海作为全国金融中心,围绕比特币以及区块链的项目看起来更是欣欣向荣。然而,繁荣的表面下也隐含了盛极而衰的危机。 52 | 随着境内 ICO 融资活动的泛滥,新一轮的监管行动终于宣告降临,与之连带的各大比特币交易所也将随之告停,网传甚至有进一步扩大直至封禁国外交易所端口从而彻底禁止比特币在国内传播的消息。 53 | 这一轮监管与之前相比有何不同?比特币会在中国大陆被全面禁止吗?本次分享带您一起追溯比特币在中国大陆发展的历史。探讨比特币和区块链技术在中国的未来。 54 | 55 | ### 预计时长 56 | 60分钟 57 | -------------------------------------------------------------------------------- /2018/April/Introduction_to_Cluster_Scheduler_Nomad: -------------------------------------------------------------------------------- 1 | https://github.com/shanghailug/res2018/blob/master/i421.monthly/nomad.pdf 2 | -------------------------------------------------------------------------------- /2018/April/Testing_with_QuickCheck: -------------------------------------------------------------------------------- 1 | https://github.com/shanghailug/res2018/tree/master/i421.monthly/quickcheck 2 | -------------------------------------------------------------------------------- /2018/April/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2018年4月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,4月21日(星期六) SHLUG 将会举办 2018 年度第三次技术交流聚会。感谢 Zippia 为本次活动提供场地支持.[1] 4 | 5 | **地址**: 上海市杨浦区锦建路99号,腾讯众创空间 5 楼 (走法:面对腾讯众创空间的牌子,楼下是杨浦幼稚园。右手边有一条 3 米宽的路,进来上楼即可。) [2] 6 | 7 | **时间**: 2018年4月21日(星期六** 14:00 - 16:30 8 | 9 | **报名**: 不需要 10 | 11 | **费用**: 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 16 | 1. 主题:**《Testing with QuickCheck》** 演讲者:**喻昌远** 17 | 18 | 2. 主题:**《Introduction to Cluster Scheduler Nomad》** 演讲者:**Su Yan** 19 | 20 | 3. 自由交流 21 | 22 | 4. 会后AA聚餐 23 | 24 | 我们热烈欢迎任何对于 Linux 以及自由和开源软件感兴趣的朋友前来参加! 25 | 26 | [1] http://www.shlug.org/monthly/2018/04/16/monthly.html 27 | [2] http://map.baidu.com/?shareurl=1&poiShareUid=cc68d24f5b139f0f76e5b62c 28 | -------------------------------------------------------------------------------- /2018/Aug/announcement.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "2018年8月月度技术分享会" 4 | date: 2018-08-15 23:00:00 +0800 5 | categories: monthly 6 | --- 7 | -------------------------------------------------------------------------------- 8 | 大家好,8月25日(星期六) SHLUG 将会举办 2018 年度第五次技术交流聚会。感谢流利说为本次活动提供场地支持, 感谢Tony的大力协助 . 9 | 10 | **地址:** 上海市杨浦区长阳路1687号,长阳创谷B 楼3层 流利说 (走法:12号线宁国路站2号口出,向东200米达长阳创谷。入园区后向北250米经过草坪达B楼。) [百度地图][2] 11 | 12 | **时间:** 2018年8月25日(星期六) 14:30 - 17:00 13 | 14 | **报名:** 不需要 15 | 16 | **费用:** 不需要 17 | 18 | # 本月聚会内容: 19 | 20 | - 主题:《Introduction to EOS Development》 演讲者: Feihu Tang 21 | 22 | - 主题:《CRDT 与最终一致分布式数据库》 演讲者:jiangplus 23 | 24 | 自由交流 25 | 26 | 会后AA聚餐 27 | 28 | 我们热烈欢迎任何对于 Linux 以及自由和开源软件感兴趣的朋友前来参加! 29 | 30 | # 主题详细信息: 31 | 32 | ## 主题1 33 | 34 | Introduction to EOS Development 35 | 36 | ### 演讲者 37 | 38 | Feihu Tang 39 | 40 | Andoromeda CEO, xoogler. 41 | Gold Medal - ACM/ICPC Regionals. 42 | Cofounder of gpool.net. 43 | Cofounder of pallet.io. 44 | Weekly Champion of Nebulas Incentive Program. 45 | 46 | ### 简介 47 | 48 | EOS,全称 Entrepreneurial Operating System, 49 | 不知不觉中,距离她的主网上线已经过去 2 个月的时间了, 50 | 这两个月的时间里,EOS 的生态如何发展,有哪些值得一提的 Dapp 出现, 51 | 又如何学习 EOS 合约开发呢。 52 | 53 | 1. 什么是 EOS 54 | 2. 有哪些 EOS Dapp 55 | 3. 如何开发 EOS Dapp 56 | 4. Dapp 世界的 Hello World - 分钱合约 57 | 5. 如何学习开发 EOS Dapp 58 | 59 | ## 主题2 60 | 61 | CRDT 与最终一致分布式数据库 62 | 63 | ### 演讲者 64 | 65 | 演讲者 jiangplus,区块链工程师,voidbase author,dat contributor,研究 plasma,分布式存储,可信计算 66 | 67 | ### 简介 68 | 69 | 在分布式系统中,我们需要在一致性,可用性,分区容错性之间取舍(CAP理论),除了常见的强一致性模型(CP)之外是否还有其他的道路? 70 | 我们将讨论最终一致性模型(AP),无冲突同步数据结构 (CRDT, Conflict-free Replicated Data Type) 和因果一致性,以及无限水平扩展的去中心分布式数据库。 71 | 72 | [2]: https://j.map.baidu.com/xe3vP 73 | -------------------------------------------------------------------------------- /2018/Aug/slides_and_photos.md: -------------------------------------------------------------------------------- 1 | Please visit below link: 2 | https://github.com/shanghailug/res2018/tree/master/i826.monthly 3 | -------------------------------------------------------------------------------- /2018/Jan/180124_U mine Crypto & Mining.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2018/Jan/180124_U mine Crypto & Mining.pdf -------------------------------------------------------------------------------- /2018/Jan/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2018年1月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,1月28日(星期日)SHLUG将会举办2018年度第一次技术交流聚会,感谢抖兔项目为本次活动提供场地赞助。 4 | 5 | **地址**: 上海市静安区愚园东路28号东海广场3号楼1楼创客中心(地图)。地铁2/7号线,静安寺站,步行10分钟。 6 | 7 | **时间**: 2018年1月28日(星期日** 13:30 - 16:30 8 | 9 | **报名**: 不需要 10 | 11 | **费用**: 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题1:**《Cryptocurrencies and Crypto Mining》** 演讲者: **曹一凌** 16 | 17 | 2. 主题2:**《SHLUG V3.0 发展规划讨论》** 演讲者: **Thomas Yao** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | # 主题详细信息: 26 | ## 主题1 27 | 《Cryptocurrencies and Crypto Mining》 28 | 29 | ### 演讲者 30 | **曹一凌***,umine.io的创始人,有着多年加密货币经验和硬件开发经验。 31 | 32 | 简介 33 | Cryptos, BTC, Blockchain, PoW, Hash Algorithm. 34 | Attack BTC? Double spending? Mining pool? The beauty of BTC, Cryptograph & Mathematics! 35 | BTC Mining Hardware Developments 36 | The rise of Altcoins, smart contracts, and D-Apps. 37 | Other Hashing Algorithms, Ethereum, Monero, Zcash, Lisk & More. 38 | 2018: CPU & GPU Mining. AMD and nVidia 39 | Running a Mining Farm. 40 | Environmental Impact and PoS 41 | Ad: umine.io 42 | 预计时长 43 | 60分钟 44 | 45 | ## 主题2 46 | 《SHLUG V3.0 发展规划讨论》 47 | 48 | ### 演讲者 49 | Thomas Yao,SHLUG(Shanghai Linux User Group)管理员。 50 | 51 | ### 简介 52 | SHLUG已经走过了20年的历程,在这20年中,互联网及各类IT技术变革之快,超出了我们所有人的想象,作为一个老牌开源非盈利社区,我们应当如何拥抱这样的变化,技术社区应该在当中扮演怎样的角色,我们如何能够做得更好?这个话题主要用于头脑风暴,由Thomas引导讨论。 53 | 54 | ### 预计时长 55 | 20分钟 56 | -------------------------------------------------------------------------------- /2018/June/announcement.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "2018年6月月度技术分享会" 4 | date: 2018-06-17 23:00:00 +0800 5 | categories: monthly 6 | --- 7 | -------------------------------------------------------------------------------- 8 | 大家好,6月23日(星期六) SHLUG 将会举办 2018 年度第四次技术交流聚会。感谢流利说为本次活动提供场地支持, 感谢Tony/tzwm的大力协助 . 9 | 10 | **地址:** 上海市杨浦区长阳路1687号,长阳创谷B 楼3层 流利说 (走法:12号线宁国路站2号口出,向东200米达长阳创谷。入园区后向北250米经过草坪达B楼。) [百度地图][2] 11 | 12 | **时间:** 2018年6月23日(星期六) 14:30 - 17:00 13 | 14 | **报名:** 不需要 15 | 16 | **费用:** 不需要 17 | 18 | # 本月聚会内容: 19 | 20 | - 主题:《分布式文件系统架构比较 》 演讲者: 刘洪清 21 | 22 | - 主题:《Avoid copy, C++ (N)RVO and Copy Elision》 演讲者:单栋 23 | 24 | 自由交流 25 | 26 | 会后AA聚餐 27 | 28 | 我们热烈欢迎任何对于 Linux 以及自由和开源软件感兴趣的朋友前来参加! 29 | 30 | # 主题详细信息: 31 | 32 | ## 主题1 33 | 34 | 分布式文件系统架构比较 35 | 36 | ### 演讲者 37 | 38 | 刘洪清(Davies),JuiceFS 创始人和CEO,多年分布式系统工程师,尤其偏爱分布式存储和计算。 39 | 40 | ### 简介 41 | 42 | 比较几个知名的分布式文件系统(HDFS、CephFS、GlusterFS、MooseFS、JuiceFS),不同的架构设计,以及相应的优缺点。 43 | 44 | 预计时长 45 | 46 | ~40分钟 47 | 48 | 需要的基础知识 49 | 50 | 文件系统,分布式系统 51 | 52 | ## 主题2 53 | 54 | Avoid copy, C++ (N)RVO and Copy Elision 55 | 56 | ### 演讲者 57 | 58 | 单栋(necokeine),C++码农。 59 | 60 | ### 简介 61 | 62 | C++中的几个常见复制优化,对日常使用C++的一些建议。 63 | 64 | 预计时长 65 | 66 | ~30分钟 67 | 68 | 需要的基础知识 69 | 70 | 需要有基础的C++知识。 71 | 72 | [2]: https://j.map.baidu.com/xe3vP 73 | -------------------------------------------------------------------------------- /2018/June/slides_and_photos.md: -------------------------------------------------------------------------------- 1 | Please visit below link: 2 | https://github.com/shanghailug/res2018/tree/master/i623.monthly 3 | -------------------------------------------------------------------------------- /2018/Mar/2018-spring-ipfs-dat-slide: -------------------------------------------------------------------------------- 1 | https://github.com/jiangplus/tech-slides/tree/master/2018-spring-ipfs-dat 2 | -------------------------------------------------------------------------------- /2018/Mar/Pregel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanghailug/monthly_meetup/522b2368af0960ef676904e19554552389639d87/2018/Mar/Pregel.pdf -------------------------------------------------------------------------------- /2018/Mar/announcement.md: -------------------------------------------------------------------------------- 1 | # SHLUG 2018年3月 月度技术分享会 2 | -------------------------------------------------------------------------------- 3 | 大家好,3月17日(星期六)SHLUG将会举办2018年度第二次技术交流聚会,感谢抖兔项目为本次活动提供场地赞助。 4 | 5 | **地址**: 上海市静安区愚园东路28号东海广场3号楼1楼创客中心(地图)。地铁2/7号线,静安寺站,步行10分钟。 6 | 7 | **时间**: 2018年3月17日(星期六** 14:00 - 17:00 8 | 9 | **报名**: 不需要 10 | 11 | **费用**: 不需要 12 | 13 | 本月聚会内容: 14 | --------------- 15 | 1. 主题1:**《pregel 图计算系统设计简介》** 演讲者: **张茄子** 16 | 17 | 2. 主题2:**《去中心存储的未来:IPFS 与 Dat》** 演讲者: **jiangplus** 18 | 19 | 3. 自由交流 20 | 21 | 4. 会后AA聚餐 22 | 23 | 我们热烈欢迎任何对于Linux以及开源技术感兴趣的朋友前来参加! 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SHLUG 月度技术讲座帖子 2 | --------------------------------------------------------------------------------