- 博客(62)
- 收藏
- 关注
原创 Rest In Peace 陈皓
我的这个小空间可能引用了几十次皓哥的文章,他的文章常看常新,如同IT知识海洋总的灯塔。酷壳网、左耳听风还有您的CDSN博客,几乎是每个程序员必读栏目。皓哥是能把复杂技术深入浅出讲解的优秀IT导师。
2023-05-15 13:42:06 104
原创 电信运营商的新尝试:探索非通信领域的发展
近年来,随着电信运营商竞争的日趋激烈和网络建设的成本不断攀升,许多电信运营商已经开始缩减IT投资。然而,在如此情况下,电信运营商仍然需要寻找新的增长机会。那么,在持续缩减IT投资的情况下,电信运营商可能会在哪些领域做试探性拓展呢?本文将会进行分析和探讨。一、电信运营商缩减IT投资的背景在当前的市场竞争下,电信运营商的IT投资不断缩减,主要原因有以下几点:首先,电信运营商的收入增长放缓,利润率逐渐下降,导致资金压力增大。其次,电信网络建设的成本不断攀升,例如5G网络的建设和升级将会对电信运营商产生更大
2023-02-18 16:25:47 663
原创 IT售前如何提升演讲技巧
IT售前需要具备一定的演讲技巧,以下是几个建议:确定演讲目标:在演讲前,明确自己的演讲目标,确定想要传达的信息、观点或行动要求。这有助于自己更加清晰地表达,也能让听众更容易理解和接受。注意语速和语调:语速过快或过慢都会影响演讲效果。要尽量控制语速,适当地使用停顿,让听众有时间吸收自己所说的内容。同时,语调也要注意,要让自己的声音有起伏和变化,更加生动有趣。使用视觉辅助工具:视觉辅助工具如PPT可以帮助IT售前更好地传达信息和吸引听众的注意力。要注意PPT的设计风格、布局和内容,让它们能够起到有益的辅助
2023-02-18 10:10:29 180
原创 为CXO和IT技术经理量身定制的解决方案展示
因此,为了向不同层级的客户听众展示出合适的解决方案,我们需要根据他们的不同需求和关注点来编写胶片。接下来,根据分析得出的信息,我们可以编写不同的胶片,以满足客户听众的不同需求。因此,如果您想向客户展示您的解决方案的优势,您应该详细说明它与竞争对手的解决方案相比如何更好,以及它如何能够帮助客户实现他们的目标。此外,阐述解决方案的优势还有助于您建立自己的信誉,并证明您是一个专业的供应商。关注细节:IT技术经理对解决方案的技术实现有着极高的关注度,因此在向他们展示解决方案时需要详细描述技术实现的细节。
2023-02-11 01:28:52 412
原创 BSS和OSS的入门视频
这个5分钟的视频,把运营商BSS和OSS系统的用途,背景,周边,业务目的讲得非常清楚,言简意赅。应该是入门最佳的介绍视频了。
2022-05-13 14:24:44 1143
原创 5G2B、物联网平台和边缘计算的通俗理解
下面这个生活中的场景可以通俗解释这几个名词在京东上买一个智能家电,比方说是一个空调空调到货以后,你要装一个叫做“小京鱼”的app, 在这个app上面配置这台空调所要连接的你们家的路由器的用户名密码设置成功后,开机,app上就能对这台空调做控制,控制温度,风量,模式这些这里面其实空调就是连接到京东的物联网平台,app也是连接到这个平台。然后通常,这个平台就可以和空调厂家收费上面这个例子可以看出物联网平台的作用然后其实只要把例子里面的路由器换成5G网关,空调换成生产设备,中间跑的网络变成是5G
2022-04-28 14:47:10 1744
原创 用mac原生的日历和automator,实现定时发微信
mac对于程序员的友好与生俱来,对于定时发微信这样的需求,一行代码都不需要,只要两步即可:第一步,打开automator(俗称扛炮),录制如下:录制中可以通过指定切换输入法,确保不会误操作,美中不足的是无法直接编辑录制完成的脚本,录制有问题只能重新录自己反复试过几次确定没问题(可以断网测试,这样消息不会真正发送)后,就将该脚本存成app。第二步,在日历中设置定时打开该程序,不得不说日...
2020-02-24 16:00:57 3570
原创 用python实现定时发送邮件的功能
像python这种库丰富又不需要接触到底层的语言,用来做定时邮件的功能再适合不过。代码如下,目的是为了每天上班下班(9点Check in, 19点Check out)发送一封邮件,且邮件标题带日期。邮件目前是整点发送,且没有排除周末,若想改得更随机一点,可以增加sleep的间隔,或者用分钟来判断。#!/usr/bin/python# -*- coding: UTF-8 -*-impor...
2020-02-17 16:04:13 1691
原创 docker容器通过宿主机ip中转实现容器之间相互调用
一般每个容器,都会映射一个端口到宿主机中,方便在宿主机上访问,例如ngnix,mysql,redis等等。但是我们有一种常见的场景,就是a容器,需要通过宿主机的端口映射,调用b容器的服务,这里如果在a容器内部配置localhost/127.0.0.1/0.0.0.0:port都是不会起作用的,因为容器和容器之间的ip是隔离的,无法互相通过本地端口访问。一个办法就是在docker run中把...
2018-05-28 17:19:19 13789 1
原创 移动支付(mobile money)系列 —— TPS和用户数的对应关系推导
tps和对应的用户数的转换关系,其实是要根据不同业务的类型,用户的行为特征来估算,下面采用一个比较简单的方式建模,如果有更合理的方式,可以进一步优化定义:日活跃用户数(每天登陆系统做交易的用户): x 系统峰值tps:y推算:x日活跃用户,平均每人每天一笔交易,这样x笔交易分布在这一天,平均tps avg tps = x*1/(3600*24)。 假设一天80%的...
2018-04-20 18:08:52 957
原创 移动支付(mobile money)系列 —— Apple Pay的原理
Apple Pay 背景起因 传统基于磁条卡片(包括信用卡、银行卡)的支付流程是不安全且繁琐的,磁条接口、暴露在外的卡片号码、支付密码/安全码等都存在安全隐患,磁卡支付流程过长,用户体验差Apple Pay的目标 “Your wallet. Without the wallet.”替代钱包的移动支付服务,兼具支付安全隐私和极致用户支付体验Apple Pay的发展历程 2009年开始布
2018-03-08 15:12:32 10647
原创 移动支付(mobile money)系列 —— Service Provider的异同
背景根据世界银行的数据,目前很多国家的银行覆盖率很低,称为unbanked region,然而这些国家的手机覆盖率却不低,因此给移动支付提供了广阔的市场机会。移动支付(mobile money)业务,运营商也能做,银行也能做,支付宝也能做。三者的出发点不一样。但有一点是共通的,就是最大限度的转换,留存现有客户。 不同mm运营者的区别对于运营商来说,mm系统往往都是通过充值中心演...
2018-03-07 10:49:40 2221
原创 分布式与云化的主要区别
分布式与云化,这两个概念经常看到,其实两者有差别。现在传统行业,都有对it系统做x86化,云化的趋势。而分布式,可以说是其中的一个阶段,或者一种妥协。下面这个表格大致描述: 模式 分布式 云化 请求消息分配方式 按照用户的信息(地区,号段等)分配 按照取模,求哈希值等方式 节点是否对等 否(一条消息,只能由某一个节点处理) 是 应用与数据是否分离 否(数据
2018-01-08 18:22:39 11748
原创 AIX 主机遇到没有足够空间生成core文件的办法
ibm的帮助文档足以解决这样的问题点这里查看值得一提的是以下命令: lsattr -Elsys0 | grep full 的输出结果为: fullcore true Enable full CORE dump True 其中,第二列才是这个
2017-08-17 14:12:46 720
原创 通过ftp命令测试两台主机之间的网络情况
背景分布式系统一般都会采取应用和数据分离的方式,以便两边各自做扩展,这个时候,点对点的网络情况显得特别重要。 最近就遇到两台主机通过不同的交换机连接,导致原先的千兆网没有发挥出该有的带宽,同时ping的时延抖动也比较厉害。解决方式在ftp下执行以下的语句,就可以观察点对点的网络传输速度,再结合nmon,就可以推断目前网络的极限带宽:#bs表示数据块,count表示个数put "|dd if=/d
2017-07-14 14:37:23 2526
原创 您的 mac 无法与 apple watch 通信。
在设置apple watch自动解锁mac都时候,这个问题足足困扰我两天,查了各种方式各种方法都不可以,无论如何都会在正在打开那里转圈圈。如下图:找了半天,打了半天官方支持的电话,死活都不行,最后终于在谷爹的帮助下,用英文找到了苹果社区的官方推荐答案。https://discussions.apple.com/message/30680402#30680402A
2017-06-06 17:32:57 24954 12
原创 grep只打印出关键字(grep only print keyword)
有时候需要只grep出代码中引用到的所有的表(关键字为后缀_t),不包含其他的内容。例如: grep _t * PricingStrategy.cpp: “or exists (select 1 from rent_event_type_map_t e where a.event_type_id = e.event_type_id))”, Pricin
2017-02-14 17:07:50 2885
原创 三分钟看懂一致性哈希算法
受一篇“五分钟看懂”的启发,来个哗众取宠的标题一致性哈希算法,作为分布式计算的数据分配参考,比传统的取模,划段都好很多。在电信计费中,可以作为多台消息接口机和在线计费主机的分配算法,根据session_id来分配,这样当计费主机动态伸缩的时候,因为session_id缓存缺失而需要放通的会话,会明显减少。传统的取模方式例如10条数据,3个节点,如果按照取模的方式,那就是
2016-12-30 09:25:21 48933 7
转载 通过automator实现在finder下自动打开vim
mac可以通过automator自制app, 实现在finder下双击.h, .cpp, .c等等你想用vim编辑的文件,直接打开item的vi窗口编辑该文件applescript脚本挺好用啊。本篇转载,原贴地址: http://thepugautomatic.com/2015/02/open-in-iterm-vim-from-finder/When I double
2016-04-18 17:52:43 815
原创 在iterm中用expect脚本实现ssh, telnet对aix, linux的自动登录
在mac上转战iterm以后,才知道自动登录的内部原理,原来可以用expect脚本做和服务器的自动交互,当然自动登录只是其中的一小部分功能啦ssh自动登录:#!/usr/bin/expectset timeout 30spawn ssh [lindex $argv 0]@[lindex $argv 1]expect { "(yes/no)?"
2016-04-14 11:14:27 2207
原创 aix中的makefie不支持ifeq
写makefile的时候,有一些场景需要根据某些条件来设置变量的值,但是在aix如果使用ifeq就扑街了,直接报make: Dependency line needs colon or double colon operator.原因好像是aix的make不是gnumake于是需要采用替代的写法,可以使用awk来达到条件判断的目的。ifeq (1,${OLC_WITH_
2016-01-15 15:15:13 1139
原创 exit() 只析构全局变量不析构局部变量
先看以下这段代码:#include #include #include class CTest{public: CTest(int iIdentity){m_iTest=iIdentity; printf("CTest() %d !\n", m_iTest);} ~CTest(){printf("~CTest() %d !\n", m_iTest);}priva
2015-12-03 15:28:21 1308
转载 Little-endian UTF-16 Unicode text, with very long lines, with CRLF line terminators
Sometimes you can have the problem that you cannot 'grep' files in Linux, if those files are generated on a Windows station.If you check the file type, by typing "file [filename]", you can see the f
2015-11-18 09:12:24 5865
原创 XCode中使用github做多人协同开发
本文集合了多个地方搜索的结果,姑且厚着脸皮说是原创把1. 注册github账号,并通过邮箱验证2. 为你的mac添加认证,使得它能够连接到github。参考http://help.github.com/mac-set-up-git/ 一步一步操作即可3. 先在github里面添加一个Repository,通过http://github.com/首页的new Rep
2015-09-06 17:31:23 2521
原创 C++虚函数表的验证
要了解C++对象的虚函数的内存布局,推荐的是如下的三篇由浅入深的文章:C++虚函数表解析http://blog.csdn.net/haoel/article/details/1948051C++对象的内存布局(上)http://blog.csdn.net/haoel/article/details/3081328C++对象的内存布局(下)http://b
2015-08-12 14:33:19 545
原创 AIX平台下面long的长度与编译选项-q64的关系
日常我们的认知是在64位的机器上,int是4个字节,long是8个字节。但是在AIX,这个问题会更复杂一些:AIX可能是为了向下兼容的目的,通过编译选项 -q64 来规定long长度测试代码:void TestInt(){ int nTemp=0; long lTemp=0; long long llTemp=0; printf("s
2015-06-25 10:39:04 1534
原创 TT:Number overflow for TO_CHAR function -- file "numberAPI.c"
这个错误在网上搜到网易博客的一篇文章,不知所云,再仔细查找,他其实是翻译oracle论坛的一个DBA和一个用户的交流,但其实这个交流focus的是变量绑定的问题。如果同样的语句执行,一直都是成功,某种特殊场景报这个错,基本上可以排除是绑定的问题。我遇到这个报错是在TT 7.0版本,这个报错比较困惑的是TO_CHAR这个打印,因为SQL里面根本没有TO_CHAR,不过要解决这
2015-06-01 15:32:00 629
原创 Swift 代码分享——Calculator without MVC
最近在跟着斯坦福的网易公开课教程自学Swift, 跟着做计算器以学习语法,第三讲中即将将计算器改成MVC版本,所以就先贴出未经过MVC分离的代码,权当学习记录.已调试通过,跟课堂上的一样,enter压栈,操作符运算注释后续补上:)//// ViewController.swift// CalculatorGerry//// Created by GerryKe o
2015-06-01 14:55:00 506
原创 关于动态链接中的全局变量
《程序员自我修养》观后验证第二弹。第一个例子:有三个程序:main.cpp#include int global_symbol = 300;extern void testso1();extern void testso2();int main(){ global_symbol++; printf("the value of global s
2015-03-05 15:38:28 943
原创 gcc利用寄存器存储参数提高性能
"在x86-64时代,寄存器数量多了,GCC就可以利用多达6个寄存器来存储参数,多于6个的参数,依然还是通过入栈实现。了解这些对我们写代码很有帮助,起码有两点启示: 尽量使用6个以下的参数列表,不要让GCC为难啊。 传递大对象,尽量使用指针或者引用,鉴于寄存器只有64位,而且只能存储整形数值,寄存器存不下大对象 "参考代码:long setbbb(int a
2015-03-04 16:56:48 1852
原创 对象空指针中的成员的值是0x8是怎么回事?
一段非常好玩的代码(其实是经常犯的错):struct TTest{ long long a; char b[10];};void test_nullpoint(){ TTest *ptTest = NULL; if(ptTest->b) { printf("%p\n", ptTest->b); printf("%p\n", &ptTest->a); }}i
2015-02-15 15:40:41 1870
原创 linux 与 aix/hp的shell对于子shell变量赋值的作用域不同
CompileDir(){ echo $* | tr -s ' ' '\n' | while read cmd do ProdDir1="abc"; done for cmd in $(echo $* |tr -s "\-" '\#' |tr -s " " '\n' ) do
2015-01-23 17:15:10 985
原创 自动监控进程并启动的shell脚本
用法: autostart "test 1"实现过程:每个一秒ps一次进程是否存在,不存在则nohup启动之。autostart(){ if [ $# -eq 0 ] then echo "usage: autostart \"test 1\"" echo
2015-01-13 20:04:24 544
原创 ++i 真的比 i++ 性能高吗?
不少人都说++i比i++性能高,因为i++会再分配一个临时变量存储i的旧值。因此我一直以为++i是不需要寄存器的原子操作,直到看到一篇大神的文章:多线程程序中操作的原子性http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/上面贴的汇编代码
2015-01-07 11:22:14 897
原创 delete与delete[]的区别
如果是基本类型数组调用delete就可以删除之,而一个自定义的结构数组,却最好使用delete[],为什么?原因如下:y = new xxx[10]delete y;10个元素所占的内存都会被释放,但是xxx如果有析构函数的话,只有第一个元素的析构函数被调用,其他9个元素的析构函数没有被调用如果xxx的析构函数里面有内存释放动作或者数据库链接关闭之类的, 就
2015-01-06 17:09:10 410
转载 HPUX 核心参数详解
原帖地址: http://blog.sina.com.cn/s/blog_5dd380b90100csak.html1、Accounting Subsystem(记帐子系统) acctsuspend 暂停记帐 Minimum: -100 Maximum: 100 Default: 2
2015-01-06 16:56:01 1192
原创 HPUX队列明明是空的,msgsnd却报Resource temporarily unavailable
这个问题2011年IDEP入网测试测性能的时候遇到过,当时觉得自己已经记住了,但是今天遇到还是忘记了。经过提醒才想起来,HPUX还有这个限制。 NAME msgtql - maximum number of System V IPC messages in the system at any time VALUES Default
2015-01-06 16:53:42 2844
原创 电信中4G "15G断网"和3G“20G断网”的区别
现在3G和4G的套餐这么多,很多其实对于流量是有设置上限的,消费也会有封顶。封顶的感念比较简单,3G和4G这两种断网方式听上去很容易混,其实他们是有区别的:a. 3G 20g断网: 针对特定的主销售品定义的累积量而言,不分套内流量和套外流量,以销售品ID为单位累计到20G阀值,到达则停止数据业务,无法复开,次月才能复开。b. 4G 15g断网:不区分销售品,但仅针对套外的
2014-12-05 10:51:37 2247
原创 fcntl 遇到 No locks available 错误的处理方式
HPUX环境nflocks - maximum number of file locks修改该参数就可以解决文件锁不够用的问题。
2014-11-24 11:26:42 1207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人