Linux是一个多用户的操作系统,每个用户登录系统后,有专用的运行环境;通常每个用户默认的环境变量是一样的,用户可以对修改自己的环境变量达到定制目的。环境变量是和shell息息相关的,用户登录系统就是启动了一个Shell,对Linux而言一般是Bash,可以重新设定或者切换。根据发行版本的情况,Bash有两个基本的系统级配置文件:/etc/profile、/etc/bashrc。这些配置文件包含两组不同的变量:Shell变量和环境变量;Shell变量是局部的、环境变量是全局的。
在程序真正运行在CPU上之前,必须要让OS的kernel理解我们在编辑器或者IDE里根据每种语言的语法规则敲入的源代码,kernel才能做出相关的调度,所以需要先将源代码转化成可执行的二进制文件,这个过程通常由编译器完成。有些编译器直接将源代码编译成机器码,载入内存后CPU可以直接运行。而机器码的格式与跟具体的CPU架构相关连,例如ARM CPU无法理解Intel CPU机器码。因此,同样的源代码需要根据不同的硬件进行特定的编译。高级语言转换到低级语言的桥梁就是编译器。程序员写好源代码,编译器将源码编译成可执行的机码,然后CPU读取机器码,执行程序。
工欲善其事,必先利其器。 大量的代码提交,必然会产生大量的commit log,而每一次commit是阶段性的Ending,应记录着这一阶段所完成的事以及关注点,尽可能详细具体;且提供更多的历史信息,方便快速浏览;可以过滤某些commit(比如文档改动),便于快速查找信息;可以直接从commit生成Change log。所以log的格式就是关键所在,而[Commitizen](https://www.npmjs.com/package/commitizen)可以完美的解决这些问题。
51CTO博客开发
设计模式就是一些常见问题的优秀实践,一套按面向接口严格实现的优秀方法,是经过实践认证的、高效的、解耦的解决方案。那么为什么要使用它,一个设计模式定义了一个问题、定义了一个解决方案、是经过测试的、能促进良好的设计,具有很高的灵活性和可重用性。
算法是为求解一个问题需要遵循的、被清楚地指定的简单的指令的集合。对于一个问题,一旦给定某种算法并且确定是正确的,那么重要的一步是确定该算法将需要多少诸如时间和空间的问题,也就是要分析该算法的时间复杂度和空间复杂度,时间复杂度低和空间复杂度低就代表该算法是好的,但我们要努力找到最优的算法。下面来看看最大子序列和问题的最优求解算法,用php实现了function maxSubS
利用Redis原语命令等功能来解决传统环境中碰到的一些常见问题。在这些例子中,Redis都不是作为首选数据库。显示最新的项目列表下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问会越来越慢。SELECT * FROM foo WHERE ...&
工欲善其事,必先利其器。 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。 xdebug是一个PHP的扩展,它可以允许PHP开发者调试与分析代码,并高效的追踪错误,所以说是调试必备利器。
计算机与数学是息息相关的,计算机模型中无时无刻不体现数学的理念。例如余弦定理用来求两个文案的相似度。今天我这里解决的问题也与数学有关。实际需求是这样的,在项目当中,需要人工在百度地图中划分配送区域,要求划分出来的区域不能是杂乱无章的,即线段与线段之间不能相穿。当时接到这个需求有点懵逼,如何是好,开完会坐下来,慢慢画图发现划出的图形只要是凹凸多边形即可,突然茅塞顿开,问题迎刃而解,因为规则的凹凸多边
在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。
Mysql数值类型INT关键字后面括号内的数字指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。
夜,黑的那么纯粹、黑的那么透彻,仿佛吞噬了一切,这是黎明前的黑暗,还是说---是漫漫长夜的开始。 黑夜中艰难前行,疲惫、饥饿、寒冷,步伐沉重而坚定,唯一守着自己的,是漫无边际的寂寞。醉生梦死的温床,纸醉金迷的诱惑,那是美杜莎的眼睛,一旦沉沦,便再也无法前行。抛却初心,一时的贪图,只会换来万古凄凉。宁与孤寂为伴,也不可忘却初心。孤寂只是暂时的,就像这漫漫长夜,总会到尽头,何不将初心化作一盏灯,
我想我需要光,于是便有了光。 关于nginx日志定时切割、一般有两种方案,第一用logrotate,它是一个linux系统日志的管理工具、它可以切割、压缩等其他软件的日志文件软件;logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,具体可以查询 crontab的配置文件/etc/anacrontab。第二种用shell脚本定时切割。
喝再多的鸡汤也治不了你的惰性。学而不思则罔,思而不学则殆,一起来回顾吧。
常言道:工欲善其事,必先利其器 ,作为一个程序员,一个常用的工具就是编辑器,我选择一个能极大提高自己开发效率的编辑器vim。 强大的vim配置文件,让编程更随意,如果你需要配置vim,只需在Home目录创建一个~/.vimrc文件即可以配置vim咯
C语言实现超大数求和、通过位运算实现加减乘除算法
<?php function reconstructDump() { $args = func_num_args(); &nb
一、字节对齐基本概念 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特
计算经纬度距离
无陈述,直接开讲:babysitter_account表中的联合索引如下(开发小伙伴们自建的联合索引、您发现不妥了吗?):KEY `flag` (`flag`,`user_id`,`account_id`)过去认为:1.SELECT account_id,weibo_id,weibo_type FROM babysitter_account WHERE user_id BETWEEN 100 an
安装:sudo -icd /opt/wget http://www.phpsh.org/phpsh-latest.tgztar zxvf phpsh-latest.tgzcd phpsh/sed -i "s#php -q#/usr/local/webserver/php/bin/php -q#g" phpshchmod +x phpshln -s /opt/phpsh/phpsh /bi
wdetect 是一个php扩展,功能主要是: 从微信数据截图上找到那个 漏斗形的图表 并读取里面包含的转化率数值信息; 在图片的指定区域内扫描、定位数字; 从图片上指定的矩形框里读取数值;
工欲善其事必先利其器。
性能方面由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。说了这么多,结论是,无论你使用哪一个,每秒处理请求的次数都不会成为瓶颈。(比如瓶颈可能会在网
1. Redis是什么这个问题的结果影响了我们怎么用Redis。如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是它保存一些频繁访问的临时数据。Redis是REmote DIctionary Server的缩写,在Redis在官方网站的的副标题是A persistent key-value database
MySQL5.1.6起Mysql增加了事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。MySQL的事件调度器可以精确到每秒钟执行一个任务,对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。先查看是否启动这个功能:SELECT @@event_scheduler;在使用这个功能之前必须确保 even
算法的时间复杂度是衡量一个算法效率的基本方法。在阅读其他算法教程书的时候,对于算法的时间复杂度的讲解不免有些生涩,难以理解。进而无法在实际应用中很好的对算法进行衡量。《大话数据结构》一书在一开始也针对算法的时间复杂度进行了说明。这里的讲解就非常明确,言简意赅,很容易理解。下面通过《大话数据结构》阅读笔记的方式,通过原因该书的一些简单的例子和说明来解释一下算法的时间复杂度和它的计算方法。首先从基本定
一、如何查看服务器的CPU今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式也需要确切的知道linux服务器到底有多少个逻辑cpu,不过现在服务器那是相当的彪悍,直接上worker_processes 8吧。判断依据:1.具有相同core id的cpu是同一个core的超线程。(
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号