求助大家Excel里如何直接统计字数,急B有熟悉这个的吗?不好意思 英文,麻烦了4f

麻烦大家看一下Excel里如何直接统计字数,急熟悉的看下吧,非常感谢你们了熄_百度知道
麻烦大家看一下Excel里如何直接统计字数,急熟悉的看下吧,非常感谢你们了熄
我有更好的答案
比如你要统计字数的区域在A1:B30,在其它任意一个单元格输入:=SUM(LEN(A1:B30))按CTRL+SHIFT+回车
采纳率:39%
使用len函数
亲,你的问题台笼统了,可以具体描述或上传图片吗
为您推荐:
其他类似问题
excel的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请问一下大家Excel里如何直接统计字数,急 会的人说下嘛,我先谢谢大伙了虚6_百度知道
请问一下大家Excel里如何直接统计字数,急 会的人说下嘛,我先谢谢大伙了虚6
我有更好的答案
一对夜猫在说着悄悄的话当初只想吓唬一下父母的心理酿成了最终结束了生命的悲惨结局白净如想象中的外星球,微风旋起一阵沙尘厌烦了困倦的骚袭啊·就算世界毁灭我也忘不了我们彼此的每分每秒
采纳率:71%
编辑--替换查找内容:?
(英文半角)替换为:
空着全部替换。所替换的数目就是字数。然后撤销操作。
——(转)易
为您推荐:
其他类似问题
excel的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
【热门会议】2014中国互联网安全大会PPT合集(ISC 2014)
日至25日,亚太信息安全领域最权威的年度峰会&&2014中国互联网安全大会(ISC 2014)在北京国家会议中心召开。进一步提升了会议规格、规模和专业性。除保留移动安全、Web 安全、企业安全、云与数据、软件安全、APT等热门安全议题外,大会还首次将视角触及到国家网络空间战略等高端话题,以及工控安全、车联网安全、信息安全立法等新兴热点,共设置12个论坛,以及攻防挑战赛、安全训练营、车联网系统破解赛等新项目。
会议全部PPT在线预览入口:
【热门会议】2014甲骨文全球大会(OOW2014)
2014甲骨文全球大会于9月28日至10月2日在美国旧金山Moscone会议中心举行。在此次大会上甲骨文展示了应用、中间件、数据库、服务器和存储系统,包括行业、管理、云和基础设施解决方案,所有产品和解决方案都是为实现创新而设计的,接下来让我们来一起分享会议精彩PPT。
在线预览全部会议PPT:
【】【今日头条】金融APP安全分析-汪德嘉
金融APP是指运行于Android、IOS等智能手机、平板电脑上的涉及货币流通、信用业务等经济行为的应用软件,主要包括手机银行、第三方支付软件、基金、证券、保险等应用。随着移动金融的发展,我们足不出户就可以完成支付、转账、理财等交易行为,这种现象在为人们的生活带来便捷的同时,也引起了黑客的关注。
文档下载地址:
【】【今日头条】数据集市的架构和融合-你我贷
P2P在美国LendingClub是一个纯互联网+大数据的工作,但在中国的国情下,征信数据的局限性以及普通人对维护自身信用的薄弱意识,使得纯线上的P2P很难开展好。这复杂的业务背景对技术人员而言挑战更大,机遇也更大。借这次机会,介绍一下你我贷是如何做好O2O的大数据规划和实施,并在实战中如何服务好业
【今日头条】【】 王宇阳:六个案例里的SEO启发
SEO的回报是巨大的,但并不是所有企业都适合SEO,更加不提倡大多数的企业去组建自己的SEO团队。原因在于,搜索引擎资源的有限性决定了这是一个现实并且相当残酷的行业。以关键词为例,百度为一个关键词提供的有效展示可能就只有四、五个位置,但与该关键词相匹配的网站却可能有十万个。
文档下载地址:
应该知道的Linux技巧大盘点
在 Unix/Linux 下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自动化。如果你看过《你可能不知道的 Shell》以及《28 个 Unix/Linux 的命令行神器》你就会知道 Linux 有多强大,这个强大完全来自于命令行,于是,就算你不知道怎么去做一个环保主义的程序员,至少他们可以让你少熬点夜,从而有利于你的身体健康和性生活。下面是一个有点长的列表,正如作者所说,你并不需要知道所有的这些东西,但是如果你还在很沉重地在使用 Linux 的话,这些东西都值得你看一看。&(注:如果你想知道下面涉及到的命令的更多的用法,你一定要 man 一点。对于一些命令,你可能需要先 yum 或 apt-get 来安装一下,如果有什么问题,别忘了 Google哟~)
学习 Bash 。你可以man bash来看看bash的东西,并不复杂也并不长。你用别的shell也行,但是bash是很强大的并且也是系统默认的。(学习zsh或tsch只会让你在很多情况下受到限制)&
学习 vim 。在Linux下,基本没有什么可与之竞争的编译辑器(就算你是一个Emacs或Eclipse的重度用户)。你可以看看《简明vim攻略》和 《Vim的冒险游戏》以及《给程序员的Vim速查卡》还有《把Vim变成一个编程的IDE》等等。&
了解 ssh。明白不需要口令的用户认证(通过ssh-agent, ssh-add),学会用ssh翻墙,用scp而不是ftp传文件,等等。你知道吗?scp 远端的时候,你可以按tab键来查看远端的目录和文件(当然,需要无口令的用户认证),这都是bash的功劳。&&
熟悉bash的作业管理,如: &, Ctrl-Z, Ctrl-C, jobs, fg, bg, kill, 等等。当然,你也要知道Ctrl+\(SIGQUIT)和Ctrl+C (SIGINT)的区别。&
简单的文件管理 : ls 和 ls -l (你最好知道 &ls -l& 的每一列的意思), less, head, tail 和 tail -f, ln 和 ln -s (你知道明白hard link和soft link的不同和优缺点), chown, chmod, du (如果你想看看磁盘的大小 du -sk *), df, mount。当然,原作者忘了find命令。&
基础的网络管理: ip 或 ifconfig, dig。当然,原作者还忘了如netstat, ping, traceroute, 等&
理解正则表达式,还有grep/egrep的各种选项。比如: -o, -A, 和 -B 这些选项是很值得了解的。&
学习使用 apt-get 和 yum 来查找和安装软件(前者的经典分发包是Ubuntu,后者的经典分发包是Redhat),我还建议你试着从源码编译安装软件。&
日常在 bash 里,使用 Ctrl-R 而不是上下光标键来查找历史命令。&在 bash里,使用 Ctrl-W 来删除最后一个单词,使用 Ctrl-U 来删除一行。请man bash后查找Readline Key Bindings一节来看看bash的默认热键,比如:Alt-. 把上一次命令的最后一个参数打出来,而Alt-* 则列出你可以输入的命令。&回到上一次的工作目录: cd & (回到home是 cd ~)&使用 xargs。这是一个很强大的命令。你可以使用-L来限定有多少个命令,也可以用-P来指定并行的进程数。如果你不知道你的命令会变成什么样,你可以使用xargs echo来看看会是什么样。当然, -I{} 也很好用。示例:
find . -name \*.py | xargs grep some_function
cat hosts | xargs -I{} ssh root@{} hostname
&pstree -p 可以帮你显示进程树。(读过我的那篇《一个fork的面试题》的人应该都不陌生)使用 pgrep 和 pkill 来找到或是kill 某个名字的进程。 (-f 选项很有用).&了解可以发给进程的信号。例如:要挂起一个进程,使用 kill -STOP [pid]. 使用 man 7 signal 来查看各种信号,使用kill -l 来查看数字和信号的对应表&使用 nohup 或 disown 如果你要让某个进程运行在后台。&使用netstat -lntp来看看有侦听在网络某端口的进程。当然,也可以使用 lsof。&在bash的脚本中,你可以使用 set -x 来debug输出。使用 set -e 来当有错误发生的时候abort执行。考虑使用 set -o pipefail 来限制错误。还可以使用trap来截获信号(如截获ctrl+c)。&在bash 脚本中,subshells (写在圆括号里的) 是一个很方便的方式来组合一些命令。一个常用的例子是临时地到另一个目录中,例如:
# do something in current dir
(cd /some/other/dir; other-command)
# continue in original dir
&在 bash 中,注意那里有很多的变量展开。如:检查一个变量是否存在: error message。如果一个bash的脚本需要一个参数,也许就是这样一个表达式 input_file=usage: $0 input_file。一个计算表达式: i=$(( (i + 1) % 5 ))。一个序列: {1..10}。 截断一个字符串: ${var%suffix} 和 ${var#prefix}。 示例: if var=foo.pdf, then echo ${var%.pdf}.txt prints &foo.txt&.&通过 &(some command) 可以把某命令当成一个文件。示例:比较一个本地文件和远程文件 /etc/hosts: diff /etc/hosts &(ssh somehost cat /etc/hosts)&了解什么叫 &here documents& ,就是诸如 cat &&EOF 这样的东西。&在 bash中,使用重定向到标准输出和标准错误。如: some-command &logfile 2&&1。另外,要确认某命令没有把某个打开了的文件句柄重定向给标准输入,最佳实践是加上 &&/dev/null&,把/dev/null重定向到标准输入。&使用 man ascii 来查看 ASCII 表。&在远端的 ssh 会话里,使用 screen 或 dtach 来保存你的会话。(参看《28个Unix/Linux的命令行神器》)&要来debug Web,试试curl 和 curl -I 或是 wget 。我觉得debug Web的利器是firebug,curl和wget是用来抓网页的,呵呵。&把 HTML 转成文本: lynx -dump -stdin&如果你要处理XML,使用 xmlstarlet&对于 Amazon S3, s3cmd 是一个很方便的命令(还有点不成熟)&在 ssh中,知道怎么来使用ssh隧道。通过 -L or -D (还有-R) ,翻墙神器。&你还可以对你的ssh 做点优化。比如,.ssh/config 包含着一些配置:避免链接被丢弃,链接新的host时不需要确认,转发认证,以前使用压缩(如果你要使用scp传文件):
TCPKeepAlive=yes
ServerAliveInterval=15
ServerAliveCountMax=6
StrictHostKeyChecking=no
Compression=yes
ForwardAgent=yes
&如果你有输了个命令行,但是你改变注意了,但你又不想删除它,因为你要在历史命令中找到它,但你也不想执行它。那么,你可以按下 Alt-# ,于是这个命令关就被加了一个#字符,于是就被注释掉了。&
数据处理 了解 sort 和 uniq 命令 (包括 uniq 的 -u 和 -d 选项).&了解用 cut, paste, 和 join 命令来操作文本文件。很多人忘了在cut前使用join。&如果你知道怎么用sort/uniq来做集合交集、并集、差集能很大地促进你的工作效率。假设有两个文本文件a和b已解被 uniq了,那么,用sort/uniq会是最快的方式,无论这两个文件有多大(sort不会被内存所限,你甚至可以使用-T选项,如果你的/tmp目录很小)
cat a b | sort | uniq & c # c is a union b 并集
cat a b | sort | uniq -d & c # c is a intersect b 交集
cat a b b | sort | uniq -u & c # c is set difference a - b 差集
&了解和字符集相关的命令行工具,包括排序和性能。很多的Linux安装程序都会设置LANG 或是其它和字符集相关的环境变量。这些东西可能会让一些命令(如:sort)的执行性能慢N多倍(注:就算是你用UTF-8编码文本文件,你也可以很安全地使用ASCII来对其排序)。如果你想Disable那个i18n 并使用传统的基于byte的排序方法,那就设置export LC_ALL=C (实际上,你可以把其放在 .bashrc)。如果这设置这个变量,你的sort命令很有可能会是错的。&了解 awk 和 sed,并用他们来做一些简单的数据修改操作。例如:求第三列的数字之和: awk &{ x += $3 } END { print x }&。这可能会比Python快3倍,并比Python的代码少三倍。&使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。&了解sort命令的选项。了解key是什么(-t和-k)。具体说来,你可以使用-k1,1来对第一列排序,-k1来对全行排序。&Stable sort (sort -s) 会很有用。例如:如果你要想对两例排序,先是以第二列,然后再以第一列,那么你可以这样: sort -k1,1 | sort -s -k2,2&我们知道,在bash命令行下,Tab键是用来做目录文件自动完成的事的。但是如果你想输入一个Tab字符(比如:你想在sort -t选项后输入&tab&字符),你可以先按Ctrl-V,然后再按Tab键,就可以输入&tab&字符了。当然,你也可以使用$&\t&。&如果你想查看二进制文件,你可以使用hd命令(在CentOS下是hexdump命令),如果你想编译二进制文件,你可以使用bvi命令(http://bvi.sourceforge.net/ 墙)&另外,对于二进制文件,你可以使用strings(配合grep等)来查看二进制中的文本。&对于文本文件转码,你可以试一下 iconv。或是试试更强的 uconv 命令(这个命令支持更高级的Unicode编码)&如果你要分隔一个大文件,你可以使用split命令(split by size)和csplit命令(split by a pattern)。&
系统调试&如果你想知道磁盘、CPU、或网络状态,你可以使用 iostat, netstat, top (或更好的 htop), 还有 dstat 命令。你可以很快地知道你的系统发生了什么事。关于这方面的命令,还有iftop, iotop等(参看《28个Unix/Linux的命令行神器》)&要了解内存的状态,你可以使用free和vmstat命令。具体来说,你需要注意 &cached& 的值,这个值是Linux内核占用的内存。还有free的值。&Java 系统监控有一个小的技巧是,你可以使用kill -3 &pid& 发一个SIGQUIT的信号给JVM,可以把堆栈信息(包括垃圾回收的信息)dump到stderr/logs。&使用 mtr 会比使用 traceroute 要更容易定位一个网络问题。&如果你要找到哪个socket或进程在使用网络带宽,你可以使用 iftop 或 nethogs。&Apache的一个叫 ab 的工具是一个很有用的,用quick-and-dirty的方式来测试网站服务器的性能负载的工作。如果你需要更为复杂的测试,你可以试试 siege。&如果你要抓网络包的话,试试 wireshark 或 tshark。&了解 strace 和 ltrace。这两个命令可以让你查看进程的系统调用,这有助于你分析进程的hang在哪了,怎么crash和failed的。你还可以用其来做性能profile,使用 -c 选项,你可以使用-p选项来attach上任意一个进程。&了解用ldd命令来检查相关的动态链接库。注意:ldd的安全问题&使用gdb来调试一个正在运行的进程或分析core dump文件。参看我写的《GDB中应该知道的几个调试方法》&学会到 /proc 目录中查看信息。这是一个Linux内核运行时记录的整个操作系统的运行统计和信息,比如: /proc/cpuinfo, /proc/xxx/cwd, /proc/xxx/exe, /proc/xxx/fd/, /proc/xxx/smaps.&如果你调试某个东西为什么出错时,sar命令会有用。它可以让你看看 CPU, 内存, 网络, 等的统计信息。&使用 dmesg 来查看一些硬件或驱动程序的信息或问题。&
&IT168文库官方网站:http://wenku.it168.com
【面试经】面试如何自我介绍 | 干货
今天为大家准备的是面试自我介绍的一些经验总结,希望大家能在面试中秀出自我,彻底征服考官。在求职面试时,大多数面试考官会要求应聘者做一个自我介绍,一方面以此了解应聘者的大概情况,另一方面考察应聘者的口才、应变和心理承受、逻辑思维等能力。&千万不要小视这个自我介绍,他既是打动面试考官的敲门砖,也是推销自己的极好机会,因此一定要好好把握。应聘者具体应注意以下几点:&1. 接到面试通知后,最好在家打个自我介绍的草稿,然后试着讲述几次,感觉一下。&2. 自我介绍时首先应礼貌地做一个极简短的开场白,并向所有的面试人员(如果有多个面试考官的话)示意,如果面试考官正在注意别的东西,可以稍微等一下,等他注意转过来后才开始。&3. 注意掌握时间,如果面试考官规定了时间,一定要注意时间的掌握,既不能超时太长,也不能过于简短。&4. 介绍的内容不宜太多的停留在诸如姓名、工作经历、时间等东西上,因为这些在你的简历表上已经有了,你应该更多的谈一些跟你所应聘职位有关的工作经历和所取得的成绩,以证明你确实有能力胜任你所应聘的工作职位。&5. 在作自我简介时,眼睛千万不要东张西望,四处游离,显得漫不经心的样子,这会给人做事随便、注意力不集中的感觉。眼睛最好要多注视面试考官,但也不能长久注视目不转睛。再就是尽量少加一些手的辅助动作,因为这毕竟不是在作讲演,保持一种得体的姿态也是很重要的。&6. 在自我介绍完后不要忘了道声谢谢,有时往往会因此影响考官对你的印象。当面试考官随便地问你:&谈谈你自己的情况如何?&这是面试中的第一个问题。此刻,你应把在此之前所有紧张不安的情绪稳定下来。因为这个问题,应试者已经做了充分的准备,并且有足够的信心和勇气相信自己能回答好这个问题。&
面试自我介绍的内容
首先请报出自己的姓名和身份。可能应试者与面试考官打招呼时,已经将此告诉了对方,而且考官们完全可以从你的报名表、简历等材料中了解这些情况,但仍请你主动提及。这是礼貌的需要,还可以加深考官对你的印象。&其次,你可以简单地介绍一下你的学历、工作经历等基本个人情况。请提供给考官关于你个人情况的基本的、完整的信息,如:学历、工作经历、家庭概况、兴趣爱好、理想与报负等。这部分的陈述务必简明扼要、抓住要点。请保证叙述的线索清晰,一个结构混乱、内容过长的开场自,会给考官们留下杂乱无章、个性不清晰的印象,并且让考官倦怠,削弱对继续进行的面试的兴趣和注意力。应试者还要注意这部份内容应与个人简历、报名材料上的有关内容相一致,不要有出入。在介绍这些内容时,应避免书面语言的严整与拘束,而使用灵活的口头语进行组织。这些个人基本情况的介绍没有对或错的问题&&都属于中性问题,但如果因此而大意就不妥了。接下来由这部分个人基本情况,自然地过渡到一两个自己本科或工作期间圆满完成的事件,以这一两个例子来形象地、明晰他说明自己的经验与能力,例如:在学校担任学生干部时成功组织的活动;或者如何投入到社会实践中,利用自己的专长为社会公众服务;或者自己在专业上取得的重要成绩以及出色的学术成就。&接下来要着重结合你的职业理想说明你应聘这一职位的原因,这一点相当重要。你可以谈你对应考单位或职务的认识了解,说明你选择这个单位或职务的强烈愿望。原先有工作单位的应试者应解释清楚自己放弃原来的工作而做出新的职业选择的原因。你还可以谈如果你被录取,那么你将怎样尽职尽责地工作,并不断根据需要完善和发展自己。当然这些都应密切联系你的价值观与职业观。不过,如果你将自己描述为不食人间烟火的、不计较个人利益的&圣人&,那么考官们对你的求职动机的信任,就要大打折扣了。&
面试自我介绍的时间
一般情况下,自我介绍应该是三~五分钟较适宜。时间分配上,可根据情况灵活掌握。一般地,第一部分可以用约二分钟,第二部分可以用约一分钟,第三部分用1~二分钟。&好的时间分配能突出重点,让人印象深刻,而这就取决于你面试准备工作做得好坏了。如果你事先分析了自我介绍的主要内容,并分配了所需时间,抓住这三、五分钟,你就能中肯、得体地表达出你自己。有些应试者不了解自我介绍的重要性,只是简短地介绍一下自己的姓名、身份,其后补充一些有关自己的学历、工作经历等情况,大约半分钟左右就结束了自我介绍,然后望着考官,等待下面的提问。但也有的应试者想把面试的全部内容都压缩在这几分钟里。要知道面试考官会在下面的面试中间向你提有关问题的,你应该给自己也给他人留下这个机会。&
面试自我介绍的重要性
1. 通过自我介绍,主动地向面试考官推荐自己,这是面试组成结构的重要内容,同时也是面试测评的重要指标。&2. 自我介绍是应以面试的测评为导向。自我介绍也是一种说服的手段与艺术,聪明的应试者会以公务员考录的要求与测试重点而组织自我介绍的内容,你不仅仅要告诉考官们你是多么优秀的人,你更要告诉考官,你如何地适合这个工作岗位。而与面试无关的内容,既使是你引以为荣的优点和长处,你也要忍痛舍弃,以突出重点。&3. 自我介绍要有充分的信心。要想让考官们欣赏你,你必须明确地告诉考官们你具有应考职位必需的能力与素质,而只有你对此有信心并表现出这种信心后,你才证明了自己。4. 应试者在谈自己的优点的一个明智的办法是:在谈到自己的优点时,保持低调。也就是轻描淡写、语气平静,只谈事实,别用自己的主观评论。同时也要注意适可而止,重要的、关键的,要谈,与面试无关的特长最好别谈。另外,谈过自己的优点后,也要谈自己的缺点,但一定要强调自己克服这些缺点的愿望和努力。&5. 特别指出的是,不要夸大自己。一方面从应试者的综合素养表现,考官能够大体估计应试者的能力;另一方面,如果考官进一步追问有关问题,将令&有水份&的应试者下不了台。&6. 面试中应试者的自我介绍,可以让考官观察到简历等书面材料以外的内容,如你对自己的描述与概括能力,你对自己的综合评价以及你的精神风貌等。自信、为人等是其中的重要的潜台词,应试者务必注意。&
面试自我介绍的注意事项
1. 应试者应充分利用各种个人资源。除了前面提到的面带微笑、目光交流、坐姿端正等表情、身体语言外,请以沉稳平静的声音、以中等语速、以清晰的吐字发音、以开朗响亮的声调给考官以愉悦的听觉享受,声音小而模糊、吞吞吐吐的人,一定是胆怯、紧张、不自信和缺乏活力与感染力的。2. 情绪也是一个需要控制的重要方面。情绪,作为个人的重要素养,如果在自我介绍中起伏波动,就会产生负面影响。例如在介绍自己的基本情况时面无表情、语调生硬;在谈及自己的优点时眉飞色舞。兴奋不已;而在谈论自己的缺点时又无精打采、萎靡不振。3. 有的应试者谈及自己的兴趣爱好时,说自己喜欢唱歌,便自作主张,一展歌喉,在面试考场上为考官们唱它一曲,直到被考官客气地打断后,才反应过来行为有些出格。4. 有的应试者描述自己喜欢这样、爱好那样,如:文学、艺术、旅游、摄影等等,由此考官进一步询问其拍摄过什么作品,这位考生的回答却是她喜欢别人给她拍照,还说家里的几本影集都已经满了。&5. 有的应试者在介绍家庭关系时,似乎&漫不经心&地告诉考官们,自己的某位远房亲戚是应考单位的上司单位的某领导。&6. 有的应试者表示将来踏上工作岗位,将&一定要&&&绝对&&诸如此类的保证,似乎在做就职演讲。这些例子很多画蛇添足似的自我介绍不但不会为你的形象增添色彩,会&越抹越黑&!&
面试自我介绍结束
对于你的自我介绍,考官既可能就其中某一点、向你提出问题广也可能过渡一下,继续下面已经安排好的问题。这时考官会说:&我们十分欣赏你的能力&&&或&你的自我介绍很精彩&&&等,那么一声&谢谢&将是你最得体的应答。&
&&IT168文库官站:http://wenku.it168.com
【i生活】程序算法与人生选择
每年一到要找工作的时候,我就能收到很多人给我发来的邮件,总是问我怎么选择他们的offer,去腾讯还是去豆瓣,去外企还是去国内的企业,去创业还是去考研,来北京还是回老家,该不该去创新工场?该不该去thoughtworks?&&等等,等等。我深深地发现,对于我国这样从小被父母和老师安排各种事情长大的人,当有一天,父母和老师都跟不上的时候,我们几乎完全不知道怎么去做选择。&
几个例子当我们在面对各种对选择的影响因子的时候,如:城市,公司规模,公司性质,薪水,项目,户口,技术,方向,眼界&& 你总会发现,你会在几个公司中纠结一些东西,举几个例子:&某网友和我说,他们去上海腾讯,因为腾讯的规模很大,但却发现薪水待遇没有豆瓣高(低的还不是一点),如果以后要换工作的话,起薪点直接关系到了以后的高工资。我说那就去豆瓣吧,他说豆瓣在北京,污染那么严重,又没有户口,生存环境不好。我说去腾讯吧,他说腾讯最近组织调整,不稳定。我说那就去豆瓣吧,慢公司,发展很稳当。他说,豆瓣的盈利不清楚,而且用Python,自己不喜欢。我说,那就去腾讯吧,&&&还有一网友和我说,他想回老家,因为老家的人脉关系比较好,能混得好。但又想留在大城市,因为大城市可以开眼界。&另一网友和我说,他想进外企,练练英语,开开眼界,但是又怕在外企里当个螺丝钉,想法得不到实施。朋友拉他去创业,觉得创业挺好的,锻炼大,但是朋友做的那个不知道能不能做好。&还有一网友在创新工场的某团队和考研之间抉择,不知道去创新工场行不行,觉得那个项目一般,但是感觉那个团队挺有激情的,另一方面觉得自己的学历还不够,读个研应该能找到更好的工作。&还有一些朋友问题我应该学什么技术?不应该学什么技术?或是怎么学会学得最快,技术的路径应该是什么?有的说只做后端不做前端,有的说,只做算法研究,不做工程,等等,等等。因为他们觉得人生有限,术业有专攻。&我个人觉得,如果是非计算机科班出生的人不会做选择,不知道怎么走也罢了,但是我们计算机科班出生的人是学过算法的,懂算法的人应该是知道怎么做选择的。&
排序算法你不可能要所有的东西,所以你只能要你最重要的东西,你要知道什么东西最重要,你就需要对你心内的那些欲望和抱负有清楚的认识,不然,你就会在纠结中度过。&所以,在选择中纠结的人有必要参考一下排序算法。&首先,你最需要参考的就是&冒泡排序&&&这种算法的思路就是每次冒泡出一个最大的数。所以,你有必要问问你自己,面对那些影响你选择的因子,如果你只能要一个的话,你会要哪个?而剩下的都可以放弃。于是,当你把最大的数,一个一个冒泡出来的时候,并用这个决策因子来过滤选项的时候,你就能比较容易地知道知道你应该选什么了。这个算法告诉我们,人的杂念越少,就越容易做出选择。&好吧,可能你已茫然到了怎么比较两个决策因子的大小,比如:你分不清楚,工资&业务前景吗?业务前景&能力提升吗?所以你完全没有办法进行冒泡法。那你,你不妨参考一个&快速排序&的思路&&这个算法告诉我们,我们一开始并不需要找到最大的数,我们只需要把你价值观中的某个标准拿出来,然后,把可以满足这个价值的放到右边,不能的放到左边去。比如,你的标准是:工资大于5000元&&业务前景长于3年的公司,你可以用这个标准来过滤你的选项。然后,你可以再调整这个标准再继续递归下去。这个算法告诉我们,我们的选择标准越清晰,我们就越容易做出选择。&这是排序算法中最经典的两个算法了,面试必考。相信你已烂熟于心中了。所以,我觉得你把这个算法应用于你的人生选择也应该不是什么问题。关于在于,你是否知道自己想要的是什么?&
排序算法的核心思想就是,让你帮助你认清自己最需要的是什么,认清自己最想要的是什么,然后根据这个去做选择。&
贪婪算法所谓贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择(注意:是当前状态下),从而希望导致结果是最好或最优的算法。贪婪算法最经典的一个例子就是哈夫曼编码。&对于人类来说,一般人在行为处事的时候都会使用到贪婪算法,&比如在找零钱的时候,如果要找补36元,我们一般会按这样的顺序找钱:20元,10元,5元,1元。&或者我们在过十字路口的时候,要从到对角线的那个街区时,我们也会使用贪婪算法&&哪边的绿灯先亮了我们就先过到那边去,然后再转身90度等红灯再过街。&这样的例子有很多。对于选择中,大多数人都会选用贪婪算法,因为这是一个比较简单的算法,未来太复杂了,只能走一步看一步,在当前的状况下做出最利于自己的判断和选择即可。&有的人会贪婪薪水,有的人会贪婪做的项目,有的人会贪婪业务,有的人会贪婪职位,有的人会贪婪自己的兴趣&&这些都没什么问题。贪婪算法并没有错,虽然不是全局最优解,但其可以让你找到局部最优解或是次优解。其实,有次优解也不错了。贪婪算法基本上是一种急功近利的算法,但是并不代表这种算法不好,如果贪婪的是一种长远和持续,又未尝不可呢?。&
动态规划但是我们知道,对于大部分的问题,贪婪法通常都不能找出最优解,因为他们一般没有测试所有可能的解。因为贪婪算法是一种短视的行为,只会跟据当前的形式做判断,也就是过早做决定,因而没法达到最佳解。&动态规划和贪婪算法的最大不同是,贪婪算法做出选择,不能在过程优化。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,会动态优化功能。&
动态规划算法至少告诉我们两个事:&
1)承前启后非常重要,当你准备去做遍历的时候,你的上次的经历不但能开启你以后的经历,而且还能为后面的经历所用。你的每一步都没有浪费。&
2)是否可以回退也很重要。这意思是&&如果你面前有两个选择,一个是A公司一个是B公司,如果今天你选了A公司,并不是你完全放弃了B公司。而是,你知道从A公司退出来去B公司,会比从B公司退出来去A公司要容易一些。&比如说:你有两个offer,一个是Yahoo,一个是Baidu,上述的第一点会让我们思考,我以前的特长和能力更符合Yahoo还是Baidu?而Yahoo和Baidu谁能给我开启更大的平台?上述的第二点告诉我们,是进入Yahoo后如果没有选好,是否还能再选择Baidu公司?还是进入Baidu公司后能容易回退到Yahoo公司?&
Dijkstra最短路径最短路径是一个Greedy + DP的算法。相当经典。这个算法的大意如下:&1)在初始化的时候,所有的结点都和我是无穷大,默认是达不到的。&2)从离自己最近的结点开始贪婪。&3)走过去,看看又能到达什么样的结点,计算并更新到所有目标点的距离。&4)再贪婪与原点最短的结点,如此反复。&这个算法给我们带来了一些这样的启示:&有朋友和我说过他想成为一个架构师,或是某技术领域的专家,并会踏踏实实的向这个目标前进,永不放弃。我还是鼓励了他,但我也告诉他了这个著名的算法,我说,这个算法告诉你,架构师或某领域的专家对你来说目前的距离是无穷大,他们放在心中,先看看你能够得着的东西。所谓踏实,并不是踏踏实实追求你的目标,而是踏踏实实把你够得着看得见的就在身边的东西干好。我还记得我刚参加工作,从老家出来的时候,从来没有想过要成为一个技术牛人,也从来没有想过我的博客会那么的有影响力,在做自己力所能及,看得见摸得着的事情,我就看见什么技术就学什么,学着学着就知道怎么学更轻松,怎么学更扎实,这也许就是我的最短路径。&有很多朋友问我要不要学C++,或是问我学Python还是学Ruby,是不是不用学前端,等等。这些朋友告诉我,他们不可能学习多个语言,学了不用也就忘了,而且术业有专攻。这并没有什么不对的,只是我个人觉得,学习一个东西没有必要只有两种状态,一种是不学,另一种是精通。了解一个技术其实花不了多少时间,我学C++的目的其实是为了更懂Java,学TCP/IP协议其实是为了更懂Socket编程,很多东西都是连通和相辅相成的,学好了C/C++/Unix/TCP等这些基础技术后,我发现到达别的技术路径一下缩短了(这就是为什么我用两天时间就可以了解Go语言的原因)。这就好像这个算法一样,算法效率不高,也许达到你的目标,你在一开始花了很长时间,遍历了很多地方,但是,这也许这就是你的最短路径(比起你达不到要好得多)。&
算法就是Trade-Off你根本没有办法能得到所有你想得到的东西,任何的选择都意味着放弃&&当你要去获得一个东西的时候,你总是需要放弃一些东西。人生本来就是一个跷跷板,一头上,另一头必然下。这和我们做软件设计或算法设计一样,用时间换空间,用空间换时间,还有CAP理论,总是有很多的Trade-Off,正如这个短语的原意一样&&你总是要用某种东西去交易某种东西。&我们都在用某种东西在交易我们的未来,有的人用自己的努力,有的人用自己的思考,有的人用自己的年轻,有的人用自己的自由,有的人用自己的价值观,有的人用自己的道德&& && 有的人在交换金钱,有的人在交换眼界,有的人在交换经历,有的人在交换地位,有的人在交换能力,有的人在交换自由,有的人在交换兴趣,有的人在交换虚荣心,在交换安逸享乐&& &&&每个人有每个人的算法,每个算法都有每个算法的purpose,就算大家在用同样的算法,但是每个人算法中的那些变量、开关和条件都不一样,得到的结果也不一样。我们就是生活在Matrix里的一段程序,我们每个人的算法决定着我们每个人的选择,我们的选择决定了我们的人生。
&IT168文库官方网站:http://wenku.it168.com
【面试经】如何回答“你最大的优点和缺点是什么”?
这类问题在注重与人打交道的行业面试中出现频率还是比较高的,主要是考察应聘者的自我认知以及性格是否适合公司文化。同时,这类问题也是需要大家提前准备的,千万不要在临场的时候不经大脑的说出一些让自己追悔莫及的答案。
关于优点:&
优点是一个相对好回答的问题,每一个人身上都有很多优点,比如细心、适应能力强、善于学习等等。需要提醒大家的是,要尽可能说一些和工作相关的优点,比如孝顺、体贴之类的就不要说啦,可以讲一些诸如&不满足于现状&之类的话,别把自己夸的太玄乎让面试官觉着你太自大就好。
切记的是,一定要举例子啊。不要和面试官直接了当的回答&我不满足于现状&然后等着他问&比如呢?&,这样就显得太高冷了,要像说故事一样的举出一些不那么泛泛的例子,比如:&对自己的能力总是不满足,会去主动尝试学习一些新的东西。高中的时候英语成绩突出,经常能考到140分以上,但是我并没有满足,利用假期考了雅思,成绩也还不错,虽然不出国,但是当做是对自己的一种挑战,很有成就感。&
是不是感觉有那么一点贱贱的?这类问题本身就是这样,你需要的是准备一个你觉着自己还不错的优点,然后讲一段别太长又让人感觉还算真实的故事,就OK了,不需要多出彩,但至少不要为自己减分就好。
给大家一些回答的比较好的:&
1. 给自己定下较高的目标并按部就班的实现(可用高考、考研、留学等经历来说明)
2. 同时具有理性思考又有感性和美学的感受力(可以用为什么选择建筑、交互设计等专业来说明。
可以参考这些答案自己准备一些回答,这个问题是没有标准答案的。
关于缺点:&
这是一个比较难回答的问题,答得太浅太泛会让人觉着你不能很好的正视自己的缺点,答得太深太真实又会一不小心踩到雷区说到禁忌。一些求职培训机构给了大家一个看似聪明而又标准化的回答,&追求完美、偏执狂&等等,但是,小库想告诉大家的是,这个答案已经在5年前就被用烂了,除非你真的是这样,并且能举出一个极具说服力的例子,否则就不要用了。换位思考,如果你是面试官你会相信追求完美是最大的缺点吗?别以为把优点说成缺点就是最聪明的回答,很多时候会让面试官觉着你油嘴滑舌,是在故意讨巧。那应该如何正确的回答这个问题呢?
首先,要知道哪些是雷区,是一定不能说的缺点,比如:懒、脾气古怪、不喜欢合作等等,这就好比说自己&贪嗔痴&一样,是人性的弱点,但是不能在面试中说啊宝贝。在大雷区下,还有一些小雷区,就是针对特定职业的。如果你应聘的是会计,你就不能说自己不拘小节;如果你应聘销售,就不能说自己缺点是内向、不善言辞;如果你是设计师,不能说自己缺乏创新精神等等。
其次,不要去谈和工作不相关的缺点,比如洁癖、厨艺不好、挑食等等,别笑,真的有人这么回答。但是你觉着面试官花时间面试你是想听你唠家常么?同样不要去谈那些不痛不痒的缺点,比如熬夜会困、不善于理财,这种答案说出来会让觉着不知道接什么好,又浑身痒痒,所以还是不要说了。
第三,不要说那些无法改善的缺点,比如一看书就困、算数必须用计算器,这种缺点本身很正常,要是每个人的缺点都能改善都成完人了,但是在面试里拿出来说就是你的不对了,会让面试官觉着&你的这些顽疾既然得不到改善那我干脆不用你好了&。
所以,到底要怎么回答呢?!&
在避免以上几点的前提下,要在说出缺点后谈谈你正在或者即将要如何改进这个缺点。小库再重申一下,&优点和缺点&的问题是考察大家的自我认知,如果你最大的缺点是&拖延&,然后你明知道这是你最大的问题又不改,是闹哪样呢?会让面试官觉着你是一个不思进取的人。所以,既然是考察自我认知,对于缺点问题最好的回答,应该是你知道自己的缺点并去改正它的过程,然后讲一个真实又动听的故事,就可以顺利过关了。
一些比较好的回答:
1. 有时候把任务布置给别人,觉着不放心或者达不到自己的要求,会去亲力亲为,所以尽管最后项目完成的不错,但是可能会搞得自己特别疲惫,有时候也会影响到同伴的积极性。所以正在努力改进,会在事情开始前先和同伴统一目标和标准,然后分别执行,最后一起讨论&
2. 喜欢追求细节导致项目/作业未能按期完成。通过时间管理能力改变工作方式,先完成框架再改善细节得以解决&
3. 不知如何拒绝,同事要求帮忙一概揽下,影响自身工作进度。通过多任务处理能力设定优先顺序,以该优先顺序表向求助同事展示自己手上工作,并给其一个自己在何时可以给予帮助的时间估计,让求助人自行决定是否求助,问题解决
小库来总结一下,优缺点问题是一个出彩不一定加分,但踩雷就一定减分的问题,需要大家提前准备。重要的是你如何认识自己并改善自己,举例是必须要的,不能只给出结论哦~
&&&a href='http://wenku.it168.com'&一键直达IT168官站 wenku.it168.com&/a&
8种极品程序员,你属于哪一种?
在日常工作里肯定会发现很多有趣的事情,极品程序员所做的事就是很有意思的。几乎每一个软件开发者多多少少都会出现头脑短路的现象,也就是说,下面所列举的各种极品程序员类型,总有一款是属于你的。&
1. 钟爱型程序员:万般宠爱集于一种技术
这种类型的程序员所遇到的致命错误就是:只钟爱一种技术,对别的技术不来电。其实这不是什么值得表扬的优点。因为这种程序员看上去就像是&天生注定爱上这种框架的程序员&,对于自己喜欢的技术可以说是放不开、丢不掉。甚至在生活里也是一个打破砂锅问到底的人。
不管问题是什么,他的回答总是跟他的性格类型脱不了关系:&&嘿,我们需要在Rails框架里实现一个内容管理系统,但是我们应该用哪一个数据库呢?&&&Mongo数据库&&多用户博客呢?&&&Mongo数据库&&关键业务一致性系统呢?&&&Mongo数据库&&库存管理系统?&&&Mongo数据库&&电子病历系统?&&&Mongo数据库&&分布式数据仓库?&&&Mongo数据库&钟爱型的程序员在任何软件开发项目里都会找出各种各样的理由,也不管这些理由是否具有实际意义。但是,一旦你试图反驳他的观点或者是想法的时候,他们在感情上是无法接受的,即使你和他的关系特别好也是没有用的。如果他知道自己的想法错了,也不会告诉任何,而是更愿意在最后一秒的关键时刻偷偷的使用别人的正确方案。&
2. 匠心型程序员:保守主义者,不到万不得已不做修复
匠心型的程序员的目标是至高无上的:不考虑成本,尽一切可能保护系统的正常运行和系统的完整性。除此之外,这类程序员信奉一个很简单的哲理,这个简单的哲理也就是引领他们在软件开发和管理实践中的一个基本准则:只要还能将就使用,不到万不得已千万不要去修复。
不管什么样的软件,只要是在奥术师的保护下,就一直是使用那个平台、那个部署程序、那个数据库还有那个永远不会改变的操作系统。但是你不必担心,因为匠师会一直盯着这些看上去老旧的组件,也许他不能赢得每一场战斗,但是他一定会为了每一场战斗而凶猛拼杀。&在匠师的世界观里,过去也代表着未来。所以,他将会和那些想要升级他的1981年发布的的PASCAL代码库的人作战到底,哪怕是泪流满面。&
3. 未来派程序员:赶潮人,追求最前沿的技术
未来派程序员可以说是奥术师程序员的对立面&&今天就是未来,任何使用昨天的开发工具编写的代码在未来派眼里看来都是无与伦比的厌恶。他们的目标可不是什么哲理&&追求最新最前沿的技术。
如果你看到未来派程序员甩着鼻涕在你面前吹嘘最近在Hacker News上看到关于JavaScript的最新消息而滔滔不绝的时候,你千万不要惊讶,因为他们没像是在Justin Bieber演唱会上那样在你面前尖叫就已经很照顾你了。即使有的时候在Microsoft Research or the Server and Tools Team发布新产品的时候,即使他们根本不理解那些产品的用途,也会显得很热情。&不过,需要提醒的是,如果你是一个未来派程序员,那么DevOps工程师,QA工程师和Release工程师这些职位是未来派程序员的天敌。&
4. 信息囤积者型程序员:小心谨慎,不愿公布代码
信息囤积者型程序员是一个很谨慎的人,但是对自身的谨慎行为充满不确定性。他们生活在一个认知失调的世界里:对自己的工作感到自豪,但是需要帮助的时候又不愿意让别人知道。
所以囤积者通常会隐藏代码,不愿意公布代码。小心翼翼地避免访问记录,更不愿意别人跟踪他所做的一些修改记录。他最大的恐惧就是遇到代码合并冲突,因为这样的暴露风险是最大的。&也许囤积者型的程序员很乐意告诉你他的工作是多么了不起,但是如果你想要知道他的代码估计会很难。最终,信息囤积者型的程序员注定要失败,这样的做事行为不被别人接受,存在也是没价值的。只希望在短期内能有较好的改善。&
5. 艺术家型程序员:质量?&美观?不可兼得
艺术家型程序员简直就是囤积者和未来派程序员的表兄弟,艺术家型程序员会倾入所有的心思来构建完美的代码行。此外,艺术家型程序员也是一个易动感情的人&&他所创造出的软件就是他感情的流露,也是他个人才华的生动化身。
艺术家型程序员还会考虑这样的问题:如果我使用的JavaScript里不添加分号的话,在语句上是不是更加漂亮呢?如果把这个块包装起来,是不是更加完美?他们最在乎的是美观,其次才是质量。&艺术家型程序员也不是这个行业所提倡的那种程序员,他们无法客观的讨论评价自己的作品,也无法定位自己在同事当中的位置。&
6. 孤岛型程序员:性格孤僻者,代码就是一切&孤岛型程序员是整个程序员行列里最孤独的人,这样的程序员在软件创造方面有很多很大的欲望,但是他们的短板是不愿与人交往。孤岛型程序员的理想工作条件是与外界交流最好是保持在最低限度,而且严格控制在他方便的时候。他的生活里只是代码,没有人类。
但不幸的是,现实和理想往往是有很大的区别的,但是这些程序员必须为了生存而去公司谋求工作,于是被迫与同事或客户沟通,这对他们来说的确是一个巨大的负担。所以他们只能躲避&&躲避会议、躲避电话沟通、关闭邮件接收器等等。他们遇到问题的时候宁愿查询上百件项目文档也不愿意问自己的队友。&和信息囤积者型程序员一样,孤岛型程序员注定要失败。软件开发就像是一项团队运动,不接受那些不遵守规则的另类。&
7. 敏捷型程序员:急功近利,常常半途而废
敏捷型程序员是一个功利主义者,致力于需求改善软件效率,以及个人和团队的生产力。但不幸的是,他对&敏捷&哲理的理解和实施策略实在是呆板和僵化,不禁使人发笑。
敏捷型程序员的初始意图是很高尚的:改善软件开发方式。这样的程序员做起事情来是比较雷厉风行的,但是也有缺点:任何讨论时间超过四小时的问题最后都会变成泡沫;任何在最后冲刺阶段所做的项目基本上都会缩水。&另外值得注意的是,大部分敏捷型程序员都有一个通病:自命不凡。在程序开发过程当中,尤其是在选用一些小的组件的时候,坚持己见,导致网络文件系统出现错误或者是驱动程序实现效果不理想。&
8. 文盲型程序员:编程入门者,功底浅薄
顾名思义,文盲型程序员在阅读别人的源代码的时候总是会遇到很多麻烦,有的时候基本上是看不懂别人的代码。
换句话说,文盲型程序员和孤岛型程序员像是一对表兄弟,只对他们钟爱的编程语言花时间去理解基本的编程结构,全面掌握编程语法,但是看到其他程序员所写的代码的时候,完全是一窍不通。在这种情况下,我们称之为&code-blind&程序员。&当面对其他开发者问&你为什么不使用我们标准的接口来生成一个对话&的时候,文盲型程序员通常是盯着自己的脚尖然后是喃喃自语。&以上只是列举了一部分类型的极品程序员案例,当然,极品并不代表不好,只要把这种极品特征合理应用,它就会成为你的特长。不知道你是不是一个极品程序员?&
&IT168文库官方网站:http://wenku.it168.com
【i访谈】SAP中国顾问协会创始人伍昊献解读SAP在中国的云端战略
《i访谈》是IT168企业级的品牌栏目,该栏目采用对话访谈形式,通过与IT圈内知名技术大牛的对话,让网友真切地了解技术大牛们的个人成长经历故事,大企业工作实战经验,掌握高效的学习方法,并精准把握行业趋势变化,给正在职业道路上奋斗的人一些指引。&
本栏目欢迎专家自荐或推荐,请将专家信息(照片、简介、联系方式)一起发送至:&
本期嘉宾:伍昊献
嘉宾简介:伍昊献,曾任中石化总体组、BCS合并组资深顾问,中化集团、中联油 FICO Leader,中海油成本管理FICO资深顾问。有中国前四大石油、化工企业项目实施经验,并参与多家跨国公司如LENOVO,TDK,MADER等项目的实施工作。在项目中承担PMO和FICO Leader角色,有10多年SAP FI/CO实施经验。
内容摘要:近年来,IBM、甲骨文、谷歌、亚马逊等巨头企业竞逐云计算领域是&树欲动而风不止&,频繁收购出招,IT行业的互联网企业还在通过大幅调整相关云计算产品价格的方式抢占先机。在痛失Responsys并目睹甲骨文将销售点终端(POS)领导企业Micros收入囊中后,SAP不愿再错过Concur。该公司新任首席执行官比尔&麦克德莫特(Bill McDermott)宣布,将以83亿美元收购企业软件公司Concur.并购交易结束后。不过,SAP公司显然是&醉翁之意不在酒&。 SAP将会拥有5000万个云用户,这一数量超过任何一家云公司。很显然,对于全球最大的ERP供应商SAP来说,公司也在面临转型的挑战&&云计算已经成为公司战略转型的重点。&由SAP HANA驱动的云计算公司&甚至成为SAP官网对SAP定位的基本口号。本期 i访谈邀请到了SAP中国顾问协会创始人伍昊献,为我们解读SAP在中国的云端战略。&
IT168(Q1):您有十多年的SAP实施经验了。能否简单介绍下自己?能否结合您在中石油、化工领域多年的项目实施经历,举例分享下您眼中ERP的管理精髓?&
伍昊献(A1):我姓伍,名昊献,我在项目中承担 PMO和FICO Leader角色,有10多年SAP FI/CO实施经验。曾任中石化总体组、BCS合并组资深顾问,中化集团、中联油 FICO Leader,中海油成本管理FICO资深顾问。有中国前四大石油、化工企业项目实施经验,并参与多家跨国公司如LENOVO,TDK,MADER等项目的实施工作。曾经与IBM、AC、HP、Capgemini、Bearingpoint、DELL、PWC、SAP、ERNST&YOUNG、Deloitte等国际咨询公司合作,并成功实施过项目。熟悉SAP 的FI/CO、MM、PP及SD等模块的运作流程及配置,咨询的专业范围包括成本管理、财务管理、财务合并、银企直联、项目监理(项目、顾问考核,里程碑管理)等。在众多实施的项目过程中积累了丰富的实践经验,对成本管理、各类行业生产流程、各模式销售流程,及它们之间的整合有非常深刻的认识,并从中总结了自己独特的见解。&在我从事咨询的项目中,ERP真正实现了集团公司的集中管控,分级审批,灵活配置,业务集成。SAP引入了行业积累的最佳业务实践,采用经得起实战考验的先进方案进行实施和推广。在项目实施过程中,我们应考虑ERP 系统项目实施本身是一个复杂产品的组合,涉及到行业属性、业务特点和管理基础等领域。建议ERP 系统建设一定要注意抓住重心和关键业务领域,把烦杂的业务简化成一些关键的实施重点,并且集中力量完成关键点的实施和推广应用,而不应该盲目求大,把实施范围和过程复杂化,形成实施的障碍。尽量把握住可控的关键因素,奠定一个稳定的根基之后,再慢慢考虑可扩展的范围和边缘,有重点有步骤地实施。&
IT168(Q2):IT巨头&云端决战&愈演愈烈,SAP将云计算视为未来业务增长点。目前中国区在云端发展速度良好,SAP与超过四百家企业以及本地央企落地云计算,增长大概在三位数。SAP选择转型成云计算企业是否是大势所趋?您觉得SAP在转型成云计算企业的道路上究竟有哪些机遇与挑战?&
伍昊献(A2):是的,现在SAP 对外宣称也是基于HANA的云公司。在云战略方面,SAP当季主打&The Cloud Company powered by SAP HANA&,为此提供了基于SAP HANA平台的企业应用(所有ERP)和商务智能以及SAP合作伙伴及自己开发的App, 所有产品全部可以Cloud形式交付。&SAP云在中国已落地,它是中国首家提供人力资本管理SaaS解决方案的国际公司,其与中国电信联合成立的中数通公司已为易才集团,中国通服和薪福控股提供了SAP云计算服务。SAP最近也收购了Concur, 在人资、采购、财务应用上都逐步移向云端。但安全性及可靠性,仍是众多大中型国企比较关注的点。&
确保云端运行关键型系统足够安全:Cloud solutions from SAP 满足目前全球最严格的安全标准(SAS 70 Type II 认证、ISO 27001 认证、128位数据加密以及网誉认证和 PCI 规范),已有120万家企业建立互联,总交易额达5,000亿美元。(使用SAP Ariba Network)&
云端运行系统的市场相对成熟60%的 SAP Cloud 客户为大型企业。SAP Cloud 支持全球规模最大零售商(拥有逾 200 万用户的企业)的云部署,Cloud solutions from SAP 为其提供支持。T-Mobile、安德阿镆公司 (Under Armour)、文华东方酒店(Mandarin Oriental Hotels)、Express、英国航空 (BA) 等都采用了SAP 的云解决方案。&
IT168(Q3):未来,云计算叠加大数据将成为海量信息集中处理的基本方式,云计算业务必将成为未来支撑IT业发展的&中坚力量&。到2016年,传统的技术供应商将会水深火热。云计算领域将重新洗牌,从寡头坐享丰厚利润,将演变成拼运营、拼供应链,看谁的服务和生态更好的新格局。您是如何看待未来这种趋势下的新格局?&
伍昊献(A3):云计算并不是一个全新的事物,早在二十多年前,就有人曾提出:&The Network is the Computer&,相较于云计算,这句话显得更有力量。对于个人或者中小型企业,云计算模式的逐步成熟弥补了中小型企业发展中的很多劣势。一方面企业可以将现有的单机难以运行的应用移植到云计算中心,以服务的方式为用户进行数据处理或计算; 另一方面,可以利用云计算服务中心开放的API自行开发应用,为用户或者企业提供服务。&云计算ERP一方面能够减少企业在硬件方面的投资,他们只需要从平台服务商那里租用部署ERP所需要的硬件和网络资源即可,这大大减少了企业投资的费用;另一方面,云平台是由一些世界上顶级的互联网公司搭建的,他们拥有着世界上顶尖的硬件环境、技术手段以及技术人才,为环境的安全稳定提供了可靠的保障,为用户的数据安全进行保障和备份,对隐私数据进行保护。因此,无论从减少投资还是技术稳定方面来看,云计算都是ERP的发展方向。&现在的发展是移动化,云化,大数据处理。没有赶上这轮快车就会被慢慢淘汰。而格局会在一两年定下来。而SAP,ORACLE等国外ERP大产商早已布局并在业界大力宣传他们基于云计算和大数据的产品,可以说他们走在了前头&
IT168(Q4):传统的ERP和CRM都是功能丰富的产品包,而云应用却不是大而全,而更应该是碎片化的工具集合。甲骨文把CRM扩展成CX,就分成了销售云、营销云和社交服务云;Gartner预计,到了2018年ERP系统的30%将会转移到云端,未来云计算服务是否会扼杀ERP?还是会和ERP走向融合?谈谈您对未来的ERP产品有哪些期待?&
伍昊献(A4):我认为核心数据和应用仍会在ERP运行。而对于社会化应用和供应链前后端会逐步上云,它俩之间将是一个很好的融合和互补的作用,我期待未来的ERP产品更人性,更智能,增加更多有趣的互动和展示。公有云的卖点是资源; 而企业级市场需要的是真把云做成服务,客户想要买的不仅是资源,更是管理和运维的能力。所以,真正的企业级云计算才刚刚拉开帷幕。当前市场上很流行模块化商品云,但以后希望交付给企业的是高价值、具有定制能力的云。&
IT168(Q5):自SAP完成Sybase、实时分析技术提供商Hana以及云计算软件Business ByDesign这三大收购,就意味着SAP从一家传统的ERP提供商,正式向云计算、数据库技术、分析、移动商务等领域的全方位拓展。SAP在ERP领域在不断的拓宽覆盖面,请谈谈您的对SAP ERP云的理解。&
伍昊献(A5):我认为前期SAP在云端的应用以探索和试验为主,并积累了一定的经验,包括在国内首家与中国电信合作的云服务平台,已为多家企业提供了云计算服务。 在今年的市场大潮中,SAP以快跑代小步,最近的大手笔收购就是例证。我觉得这两年仍有可能出现几笔大的针对云服务商的收购。&SAP基于云计算的解决方案包括 B2B、社交协作和以人为本的应用程序,这些解决方案已集成到统一的架构中。客户可以利用交易数据以及社交、移动和分析的巨大威力。基于HANA平台的SAP云解决方案具备按需部署模式本身所具有的可扩展性。&HANA已经进入到4.0时代,成为一个PaaS平台。在云数据中心方面,SAP至今已经在全球搭建了20个数据中心,通过HANA,简化了所有数据库、数据管理和集成、数据仓库等。SAP的公有云服务仍主要以SaaS模式体现,而在SAP的各种SaaS企业管理应用软件之下,SAP基于Everything on HANA的逻辑理念,将HANA打造成平台即服务。除了面向大型集团型企业的SAP Business Suite,SAP还面向中型企业市场推出了提供行业最佳业务实践的SAP Business All-in-one,甚至还由中国研发团队支持推出了面向小型企业市场的SAP Business One。SAP还收购了人力资本云计算厂商SuccessFactors和云在线商务软件Ariba,这些逐渐演变成SAP的HCM人力资本云和CX客户体验及关系管理云解决方案,将SAP的ERP解决方案,朝着企业外部进行拓展。&
IT168(Q6):SAP中国在创新方面有什么投入?SAP将怎样帮助中国企业面对互联网化转型?作为SAP中国顾问协会创始人,您是否看好SAP中国顾问的职业发展前景?&
伍昊献(A6):SAP中国视中国为第二故乡。2011年8月,SAP董事会宣布,将全球支持集团总部搬迁到中国,这是SAP进入中国市场20年来,第一次将业务集团总部设在中国。2011年,第一个以&定制中国&为目的的董事会特别会议在北京召开,宣布了中国发展计划,在未来五年投入20亿美元扩展业务;并在2015年之前再雇用2000名员工,增开5~6所新办事处。&SAP决定在中国成立"数据迁移工厂",将以免费的形式帮助中国客户将现有架构的数据迁移到HANA上。SAP Fiori和Screen Personas也将全面免费, SAP Fiori是SAP在去年的SAPPHIRE上推出的一套基于SAP的旗舰产品Business Suite适用于移动设备的轻量级通用流程应用;而Screen Personas让Business Suite中的应用能自动地根据用户的角色和任务适应显示终端,包括其大小和分辨率等。&SAP中国现更专注于未来市场需求更宽泛的领域&&移动、云计算、内存计算等。SAP提供基于SAP HANA平台的企业应用(所有ERP)和商务智能以及SAP合作伙伴及自己开发的App。所有产品全部可以Cloud形式交付。并且在前端提供注重客户体验的移动UI和WEB端界面(NWBC等)。&SAP中国顾问协会是真正中国民间力量,提供公司,学校,顾问交流的真正平台.协会宗旨有监督行业、帮助顾问、提供咨询等。我们希望 SAP,实施公司,培训学校,客户和顾问 整个SAP生态圈的朋友保持密切沟通和协作,共同为行业的发展尽自已所能。SAP中国顾问协会网址是 www.csug.net 或 www.sapcca.org ,旗下还有SNS平台,SAP圈儿 www.sapquaner.com我看好SAP及SAP中国顾问未来几年的发展。因为国内企业的应用还有很多提升空间,而且随着HANA,云应有及移动互联的发展。企业针对此类的应用和需求也会增加,这也激励中国顾问群体不断学习,不断前行。
二维码的生成细节和原理
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。&
基础知识首先,我们先说一下二维码一共有40个尺寸。官方叫版本Version。Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version 3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21(V是版本号) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。下面我们看看一个二维码的样例:
Position Detection Pattern是定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了。
Timing Patterns也是用于定位的。原因是二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪了。
Alignment Patterns 只有Version 2以上(包括Version2)的二维码需要这个东东,同样是为了定位用的。
功能性数据
Format Information 存在于所有的尺寸中,用于存放一些格式化数据的。
Version Information 在 &= Version 7以上,需要预留两块3 x 6的区域存放一些版本信息。
数据码和纠错码
除了上述的那些地方,剩下的地方存放 Data Code 数据码 和 Error Correction Code 纠错码。
数据编码我们先来说说数据编码。QR码支持如下的编码:
Numeric mode&数字编码,从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸(下面有一个表Table 3说明了这点)
Alphanumeric mode&字符编码。包括 0-9,大写的A到Z(没有小写),以及符号$ % * + & . / : 包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值) 编码的过程是把字符两两分组,然后转成下表的45进制,然后转成11bits的二进制,如果最后有一个落单的,那就转成6bits的二进制。而编码模式和字符的个数需要根据不同的Version尺寸编成9, 11或13个二进制(如下表中Table 3)
Byte mode, 字节编码,可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码。
Kanji mode&这是日文编码,也是双字节编码。同样,也可以用于中文编码。日文和汉字的编码会减去一个值。如:在0X8140 to 0X9FFC中的字符会减去8140,在0XE040到0XEBBF中的字符要减去0XC140,然后把结果前两个16进制位拿出来乘以0XC0,然后再加上后两个16进制位,最后转成13bit的编码。如下图示例:
Extended Channel Interpretation (ECI) mode&主要用于特殊的字符集。并不是所有的扫描器都支持这种编码。
Structured Append mode&用于混合编码,也就是说,这个二维码中包含了多种编码格式。
FNC1 mode&这种编码方式主要是给一些特殊的工业或行业用的。比如GS1条形码之类的。简单起见,后面三种不会在本文 中讨论。下面两张表中,
Table 2 是各个编码格式的&编号&,这个东西要写在Format Information中。注:中文是1101
Table 3 表示了,不同版本(尺寸)的二维码,对于,数字,字符,字节和Kanji模式下,对于单个编码的2进制的位数。(在二维码的规格说明书中,有各种各样的编码规范表,后面还会提到)
下面我们看几个示例,示例一:数字编码在Version 1的尺寸下,纠错级别为H的情况下,编码: 1. 把上述数字分成三组: 012 345 672. 把他们转成二进制: 012 转成 ; 345 转成 ; 67 转成 1000011。3. 把这三个二进制串起来:
10000114. 把数字的个数转成二进制 (version 1-H是10 bits ): 8个数字的二进制是 5. 把数字编码的标志0001和第4步的编码加到前面: 000
1000011示例二:字符编码在Version 1的尺寸下,纠错级别为H的情况下,编码: AC-421. 从字符索引表中找到 AC-42 这五个字条的索引 (10,12,41,4,2)2. 两两分组: (10,12) (41,4) (2)3.把每一组转成11bits的二进制:(10,12) 10*45+12 等于 462 转成 (41,4) 41*45+4 等于 1849 转成 (2) 等于 2 转成 0000104. 把这些二进制连接起来:
0000105. 把字符的个数转成二进制 (Version 1-H为9 bits ): 5个字符,5转成 6. 在头上加上编码标识 0010 和第5步的个数编码: 01
结束符和补齐符假如我们有个HELLO WORLD的字符串要编码,根据上面的示例二,我们可以得到下面的编码,
编码字符数HELLO WORLD的编码
我们还要加上结束符:
编码字符数HELLO WORLD的编码结束
0011010000
按8bits重排如果所有的编码加起来不是8个倍数我们还要在后面加上足够的0,比如上面一共有78个bits,所以,我们还要加上2个0,然后按8个bits分好组:11 10 11 01000000补齐码(Padding Bytes)最后,如果如果还没有达到我们最大的bits数的限制,我们还要加一些补齐码(Padding Bytes),Padding Bytes就是重复下面的两个bytes:10001 (这两个二进制转成十进制是236和17,我也不知道为什么,只知道Spec上是这么写的)关于每一个Version的每一种纠错级别的最大Bits限制,可以参看QR Code Spec的第28页到32页的Table-7一表。假设我们需要编码的是Version 1的Q纠错级,那么,其最大需要104个bits,而我们上面只有80个bits,所以,还需要补24个bits,也就是需要3个Padding Bytes,我们就添加三个,于是得到下面的编码:11 10 11 &00上面的编码就是数据码了,叫Data Codewords,每一个8bits叫一个codeword,我们还要对这些数据码加上纠错信息。&
纠错码上面我们说到了一些纠错级别,Error Correction Code Level,二维码中有四种级别的纠错,这就是为什么二维码有残缺还能扫出来,也就是为什么有人在二维码的中心位置加入图标。
错误修正容量
L水平7%的字码可被修正
M水平15%的字码可被修正
Q水平25%的字码可被修正
H水平30%的字码可被修正
那么,QR是怎么对数据码加上纠错码的?首先,我们需要对数据码进行分组,也就是分成不同的Block,然后对各个Block进行纠错编码,对于如何分组,我们可以查看QR Code Spec的第33页到44页的Table-13到Table-22的定义表。注意最后两列:
Number of Error Code Correction Blocks :需要分多少个块。
Error Correction Code Per Blocks:每一个块中的code个数,所谓的code的个数,也就是有多少个8bits的字节。
举个例子:上述的Version 5 + Q纠错级:需要4个Blocks(2个Blocks为一组,共两组),头一组的两个Blocks中各15个bits数据 + 各 9个bits的纠错码(注:表中的codewords就是一个8bits的byte)(再注:最后一例中的(c, k, r )的公式为:c = k + 2 * r,因为后脚注解释了:纠错码的容量小于纠错码的一半)下图给一个5-Q的示例(因为二进制写起来会让表格太大,所以,我都用了十进制,我们可以看到每一块的纠错码有18个codewords,也就是18个8bits的二进制数)
组块数据对每个块的纠错码
1167 85 70 134 87 38 85 194 119 50 6 18 6 103 38213 199 11 45 115 247 241 223 229 248 154 117 154 111 86 161 111 39
2246 246 66 7 118 134 242 7 38 86 22 198 199 146 687 204 96 60 202 182 124 157 200 134 27 129 209 17 163 163 120 133
21182 230 247 119 50 7 118 134 87 38 82 6 134 151 50 7148 116 177 212 76 133 75 242 238 76 195 230 189 10 108 240 192 141
270 247 118 86 194 6 151 50 16 236 17 236 17 236 17 236235 159 5 173 24 147 59 33 106 40 255 172 82 2 131 32 178 236
注:二维码的纠错码主要是通过Reed-Solomon error correction(里德-所罗门纠错算法)来实现的。对于这个算法,对于我来说是相当的复杂,里面有很多的数学计算,比如:多项式除法,把1-255的数映射成2的n次方(0&=n&=255)的伽罗瓦域Galois Field之类的神一样的东西,以及基于这些基础的纠错数学公式,因为我的数据基础差,对于我来说太过复杂,所以我一时半会儿还有点没搞明白,还在学习中,所以,我在这里就不展开说这些东西了。还请大家见谅了。(当然,如果有朋友很明白,也繁请教教我)&
最终编码穿插放置如果你以为我们可以开始画图,你就错了。二维码的混乱技术还没有玩完,它还要把数据码和纠错码的各个codewords交替放在一起。如何交替呢,规则如下:对于数据码:把每个块的第一个codewords先拿出来按顺度排列好,然后再取第一块的第二个,如此类推。如:上述示例中的Data Codewords如下:
块 167857013487388519411950618610338&
块 224624666711813424273886221981991466&
块 31822302471195071181348738826134151507
块 4702471188619461515016236172361723617236
我们先取第一列的:67, 246, 182, 70然后再取第二列的:67, 246, 182, 70, 85,246,230 ,247如此类推:67, 246, 182, 70, 85,246,230 ,247 &&& &&& ,38,6,50,17,7,236对于纠错码,也是一样:
块 121319911451152472412232292481541171541118616111139
块 28720496602021821241572001342712920917163163120133
块 314811617721276133752422387619523018910108240192141
块 423515951732414759331064025517282213132178236
和数据码取的一样,得到:213,87,148,235,199,204,116,159,&& && 39,133,141,236然后,再把这两组放在一起(纠错码放在数据码之后)得到:67, 246, 182, 70, 85, 246, 230, 247, 70, 66, 247, 118, 134, 7, 119, 86, 87, 118, 50, 194, 38, 134, 7, 6, 85, 242, 118, 151, 194, 7, 134, 50, 119, 38, 87, 16, 50, 86, 38, 236, 6, 22, 82, 17, 18, 198, 6, 236, 6, 199, 134, 17, 103, 146, 151, 236, 38, 6, 50, 17, 7, 236, 213, 87, 148, 235, 199, 204, 116, 159, 11, 96, 177, 5, 45, 60, 212, 173, 115, 202, 76, 24, 247, 182, 133, 147, 241, 124, 75, 59, 223, 157, 242, 33, 229, 200, 238, 106, 248, 134, 76, 40, 154, 27, 195, 255, 117, 129, 230, 172, 154, 209, 189, 82, 111, 17, 10, 2, 86, 163, 108, 131, 161, 163, 240, 32, 111, 120, 192, 178, 39, 133, 141, 236这就是我们的数据区。Remainder Bits最后再加上Reminder Bits,对于某些Version的QR,上面的还不够长度,还要加上Remainder Bits,比如:上述的5Q版的二维码,还要加上7个bits,Remainder Bits加零就好了。关于哪些Version需要多少个Remainder bit,可以参看QR Code Spec的第15页的Table-1的定义表。&
画二维码图Position Detection Pattern首先,先把Position Detection图案画在三个角上。(无论Version如何,这个图案的尺寸就是这么大)
Alignment Pattern然后,再把Alignment图案画上(无论Version如何,这个图案的尺寸就是这么大)
关于Alignment的位置,可以查看QR Code Spec的第81页的Table-E.1的定义表(下表是不完全表格)
下图是根据上述表格中的Version8的一个例子(6,24,42)
Timing Pattern接下来是Timing Pattern的线(这个不用多说了)
Format Information再接下来是Formation Information,下图中的蓝色部分。
Format Information是一个15个bits的信息,每一个bit的位置如下图所示:(注意图中的Dark Module,那是永远出现的)
这15个bits中包括:
5个数据bits:其中,2个bits用于表示使用什么样的Error Correction Level, 3个bits表示使用什么样的Mask
10个纠错bits。主要通过BCH Code来计算
然后15个bits还要与010做XOR操作。这样就保证不会因为我们选用了00的纠错级别和000的Mask,从而造成全部为白色,这会增加我们的扫描器的图像识别的困难。下面是一个示例:
关于Error Correction Level如下表所示:
关于Mask图案如后面的Table 23所示。&
Version Information再接下来是Version Information(版本7以后需要这个编码),下图中的蓝色部分。
Version Information一共是18个bits,其中包括6个bits的版本号以及12个bits的纠错码,下面是一个示例:
而其填充位置如下:
数据和数据纠错码然后是填接我们的最终编码,最终编码的填充方式如下:从左下角开始沿着红线填我们的各个bits,1是黑色,0是白色。如果遇到了上面的非数据区,则绕开或跳过。
掩码图案这样下来,我们的图就填好了,但是,也许那些点并不均衡,如果出现大面积的空白或黑块,会告诉我们扫描识别的困难。所以,我们还要做Masking操作(靠,还嫌不复杂)QR的Spec中说了,QR有8个Mask你可以使用,如下所示:其中,各个mask的公式在各个图下面。所谓mask,说白了,就是和上面生成的图做XOR操作。Mask只会和数据区进行XOR,不会影响功能区。(注:选择一个合适的Mask也是有算法的)
其Mask的标识码如下所示:(其中的i,j分别对应于上图的x,y)
下面是Mask后的一些样子,我们可以看到被某些Mask XOR了的数据变得比较零散了。
Mask过后的二维码就成最终的图了。好了,大家可以去尝试去写一下QR的编码程序,当然,你可以用网上找个Reed Soloman的纠错算法的库,或是看看别人的源代码是怎么实现这个繁锁的编码。&
【i经验】作为程序员,你必须知道的13个顶级开发社区
摘要:优秀的程序员从来不是闷头敲代码培养出来的,而是选择一个好的开发社区,跟一群志同道合的人在一起分享经验,互相促进,今天DevStore小编就打算跟大家分享13个优秀的开发社区。
作为一名程序员,我们工作时需要得到切实的帮助,而不是看一些唠叨的废话或者一些水文,我们希望能根据自己提出的问题得到其他开发者回答,或者谈论一些学习资源的问题,接下来让小编为你分享13个顶级开发社区,如果你还不知道他们,那么赶紧来看看,也许会有意想不到的收获喔!&1. Stack Overflow: Stack Overflow是全球最受程序员欢迎的开发社区,而且也是内容最丰富的社区之一,成立已经6年了。
2. Reddit:&是一个用户黏性非常强的开放社区,编程开发只是一部分,你也可以在上面与其他开发者讨论一下当前的IT热点资讯。
3.&Google+communities:&你只需注册一个Google账户便可以获取里面的资源,而且不收费。&&
4. sitePoint:&网站内容包括web开发,web设计,技术写作,主要目标是帮助初学者了解其选择的编程语言和技术,所以非常受人喜爱。
5.&CodeProject:&在codeproject里,你可以将代码分享给你的朋友们,截止2013年8月,codeproject已经有用户分享了约100多万代码演示。
6.&Treehouse:&它是一个在线学习课堂,当然也是收费的,你可以在上面找到各种等级的问题答案。
7.&Hacker News:&在这里,你可以实时看到一些学习的资源和教程,你也可以从用户提交的数据中找到适合你的学习资源。
8.&Dxone:&这是一个文章内容驱动的社区,主要由用户分享的最新IT新闻和编程资源,因为平台时间长,用户量也非常大。
9.&Bytes:&传统的开发社区,新手和专家都可以一起讨论软件开发,数据库开发以及网络和系统管理的问题。
10.&Daniweb:&之前一直为市场营销业务分析人员设计,如今转型主要为各个年龄阶段的web开发者和程序员服务。
11.&Dream In Code:&最近更新较慢,但60万的用户以及百万及的文章,还是很吸引人的。
12.&Tech.Pro:&一个关注科技领域发展的社区,也是一个获取资源和编程的入门网站。
13.&Lobsters:&一个真正&面向社交&的社区,很多信息至少都恢复20条,这些信息也许会让你茅塞顿开。
【i实战】基于AIX 5.4 HACMP的Oracle 9208 RAC数据库启动故障诊断
作者:wisdomone1
事件梗概:&昨天晚上,某客户有一套工单处理数据库,部署在IBM HACMP HA软件上,数据库架构为oracle 9208 rac的,约在3个月前进行维护管理过程中,发现如停掉一个RAC节点,业务承载到另一个节点,此后再重启停掉的RAC节点,约过2到3个小时后,首次未关闭的RAC节点会自动中断关闭,最后只能全部关闭RAC所有节点,同时启动RAC节点。&鉴于上述情况,晚上10点左右,客户要更换数据库服务器的硬件,援请我方到现场进行支持。&
事件经过:&晚上10点左右,服务器硬件已更换完毕,因数据库部署在HAC MP中,发现HAC MP在RAC第1个节点153没有启动,告知客户需启动HAC MP,约消耗近40分左右(注:客户好像也不太懂HAC MP,好多HAC MP的问题,我建议他找找他们的维护文档或者直接打电话问同事)。接下来客户打了N多电话,最终手工启动153的HAC MP。&客户的数据库归档存储,是存储在经NFS挂载的远程目录中,因为更换硬件,客户发现在RAC的153节点挂载NFS远程目录时,报如下错误:df: /home/oracle/archive1: A file, file system or message queue is no longer available.同上,建议客户查阅他的维护管理手册,最终RAC2个节点NFS挂载正常。&HAC MP及NFS挂载全部OK,为了不影响业务,同时启动RAC 2个节点(153为节点1,154为节点2),153节点1报错如下:
ORA-00202: controlfile: '/dev/rlv_cntl1' ORA-27041: unable to open file IBM AIX RISC System/6000 Error: 6: No such device or address&Additional information: 11Tue Sep 23 00:00:02 2014 ORA-205 signalled during: ALTER DATABASE MOUNT&
提示很明显,153的RAC数据库找不到控制文件/dev/rlv_cntl1,但154节点2,又是可以正常启动的,说明控制文件/dev/rlv_cntl1本身是正常的,只是153节点找不到它,为何找不到呢?我认为有几个原因:
1,153节点到存储的光纤通道出现故障
2,HAC MP出现问题,即控制文件/dev/rlv_cntl1所属的卷组没有在153节点启用,只要启用HAC MP的并发卷组即可。
基于上述的分析,我们依次进行诊断:
1、153节点到存储的光纤通道出现故障
errpt|grep io
输出为空,没看到任何IO的报错,这个可以排除了
2、HAC MP出现问题,即控制文件/dev/rlv_cntl1所属的卷组没有在153节点启用,只要启用HAC MP的并发卷组即可。&在153节点运行如下命令: lsvg没有任何输出
在153节运行上述命令,输出结果如下: rootvg datavg indexvg
查看datavg卷组有哪些逻辑卷,找到了逻辑卷/dev/rlv_cntl1lsvg -l datavg
显示易见,是HAC MP这块有问题,即在153节点没有启用并发卷组datavg
告知客户HAC MP出现问题,因客户不太懂技术,我把上述查询及分析的数据给他进行了阐释,尔后客户联系他们的MAC HP的同事,后经他同事远程操作,重启了HAC MP,确认一切正常后。我再次启动RAC 2个节点,数据库启动成功。
最后验证测试业务,约等待1个多小时后,客户方反馈,业务运行一切正常,打道回府。
1,运营商诸多RAC数据库是运行在HA软件之上,如HP的SG,AIX的HAC MP,SUN的SUN CLUSTER或者VCS之上,作为一个DBA,不仅要熟悉掌握ORACLE,还要对这些外围的软件有一个全面的了解,这样才能具备更为广阔的视野,迅速解决问题,也能营造更为专业的一个印象。
2,DBA是一个杀手,遇事要冷静,因为你要不冷静,客户会更方寸大乱,易酿成不可控的局面。
3, MOS绝对一是DBA的葵花宝典,强烈建议定期阅读,拓展思路与能力。
4,在操作数据库之前,尽量全面沟通,竭力掌握数据库各种情况,参考客户描述的情况,亲手到数据库一一佐证,客户讲的可能和真实情况有时有出入,自己心里有个数。&5,作为DBA,我们主要职责是处理ORACLE的数据库各型故障,有时客户会提出各种非ORACLE的问题,请你帮助,这个就要具体情况具体分析,如提的问题,你可以HOLD住,可以给出解决方案,帮帮也是好事一桩,如不是特别有把握,建议客户协调其它资源进行处理与解决,你懂的哟。
【i行业】让开锁师傅告诉你什么是互联网思维和O2O!
进入2014年,有两个词在互联网迅速蹿红,一个是&互联网思维&。这个词的百度指数在2013年只有30多,但今年以来却最高时去到了1700多,即使是今天在互联网业界再谈&互联网思维&就要被人视为low人的情况下都还保持了1300多水平丝毫没有下滑的趋势,实属罕见。另外一个火的不行的词是&O2O&,百度指数最高去到9000多,最新的指数也有6000多。&今天再去考究这两个词为什么蹿红已经不合时宜,再去探讨这两个词的概念也显得无趣。&是什么&和&为什么&是理论家要去研究的问题,对传统企业而言他们更需要知道的是怎么做的问题。老兵刚好今天碰到了这么一档事,看完也许你就能有所顿悟了。&今天太太办公室的门不小心被锁上了,于是上XX同城和百度找开锁公司,对比了多家价格后,找了一家价格相对实惠的公司上门服务,价格是100元。师傅跟我约定的上门时间是30分钟,但实际师傅只花了20分钟就到了,很尖叫的服务。开锁的时间很短,只花了不到1分钟就打开锁,后来感觉这锁不安全,又跟师傅提出追加60元换了一把新锁,前后总共花了160元。后来跟师傅聊天了解到,师傅姓陈,这个开锁公司其实就他一个人,自己做老板和员工,开着的车基本没停过,做完一单马上就要赶往下一站。陈师傅除了在XX同城每年花至少6000元做推广,也在百度做竞价,此外还跟110报警开锁、开锁大王等其他渠道都有合作。&每接一单才100元,这么小的生意做线上推广划算吗?陈师傅告诉老兵,他的同行在网上推广都亏得一塌糊涂,后来也就不做了,现在附近坚持做线上推广的同行也就只剩下他了。确实如此,接一个新单的成本根本无法支撑高额的推广成本,而这个行业的猫腻就在于明明简单的工具就可以开锁却经常被师傅说成要换锁,通过换锁增加客户成本,基本上做完一单客户也就不会再有二次生意了。那陈师傅成功的秘诀在哪里?&1.善于利用互联网引流。陈师傅其实并不懂什么互联网,更加不懂什么是O2O,但他却知道可以利用互联网为他带来生意,这已经足够了,那些天天谈理论的人未必知道怎么干。今天中国的传统企业普遍都有互联网焦虑症,其实像陈师傅一样,自己的用户在哪里,营销就跟到哪里,永远跟着用户走,又有什么好焦虑的呢?&2.用实惠的价格绑定客户。同样是老兵的这笔单,其他开锁公司报价都是至少150元以上,但陈师傅的报价是100元,老兵毫不犹豫选择了这家。对于新客户询价,陈师傅的签单成功率几乎达到100%,客户几乎不需要再讨价还价。互联网打破了价格鸿沟,消费的天平会向消费方倾斜,未来暴利的行业会越来越少。陈师傅不一定知道这个趋势,但显然在尊重这个趋势。&3.用尖叫的服务留住客户。他第一个尖叫的地方就在于他跟我约定的时间是30分钟,他只花了不到20分钟时间就到了。陈师傅说得很实在,不塞车他15分钟就可以到目的地,但如果他说15分钟万一不准时有些客户会拒绝服务,所以他把时间预留长一些。这不就是超越用户的体验吗?第二个尖叫的地方是开锁快,自己花了半个小时开不了的锁,他只花了不到1分钟就开好了。这给到我们的启发是在互联网时代企业首先要有过硬的产品,其次是足够尖叫的服务。对陈师傅而言,他的手艺就是他最好的产品。&陈师傅成功秘诀的核心就是善于利用互联渠道为自己引流,并用实在的价格和尖叫的服务绑定客户,当客户再需要开锁时第一时间想到的一定是他。据陈师傅介绍,他现在超过50%的客户都是老客户以及老客户介绍。网上推广只是他开发新客户的工具,对他来说推广成本高一些无所谓。而那些第一次生意就漫天要价的因为没有回头客自然就无法支撑高额的推广成本。开锁生意虽小,但如果按一年消费一次也是门大生意。&如此尊重客户,我们还能说陈师傅不懂互联网思维,不懂O2O吗?这不就是最简单的互联网思维和O2O案例吗?&
Linux发现漏洞比“心脏出血”更恐怖(附解决方案)
据国外媒体报道,网络安全专家周三警告称,在Linux系统中广泛使用的Bash软件中发现的一项非常严重的安全漏洞(漏洞参考https://access.redhat.com/security/cve/CVE- ),黑客可以利用该Bash漏洞完全控制目标系统并发起攻击,其对计算机用户造成的威胁可能要超过今年4月爆出的&心脏出血&(Heartbleed)漏洞。&
为了避免您Linux服务器受影响,建议您尽快完成漏洞修补,修复方法如下,请了解!
以下解决方案由阿里云提供:
特别提醒:目前解决办法是Linux官方提供的解决办法,针对此漏洞Linux官方解决办法仍然有可能会被绕过,后续我们会提供较为彻底的解决办法。
【已确认被成功利用的软件及系统】 所有安装GNU bash 版本小于或者等于4.3的Linux操作系统。
【漏洞描述】 该漏洞源于你调用的bash shell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行。
【漏洞检测方法】 漏洞检测命令:env -i X='() { (a)=&\' bash -c 'echo date'; cat echo
修复前 输出: 当前系统时间
使用修补方案修复后 输出 date (备注:输出结果中包含date字符串就修复成功了。)
特别提示:该修复不会有任何影响,如果您的脚本使用以上方式定义环境变量,修复后您的脚本执行会报错。
【建议修补方案 】
请您根据Linux版本选择您需要修复的命令, 为了防止意外情况发生,建议您执行命令前先对Linux服务器系统盘打个快照,如果万一出现升级影响您服务器使用情况,可以通过回滚系统盘快照解决。
centos:(最终解决方案)
yum clean all yum makecache yum -y update bash
ubuntu:(最终解决方案)
apt-get update apt-get -y install --only-upgrade bash
debian:(最终解决方案)
7.5 64bit && 32bit apt-get update apt-get -y install --only-upgrade bash
6.0.x 64bit wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_amd64.deb && dpkg -i bash_4.1-3+deb6u2_amd64.deb
6.0.x 32bit wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_i386.deb && dpkg -i bash_4.1-3+deb6u2_i386.deb
aliyun linux:(最终解决方案)
5.x 64bit wget http://mirrors.aliyun.com/centos/5/updates/x86_64/RPMS/bash-3.2-33.el5_10.4.x86_64.rpm && rpm -Uvh bash-3.2-33.el5_10.4.x86_64.rpm
5.x 32bit wget http://mirrors.aliyun.com/centos/5/updates/i386/RPMS/bash-3.2-33.el5_10.4.i386.rpm && rpm -Uvh bash-3.2-33.el5_10.4.i386.rpm
opensuse:(官方还没有给出最终解决方案,该方案存在被绕过的风险,阿里云会第一时间更新,请继续关注)
13.1 64bit wget http://mirrors.aliyun.com/fix_stuff/bash-4.2-68.4.1.x86_64.rpm && rpm -Uvh bash-4.2-68.4.1.x86_64.rpm
13.1 32bit wget http://mirrors.aliyun.com/fix_stuff/bash-4.2-68.4.1.i586.rpm && rpm -Uvh bash-4.2-68.4.1.i586.rpm&
【i生活】教爸妈上网,你抓狂了吗?
互联网的发展不再只影响年轻人了,越来越多的中老年人也开始融入互联网时代,他们也开始变潮,用上了电脑和智能手机。甚至不少广场舞大妈们都在线看视频学舞蹈了,而一些公园象棋大叔都转战网络博弈了。&但一把年纪的他们要学习起新鲜事物,还是颇为费劲,只好拜儿女们为师。每逢儿女回家过节,他们就紧抓机会,开启&提问&模式。&
可是,教父母上网太难了!&因为父母在电脑和智能手机前常常变身为了&小不懂&,除了学怎么用,好学的他们还要将背后的原理和概念搞清楚。而且&教一遍就会&成了天方夜谭,下次回家,他们会把之前的问题再问一遍。在家教完&上网课程&,你还得负责课后远程辅导,因为他们随时会遇到问题,或忘记步骤,或忘记密码,或转错账,然后着急忙慌地给你打电话求助。正如一名网友所说:&教父母上网&是个痛苦而且需要很多耐心的事。&其实,&教父母上网&这事说难也不难,还可以很有趣,看看大神们都怎么做的。比如这样:&
&把电脑桌面的图标重新命名,充分考虑父母需求,简单易操作,通俗又易懂,值得点赞。&比如这样:
&重庆邮电大学动画专业毕业生张明为让父母学会用微信,手绘了一本7页的使用教程画本。图文并茂,清晰明白,绘本在手,

我要回帖

更多关于 不好意思 英文 的文章

 

随机推荐