• Linux通过进程名字杀掉进程

    有时候要杀掉一个进程,但需要事先知道PID,于是现用ps -le | grep process_name找出PID,然后再通过kill命令杀掉

    利用这一段可以找出nginx的PID

    [root@test01 ~]# ps aux | grep -w nginx | grep -v grep | awk '{print $2}'
    1279
    13108
    13109
    30629
    30650
    

    配合kill命令可以写成一行

    kill `ps aux | grep -w nginx | grep -v grep | awk '{print $2}'`
    

    ...

    READ ALL

  • JavaScript setTimeout

    JavaScript是一门单线程语言,UI渲染,脚本执行都使用同一个线程。

    setTimeout是很多人喜欢用的延迟执行函数,如

    setTimeout(function() {
      console.log('Hello World');
    }, 3000);
    

    我们会认为程序在三秒后执行Hello World,但实际上又可能会超出三秒,并且时间不固定。前面说了,JavaScript是单线程,所有异步执行的函数都会被压入一个Event Table,只有主线程空闲的时候才会从Event Table取出函数执行,Event Queue是一个list,每次主线程空闲就从Event Queue里取出第一个函数执行

    ...

    READ ALL

  • C实现斐波那契

    JavaScript, Golang, Python和PHP实现的都写过了,今天用C再来一下

    什么是斐波那契

    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
    这个数列从第3项开始,每一项都等于前两项之和

    代码实现

    #include <stdio.h>
    
    int a = 0;
    int b = 0;
    int tmp;
    
    int fibonacci() {
      if (a == 0) {
        a = 1;
      } else {
        tmp = a;
        a = a + b;
        b = tmp;
      }
    
      return a;
    }
    
    int main() {
      int i;
    
      for (i = 0; i < 10; i++) {
        printf("%d ", fibonacci());
      }
      return 0;
    }
    

    ...

    READ ALL

  • 公交车上丢手机了!

    带着两袋行李上车后,一只手抓着行李厢,另一只手抓扶手。到站后,欲下车,发现门口堵着一死胖子。

    我正要从他左边穿过,他顺势堵到左边。以为他不下车于是准备从右边下车,他又堵到右边。当时正急着下车,没顾上左右看又到左边去准备从左边下车,谁知那死胖子又堵了过来。

    正感觉奇怪时,胖子下车了,下车后胖子往右边走我往左边走,因为胖子堵了我好几个回合才下车,觉得有点奇怪便回头看了胖子几眼。发现胖子居然边走边回头看,可惜当时我没发现手机丢了。当我们走远了以后摸摸牛仔裤的右前兜发现手机不见了,回想起公交车上胖子堵我那一会儿,我真笨啊!

    ...

    READ ALL

  • Golang变通实现class类

    Go里没有class关键字,一切一切都是函数,这也是我非常喜欢的编程方式。

    package main
    
    import "fmt"
    
    func main() {
      b := sum(5, 7)
      fmt.Println(b)
    }
    
    func sum(a int, b int) int {
      return a + b
    }
    

    如果你非得想使用类的方式来编程,可以这么干

    package main
    
    import "fmt"
    
    type Utility struct {}
    
    func (u *Utility) sum(a int, b int) int {
      return a + b
    }
    
    func main() {
      u := &Utility{}
    
      b := u.sum(5, 7)
      fmt.Println(b)
    }
    

    ...

    READ ALL

  • Python跳出for循环continue与break

    虽然在Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。

    break

    # encoding=UTF-8
     
    for x in range(10):
      if x == 5:
        break
    
      print x
    

    Output:

    0
    1
    2
    3
    4
    

    continue

    # encoding=UTF-8
     
    for x in range(10):
      if x == 5:
        continue
    
      print x
    

    ...

    READ ALL

  • 部分IE下使用trim()函数出错解决方法

    因为在获取输入框内容时,常常需要trim下多余的空格。而IE部分低端浏览器里的JavaScript版本不内置trim()这个清楚空格函数,而流行的浏览器里都兼容了,比如Chrome,FF等。为了不让IE下报错影响使用,我们可以自己动手丰衣足食,在IE下给String原型添加一个trim自定义函数,让IE下的String类型支持trim()清除首尾空格。

    把以下代码贴在最开始部分就好,当然清除空格的写法多种多样,以下效率没测试过,但基本够用,实在看重效率可以自己研究下正则,替换成你的写法就好!

    // 解决IE下string类型没有trim函数bug
    String.prototype.trim = function () {
      return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    };
    

    ...

    READ ALL

  • Python写的一个按面值找零钱的程序

    前两天写了一个《Python写的一个自动售饮料小程序》,今天尝试Python写的一个按面值找零钱的程序。

    按照我们正常的思维逻辑从大面值到小面值的找零方法,人民币面值有100元,50元,20元,10元,5元,1元,5角,1角,而程序也相应的设置了这些面值。只需要调用函数时传入您想要找零的金额,程序会自动算各个面值的钱应该找多少张。如传入50元,则系统自动算出找零50元一张面值,如果传入60块7毛,则程序自动算出该找零50元一张,10元一张,5角一张,1角两张。

    ...

    READ ALL

  • Python isinstance()判断对象类型

    在Python中可以使用type()isinstance()这两个函数判断对象类型,而isinstance函数的使用上比type更加方便。

    例子

    # coding=utf-8
     
    a = 10
     
    def b():
      pass
     
    print isinstance(a, (int, str))
    print isinstance(a, (float, str))
    print isinstance(b, (str, int))
     
    class c:
      pass
     
    obj = c()
     
    print isinstance(obj, (c, int))
    

    ...

    READ ALL

  • Python变量值交换

    Python追求简洁,诞生不少运算赋值规则,力求从简,其中就包括两个或者多个变量交换值。

    JavaScript语言中

    // 声明变量
    var a = 50
    var b = 10
    
    // 开始交换,先把其中一个值赋给临时变量,然后才能实现交换变量。
    var tmp = a
    a = b
    b = tmp
    

    Python中

    # 在Python中,实现两个变量值交换非常方便
    
    # 声明变量
    a = 50
    b = 10
    
    # 开始交换变量
    a, b = b, a
    

    甚至可以多个变量同时交换

    a = 50
    b = 10
    c = 20
    c, b, a = a, b, c
    一个运算符就搞定多个变量值互换!
    

    ...

    READ ALL