? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

技术大杂烩

技术专题Blog

Follow in NewsfeedFollowing

Latest comments:

kcp协议

on May 10, 2017

众所周知,骨干网对TCP链接限速的方式是丢包。

突破限速的方法就是用UDP来传输。

kcp就是一种高效的RUDP实现。参考实现很多有 C语言的

https://github.com/liudf0716/xkcptun

也有C#和Java的。

Read more

微软的TypeScript

on Apr 26, 2017

很长的时间,我是直接忽略微软的技术的。

主要是微软的东西太封闭,又经常大变。

最近用了下vscode,应该是比较好的编辑器了,尤其是插件比较多。

再了解了下,原来vscode是主要用TypeScript开发的。原来如此!

看来对微软要更新下认识了。

Read more

为何PHP能在网站开发领域流行这么多年?

on Mar 02, 2017

我想最主要的原因是PHP非常的简单,容易学习;而且还很容易部署;

对于大部分业余开发人员来说,没什么比PHP更容易建好一个个人网站了。

尤其是有了大量的PHP开源项目以后,更是如此。

PHP的扩展多是用C直接编写,反而简化了很多设计问题。而且用C编写性能也得到了保障。

相比Python,PHP少了很多通用的用途,诸如机器学习,图像处理等领域,PHP也没多少人用。

但是,Python虽然在Web开发上有那么多的库,缺反而分散了社区力量,各种框架争论不休,外加Python3的不兼容Python2。。。

Ruby虽然火了一小段时间,但是由于门槛太高,语法过于复杂,结果还是被逐渐淘汰了。

nodejs由于js的设计问题,火了几天就没人用了。

其它的竞争者,更是没有流行多久。。。

从人力资源角度,PHP优势更大,学校科班出身的人会Java较多,但是半路出家的,基本都是学PHP/MySQL的多。外加一些速成培训班,和几个好用的PHP论坛,PHP在招人方面有巨大的优势。

最终,PHP胜出。

Read more

CoffeeScript笔记

on Jan 26, 2017

1. 函数调用可以省略括号

console.log "Hello, world!"

2. 字符串用双引号引起来的可以用插值语法

hi = (name) -> ("hi~ #{name}")

3. lambda定义时,如果没有参数可以省略

4. do 表示调用后面的这个函数

console.log do -> 'Hello, closure!'

5. # 后接注释

6. 直到表达式末尾,隐式括号才会闭合

所以,括号不要省了,多用少BUG。

7. 问号类似groovy的语法,叫吸收符号

console?.log "hi~"

如果console是null,也不会报错。这个很方便。

8. 不要用js的arguments对象

9. is关键字等价于js中 ===

10. ==在CoffeeScript中等价于js中的===

11. 『注意』CoffeeScript中{}只有一种用途,定义一个JSON风格的对象;

其余的js要用{}的地方都用缩进来表达。

12. throw e unless a 是一个很好的惯用法

13. ++运算符是支持的

14. CoffeeScript作用域规则:

a) 每个函数一个作用域

b) 变量在最外层的作用域定义,赋值时定义

c) 变量在其作用域外不可见

以上即 词法作用域------简单来说就是 第一赋值定义,处函数访问就不可见,函数内定义的函数可以见。

15. this是表示当前的context

16. 每次函数调用的时候,this context都可能会不同

17. @是this的简写

@name === this.name

18. [1...3] 三个点表示不包含结束的3

19. coffee的列表解析语法和python很像

Read more

CoffeeScript

on Jan 25, 2017 ·
2 comments

写起来确实很舒心。

Read more

继续学习前端技术

on Jan 22, 2017

计划在过年的这段时间好好学习下es6还有coffee-script。

Atom 编辑器的大部分源码是CoffeeScript写的。

Read more

Dart的函数没有校验返回值类型

on Jan 21, 2017

在非严格模式下:

// Define a function.
final int i =100;
final int x = int.parse("1000");
int printNumber(num aNumber) {
print('The number is $aNumber.'); // Print to console.
print('i=$i 🇨🇳');
print('x=$x 🇪🇺');
return [x,i];// 这样居然可以
}

// This is where the app starts executing.
main() {
var number = 42; // Declare and initialize a variable.
int x=printNumber(number); // 返回不是int,也可以运行。。。
print(x);
}

Read more

Atom编辑器

on Jan 21, 2017

注意到,Atom编辑器的源码大部分是Coffee-Script,小部分是js。

Read more

DartPad做的很不错

on Jan 21, 2017

https://dartpad.dartlang.org/b51ea7c04322042b582a

可用性比Golang的那个类似的线上沙盒好多了。

Read more

Dart的_开头表示private和Go语言的一个提议一样

on Jan 20, 2017

有人提议Go语言把所有中文字符视为大写,而把所有的下划线开头的视为小写。

嗯,不错的提议。

Read more

Google的Dartlang貌似要重新火起来了

on Jan 20, 2017

今天花费了一点儿时间了解了下。

感觉设计的不错,可能以后Android开发可以用这个语言吧。

至少可以写点小工具。

Read more

因为想看ZeroNet源码开始学CoffeeScript

on Jan 18, 2017 ·
2 comments

初步了解下来,似乎很简单。

虽然TypeScript似乎更流行。

Read more

ZeroNet的最大推广障碍

on Jan 14, 2017 ·
2 comments

没有一个事件来引爆。

Read more

ZeroNet的依赖的GEvent简介

on Jan 13, 2017

GEvent是Python的一个协程库,可以几乎不用改动代码的情况下,无缝的在启用GEvent和关闭GEvent间切换。

推荐用 monkey pacth功能一次性替换Python的标准库。在大部分IO密集的应用中,这么做可以极大的提升性能。

Read more

简单的提升Python项目性能的方案

on Jan 08, 2017

Cython:可以用来改写项目中性能瓶颈的部分,然后用Cython编译成.so。即可大大提速。

Nuitka:可以无脑的把整个项目的.py源码都编译成C++再自动编译成模块。

PyPy:如果项目是纯Python的,那么最简单的还是改用PyPy。对于纯Python的项目并没有实用第三方扩展的话,不需要对源码做什么改动。

Read more
Add new post

Title

21 hours ago · 2 min read ·
3 comments
Body
Read more

Not found

Title

21 hours ago · 2 min read

0 Comments:

user_name1 day ago
Reply
Body
This page is a preview of ZeroNet. Start your own ZeroNet for complete experience. Learn More