“Talk is cheap,
show me the code.”

"We reject kings, presidents and voting. We believe in rough consensus and running code."
This is how the Internet was built. This is basically how the modern technology is developed. And I believe the future will be built based upon this as well.
It works.

Make Cosim Great Again

Vivado HLS is a handy(?) high-level synthesis (HLS) tool that supports C++11 features. However, its C-RTL co-simulation (cosim) is broken in the sense that it doesn't fully support C++11. The cosim compiler seems to be stuck at
Status
Blaok

There are problems in the rt2800usb driver on Linux and according to this post I have to set nohwcrypt=1 for the rt2800usb kernel module.

sudo ifconfig wlan0 down
sudo rmmod -f rt2800usb
sudo modprobe rt2800usb nohwcrypt=1
sudo ifconfig wlan0 up

To make it permenant I have to put the following in /etc/modprobe.d/rt2800usb.conf

options rt2800usb nohwcrypt=1

Damn it… I really should have found this earlier…

2017,路漫漫

PhD的第一年过得似乎有些消沉。想不起来从什么时候开始,自己好像失去了斗志,不再是从前那个无所畏惧勇往直前的少年。慵懒了,懈怠了,不够努力了。
Status
Blaok

记得初中的时候经常有作文题讲,人生是两杯酒,一杯苦酒,一杯甜酒,以此教育大家先苦后甜。
然而,任何智力正常的人,不都应该把甜酒喝了吧苦酒倒了吗 (╯ ̄Д  ̄)づ╧═╧
今天洗澡的时候,突然想到,这个事情其实可以更严谨一点建模:

人类出生的时候有两杯酒,一杯苦酒,一杯甜酒。规定酒必须一杯一杯喝。如果喝掉苦酒,则会再端上来一杯苦酒和一杯甜酒;如果喝掉甜酒,则自动有一杯苦酒被倒掉。酒不允许超支和借贷,也不会随意消失或出现。人类喜欢喝甜酒,不喜欢喝苦酒。

于是想喝甜酒就必须先喝苦酒,要是图一时之快喝光了甜酒就不再有机会喝到更多的甜酒,因为喝苦酒是唯一获得更多甜酒的方式。所以还是乖乖地先苦后甜吧。
然而,都说了是反鸡汤,因为事实上——
有的人出生的时候是带了一箱甜酒啊 (╯ ̄Д  ̄)づ╧═╧
有的人出生的时候是带了一箱苦酒,而且喝前面一大半的时候还不给带甜酒 (╯ ̄Д  ̄)づ╧═╧
有的人好死不死就是会被天上掉下来的甜酒砸啊 (╯ ̄Д  ̄)づ╧═╧
不说了,我去喝苦酒去了 *~( ̄▽ ̄)~[]

Status
Blaok

If you are working with some software which requires you to source some code and messes up with your PATH and other environment variables like Vivado and Merlin compiler, here is a simple and straightforward method to get rid of the mess (to some extent).

#!/bin/bash
VERSION=2016.1
. /space/Xilinx/SDAccel/${VERSION}/settings64.sh
# do something if necessary
if ! test "$0" -ef "$(which $(basename $0))"
then
    exec $(basename $0) "$@"
else
    if test -t 2
    then
        echo "Recursive call detected!" 1&>2
    fi
fi

Some notes:

  • Start with #!/bin/bash if you or your script use bash-specific syntax!
  • Give this file execution permission with chmod +x!
  • Make sure this file itself has the same name as the target program, or is soft-linked to it!
  • Use . instead of source, which improves compatibility!
Status
Blaok

On Linux, if you see

mtr: unable to get raw sockets.

The following might help:

sudo chmod 4755 $(which mtr)

Reference


The reason this happens is that only privileged processes (or processes with proper capabilities(7) on Linux) can create raw sockets, which is needed to send/receive ICMP packets. By chmod(2), the executable will get the S_ISUID mode, which means it can set process effective user ID when execve(2).


A safer solution is

sudo setcap cap_net_raw+ep $(which mtr)

which only gives mtr the cap_net_raw capability.

Reinstalling the mtr package via the package manager should also solve the problem since it will do whatever appropriate to make it work.

 

Protected: Renee Go

TL;DR: 注意网站/标识牌上的说明、不懂就问我/查词典/Google、听从工作人员的指示。

Farewell

For English only readers, if any: this article is about my mother's father, who recently passed away. I could have been there before he left, but I didn't. I shall regret this for all the rest of my life. However, he has relieved from pain and we all should carry on with our lives. We should try to make our life better and better, in the name of him and his blessing.
Status
Blaok

According to cplusplus.com, std::vector<bool> in C++ is specialized and consumes only 1/8 space as you may have expected. However, as 8-bit bytes are usually the shortest available type in most implementations, thread-safety is not guaranteed. This could have caused significant trouble in my current project. How lucky I am to notice this interesting feature before I have actually encountered trouble.

Besides, std::bitset provides a fixed size bit array whose length is fixed at compile-time.

μtorrent Optimization Guide

Let's assume you have sufficiently high bandwidth. For example, you are in college and your university does not care about torrenting. One frustrating thing when you are torrenting is that your hard disk does not provide zero latency or infinite bandwidth. μtorrent might be complaining "100% Disk IO" all the time and refuses to download or upload for quite a long time. After a few Googling, I have got some useful suggestions. I will first list what to do and then explain why.

一碗古老的鸡汤

差不多是高三时候看到的文章,刚整理冷数据的时候看到,还是觉得写的蛮好。现在找不到当时的引用来源了,姑且仍保留当时的引用格式吧。
Status
Blaok

今天看到一句话,“不理解,但尊重”。且不说社会,就是放在一个人身上,又有谁能说到做到呢。

Status
Blaok

世间事,总有一些,我可以不反对,但绝不会赞同。

我为什么还在用Windows

对啊我为啥还在用Windows啊……我也不知道……还真没想过……曾经尝试用Linux做主力系统,卒。然后就一直Windows到现在。看着网管手中高大上的Arch Linux玩得是风生水起,我不禁开始思考起这个深刻的哲学问题了。
Status
Blaok

突然有一天,我的iPad播不出声音了……耳机不行……扬声器也不行……蓝牙都不行……不是静音的问题……重启没有用……所有的播放器都没声了……直到我找到了这篇帖子。其实只要删除

/System/Library/PrivateFrameworks/IAP.framework/Support/iapd

然后重启就行了……

OpenWRT’s way

 since 2012. For now I've been able to make it work under multiple environments, with or without native IPv6 support, bridged or NATed. By "work", I mean both IPv4 and IPv6, with a