分类
- .net (22)
- adf (11)
- android (3)
- article (236)
- astronomy (1)
- block chain (8)
- C# Code (9)
- c/c++ (2)
- cache (8)
- cloud (2)
- consensus (3)
- css (2)
- cve (1)
- db (55)
- digest (1)
- english (1)
- finance (2)
- go (3)
- gps (2)
- hardware (1)
- html (2)
- http (2)
- info (19)
- iot (1)
- it (3)
- java (30)
- javascript (6)
- jsp (2)
- linux (76)
- mail (14)
- math (1)
- message (8)
- mood (4)
- mq (2)
- network (22)
- php (9)
- protocol (4)
- push/pull (2)
- python (5)
- rpc (2)
- search (4)
- servlet (1)
- space (24)
- storage (15)
- technologys (103)
- templete (1)
- virtual machine (7)
- web server (37)
- windows (12)
-
近期文章
其他操作
链接
年归档:2016年
Crontab / Cron Expressions
cron表达式和Linux下的很类似,比如 "/5 * * ? * * *" 这样的7位表达式,最后一位年非必选。
表达式从左到右,依此是秒、分、时、月第几天、月、周几、年。下面表格是要遵守的规范:
段名 | 允许的值 | 允许的特殊字符 |
---|---|---|
Seconds | 0-59 | , - * / |
Minutes | 0-59 | , - * / |
Hours | 0-23 | , - * / |
Day of month | 1-31 | , - * ? / L W |
Month | 1-12 or JAN-DEC | , - * / |
Day of week | 1-7 or SUN-SAT | , - * ? / L # |
Year | 空, 1970-2099 | , - * / |
特殊字符 | 解释 |
, | 或的意思。例:分钟位 5,10 即第5分钟或10分都触发。 |
/ | a/b。 a:代表起始时间,b频率时间。 例; 分钟位 3/5, 从第三分钟开始,每5分钟执行一次。 |
* | 频率。 即每一次波动。 例;分钟位 * 即表示每分钟 |
- | 区间。 例: 分钟位 5-10 即5到10分期间。 |
? | 任意值 。 即每一次波动。只能用在DayofMonth和DayofWeek,二者冲突。指定一个另一个一个要用? |
L | 表示最后。 只能用在DayofMonth和DayofWeek,4L即最后一个星期三 |
W | 工作日。 表示最后。 只能用在DayofWeek |
# | 4#2。 只能用DayofMonth。 某月的第二个星期三 |
实例介绍
”0 0 10,14,16 * * ?" 每天10点,14点,16点 触发。
"0 0/5 14,18 * * ?" 每天14点或18点中,每5分钟触发 。
"0 4/15 14-18 * * ?" 每天14点到18点期间, 从第四分钟触发,每15分钟一次。
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发。
common port
常用端口
在计算机的65535个端口,通常把端口号为1024以内的称之为常用端口,这些常用端口所对应的服务通常情况下是固定的,
TCP 1=TCP Port Service Multiplexer
TCP 2=Death
TCP 5=Remote Job Entry,yoyo
TCP 7=Echo
TCP 11=Skun
TCP 12=Bomber
TCP 16=Skun
TCP 17=Skun
TCP 18=消息传输协议,skun
TCP 19=Skun
TCP 20=FTP Data,Amanda
TCP 21=文件传输,Back Cons... 继续阅读
推荐算法
基于用户的协同过滤推荐算法原理和实现:
http://www.cnblogs.com/technology/p/4467895.html
今日头条的个性化推荐算法
http://www.mahaixiang.cn/internet/1418.html
基于时间效应和用户兴趣变化的改进推荐算法
http://www.doc88.com/p-8949047664061.html
新闻个性化推荐基本算法
http://blog.csdn.net/hxxiaopei/article/details/47007011
推荐算法一些看法
http://www.zhihu.co...
发表在 technologys
推荐算法已关闭评论
.NET RSACryptoServiceProvider PEM + DER Support
In .NET, RSACryptoServiceProvider greatly simplifies common tasks
associated with public/private keys, such as signing of data and
verifying a signature.
Unfortunately, there is only a single format (proprietary XML) available for importing and exporting public/private key data.
The
two widely spread formats for key exchange, PEM and DER are not
supported, which limits the usability of the class when working with
different kinds of public key APIs. 继续阅读
发表在 technologys
.NET RSACryptoServiceProvider PEM + DER Support已关闭评论
Expires,Cache-Control,Last-Modified,ETag
1.Expires(过期时间)HTTP头信息Expires(过期时间) 属性是HTTP控制缓存的基本手段,这个属性告诉缓存器:相关副本在多长时间内是新鲜的。过了这个时间,缓存器就会向源服务器发送请求,检查文档是否被修 改。几乎所有的缓存服务器都支持Expires(过期时间)属性;
大部分Web服务器支持你用几种方式设置Expires属性;一般 的:可以设计一个绝对时间间隔:基于客户最后查看副本的时间(最后访问时间)或者根据服务器上文档最后被修改的时间;
Expires
头信息:对于设置静态图片文件(例如导航栏和图片按钮)可缓存特别有用;因为这些图片修改很少,你可以给它们设置一个特别长的过期...
发表在 technologys
标签为 Cache-Control, Cache-Control, ETag, Expires, Last-Modified
Expires,Cache-Control,Last-Modified,ETag已关闭评论
服务器名字指示SNI(Server Name Indication)
Server Name Indication是用来改善SSL(Secure Socket Layer)和TLS(Transport
Layer Security)的一项特性。它允许客户端在服务器端向其发送证书之前请求服务器的域名。这对于在虚拟主机模式使用TLS是必要的。
TLS背景
加密一个面向流的通讯会话最常用的方法之一就是使用TLS协议。比如,当用户在浏览器的地址栏里面输入https时就是在使用这个协议。
为了确认用户想要连接的站点就是浏览器实际连接到的站点,TLS使用包含站点域名的数字签名证书。客户端软件(比如浏览器)通常信任这个证书,如果这个证书是由其内置信任的认证机构签发的。
在TL...
C#堆栈、队列、递归实现的快速排序
static void Qsort(int[] data, int low, int high)//递归实现 { if (low >= high) return; int i, j, pivot; i = low; j = high; pivot = data[low]; while (i < j) { while (data[j] > pivo...
C#集合--Dictionary
字典(dictionary)是一个集合,其中每个元素都是一个键/值对。字典(Dictionaries)是常用于查找和排序的列表。
.NET Framework通过IDictionary接口和IDictionary<TKey,TValue>接口,以及一些常用的子典了定义了子典协议。每个类在以下方面各有不同:
- 元素是否已经排序
- 元素是否能通过索引或键来获取
- 字典类是generic的还是非generic的
- 当字段较大时,根据键值获取元素速度的快慢
发表在 .net
C#集合--Dictionary已关闭评论
微博feed/push/pull/时间分区拉模式架构探讨
引用文章:
http://www.cnblogs.com/sunli/archive/2010/08/24/twitter_feeds_push_pull.html
[文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-08-24]
sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed架构,也就是推拉模式(timyang上次也分享了新浪微薄的模式)。下面我们就微博的feed推拉(p...
linux mail
linux mail 命令参数:
使用mail发邮件时,必须先将sendmail服务启动。
mail –s “邮件主题” –c ”抄送地址” –b “密送地址” -f 发送人邮件地址 –F 发件人姓名 < 要发送的邮件内容
三种常用格式发信:
mail -s test yangfang@fudan.edu.cn #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束
echo “mail content”|mail -s test yangfang@fudan.edu.cn #第二种方法,我用的最多,可能是喜欢管道的缘故吧
mail -s t... 继续阅读
systemctl
systemd查看开机自启动的程序(相当于chkconfig --list)
ll /etc/systemd/system/multi-user.target.wants/
运行一个服务:
systemctl start network.service
关闭网络服务:
systemctl stop network.service
重启网络服务:
systemctl restart network.service
显示一个服务(无论运行与否)的状态:
systemctl status network.service
在开机时启用一个服务:
systemctl en...
发表在 linux
systemctl已关闭评论
nc
测试80端口
nc -z -w 1 www.google.com 80
nmap -sT www.google.com -p 80
测试UDP 53端口
nc -u -z -w 1 8.8.8.8 53
nmap -sU 8.8.8.8 -p 53
Linux查看内存使用情况的方法
内容来源于网络
1. /proc/meminfo
查看RAM使用情况最简单的方法是通过/proc/meminfo
。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo
列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过/proc/<pid>/statm 和 /proc/<pid>/status 来查看。
1 |
$ cat /proc/meminfo |
2. atop
atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综...
磁盘性能测试方法
测试随机写IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k
-size=10G -numjobs=1 -runtime=1000 -group_reporting
-name=/path/testfile
测试随机读IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k
-size=10G -numjobs=1 -runtime=1000 -group_reporting
-...
发表在 linux
磁盘性能测试方法已关闭评论
.NET 资源回收
CSDN上一位高手的总结
1、Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收。所以,我们也可以这样来区分
托管和非托管资源。所有会由GC自动回收的资源,就是托管的资源,而不能由GC自动回收的资源,就是非托管资源。在我们的类中直接使用非托管资源的情况很
少,所以基本上不用我们写析构函数。
2、大部分的非托管资源会给系统带来很多负面影响,例如数据库连接不被释放就可能导致连接池中的可用数据库连接用尽。文件不关闭会导致其它进程无法读写这个文件等等。
实现模型:
1、由于大多数的非托管资源都要求可以手动释放,所以,我们应该专门为释放非托管资源公开一个方法。实现IDispose接口的Dispose方法是最好的模型,因为C#支持using语句快,可以在离开语句块时自动调用Dispose方法。
2、虽然可以手动释放非托管资源,我们仍然要在析构函数中释放非托管资源,这样才是安全的应用程序。否则如果因为程序员的疏忽忘记了手动释放非托管资源, 那么就会带来灾难性的后果。所以说在析构函数中释放非托管资源,是一种补救的措施,至少对于大多数类来说是如此。
3、由于析构函数的调用将导致GC对对象回收的效率降低,所以如果已经完成了析构函数该干的事情(例如释放非托管资源),就应当使用SuppressFinalize方法告诉GC不需要再执行某个对象的析构函数。
4、析构函数中只能释放非托管资源而不能对任何托管的对象/资源进行操作。因为你无法预测析构函数的运行时机,所以,当析构函数被执行的时候,也许你进行操作的托管资源已经被释放了。这样将导致严重的后果。
5、(这是一个规则)如果一个类拥有一个实现了IDispose接口类型的成员,并创建(注意是创建,而不是接收,必须是由类自己创建)它的实例对象,则
这个类也应该实现IDispose接口,并在Dispose方法中调用所有实现了IDispose接口的成员的Dispose方法。
只有这样的才能保证所有实现了IDispose接口的类的对象的Dispose方法能够被调用到,确保可以手动释放任何需要释放的资源。