- 2017-11-24
lyy96
故事从哪里开始又要从哪里结束呢?有一天你突然离开我声嘶力竭的呼唤你,每一天我都希望那是一场梦,每天吃着安眠药入睡迷迷糊糊醒来时摸摸床边,你依然不在一旁,泪水淋透了睡枕,第二天又要忙碌的工作,带娃,然后就是寻找那一根救命稻草。每天身旁萦绕着苍蝇似的小人,每天那些吸血鬼窥视口袋里仅有的钱,每天刺痛心窝的话像剑般射入。这就是现实这就叫残酷。每天行尸走肉一般。从温柔变成了愤怒,从退缩变成了往前冲,照照镜子
- 2017-11-24
郝鸿涛妈妈
2017.11.24星期五天气晴今天下班回家吃完饭了,看到学习桌上有一张做完了的卷子,问儿子你做完作业了吗?儿子说做完了,出乎我的意料,我以为明天不上学没做作业呢!原来做完了,好我看看做的咋样,看这作业都对了,我问这回自己检查出错的没,他说没有,哇塞,没有错的,这证明是认真做完作业的。值得表扬,我说你要继续这个样子保持下去。
- hold back第二次2017-11-24
曼曼风雨
自己内心演绎了一场撕逼大戏。故事情节一,外表风平浪静,你心仪演绎果1万场戏的某人。抓狂中。故事情节二,刚才又喝了一碗鸡汤,鸡汤有毒,请慎重。故事情节三,今天又浪费了一天,浪费的时间,消耗了激情,仍在逐渐失去的信心。故事情节食,写到这里,感觉自己很逗。很开心。今天的故事到此为止。嗯,跌宕起伏,很有创意。
- 2017-11-24
wyz燕
辛苦了多年,终于过上曾经梦寐以求的生活。可不知道为什么幸福安逸的同时却也很是空虚图片发自App
- 2017-11-24
张倩与译丹
2017.11.24星期五,早上接到女儿,和她商量着今晚做清水丸子吃,因为她是无肉不欢的,炒个芹菜,蘑菇,蒸的地瓜芋头,闺女吃了慢慢两碗肉丸子,吃饱后主动收拾碗筷,擦桌子,之后去学习了,看到女儿越来越听话,感到无比欣慰,内心真的很满足。
- 2017-11-24 课程总结
柴海龙
11月23日第13天群内职务:5组组长柴龙星主持人:陈庚分享者:柴龙星李巧荔潘清华陈孝海1.课程总结:首先为其他三位分享组长点赞,你们太棒了!连续一个半月的自我突破,从学员到组长,我们收获了太多太多,我从一个不敢大声说话的内向性格突破成为有激情有担当的人,我真的感谢“唤醒”这个课堂,感恩所有教练的指导以及学员的见证,是你们的热情一直感染激励着我,我会一直向前,让更多的人通过这个课程而受益。2.成长
- 2017-11-24
我是切的信徒
常自我哄骗也替你辛苦找借口如全没有介意却暗孤单饮心里苦酒明知将分手但若人未开口我都会一再当我通通都拥有我诈不知不须再过多久你会走尚当我拥有
- 2017-11-24
星星明月和纯真
在这个不公平的世界,我要求你必须更努力更努力,把这些不幸的孩子装在心里,带上他们的愿望上路,必须要图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App
- 2017-11-24
吴莹的平方
看清楚这个世界,并不能让这个世界变得更好。但可能让你在看清楚这个世界是个怎样的世界后,把自己变得很好。——朱德庸凡是想获得成功的人,都应该异常谨慎地珍惜和支配自己的时间。尊敬一事无成的自己,就能有改变现实的力量。决不可妄自菲薄。那样无异于将自己的行为与思想五花大绑。一切从尊敬自己开始。尊敬毫无经验的自己,尊敬一无所成的自己,将自己当个人看。只要你尊敬自己,便会无法作恶,便会无法做出不配为人的轻蔑举
- 2017-11-24
郑宇雅芯妈
20171124星期五睛今天的阳光明媚,但早晚温差较大,本可以照照太阳,但因没做够产量被通知五点下班,顿时大家的心情都掉入了低谷,但没办法,服从就是我们公司的最好诠释,反正这周也不能去练车,迟点下班也没事,今天师傅又发通知学费2600了,真是不可预料。看着路边的小花都那么积极的开起,她想做好自己就好,不用和温室里的花朵比。
- 2017-11-24
叫我泷
那个男人浑黄的眼接过孩子的手,牵着孩子迎着雾霾行着,这男人好高,孩子仰着头也看不到他的脸。行了好长一路,霾淡了些,男人停下,他还是看得清红绿灯的。低头瞅了眼身边的孩子,刚要去摸摸孩子的头,孩子却率先拽着男人的手走了,绿灯了。男人往回拉了拉孩子,他先行,似乎这样显得他有在乎这个孩子。孩子走到好慢,极不情愿的被男人拖拽。
- 2017-11-24
他的猫5052
图片发自App我不知道減肥與我而言意味著什麼?變瘦?變美?貌似都不貼合。我覺得我像是把這次目標變成眼前的一座高山,我想去攀爬,我想去征程。最後把它征服在我的腳下。風輕雲淡的朝山的對面說一句:“嗨!好久不見。”
- 2017-11-24
好燃先生turbo
我叫耳安,这个姓真的很少见。所有认识我的人都很惊讶,竟然还有这么奇怪的姓氏。以至于我自己也觉得很新奇,尤其是在过春节的时候,面对一大家子的耳氏。我有时会想,那是不是还会有人姓鼻,眼,嘴……我们若是能凑到一起该有多欢乐。但是姓氏新奇的坏处就是,从幼儿园开始,老师就会专挑这个新奇的姓来点名,就像老师几乎不会点名字中有自己不认识的字的同学。我的好朋友牟垚就从不担心自己会被老师经常叫起来。因为任这两个字,
- 2017-11-24
皇逸猫
在外界是个很开朗的人可是到了晚上就会变得很压抑,是别人眼中的开心果一句话就能把人笑死但是其实并没有很好的朋友,从前曾经有说好要相伴一生的友人伴左右,而渐渐的彼此不满彼此,于是渐行渐远。看着朋友圈里别人的照片反映别人的生活,奇怪自己为什么没办法和别人一样,这样的情感总是反复出现,终于在某个瞬间发现:每个人在世界上都有属于自己的定位,不管人与人之间的关系围起来的圈子有多大,我永远是那个圈外人,我一直都
- 10月支付机构交易量数据爆光,瑞银信-拉卡拉-海科等月交易量超千亿
胡笑宁
2017-11-24笑宁商学院图片发自App日前网络上流传出一张2017年10月份支付机构清算数据统计表。暂时无法核实其真实性,但从我们对行业的了解大概预估一下各家的交易量数据上来看,图中的数据颇具真实性。不管咋样,给大家做个参考吧。如有正规渠道有异议可发邮件给我们方便核实更正。表中体现的主要是2017年10月份的交易量排名。按照交易量排名来看:月交易量千亿以上银联商务:2017年10月交易量57
- 方智群 | 温柔弩箭
方智群
《温柔弩箭》文|方智群杳。18:36坐井。观天有明月照到18:37分沟渠你怎么看?在天不生仲尼万古如长夜中开除这一分钟。D9962车次。动车组内严禁吸烟,老烟民关闭此生幸存乐趣。瓶中孔雀。瞎鬼走。冷空气扎脖,信不信被怼死有屌毛情绪待缓慢释放。前方到站女儿靶。归心参考时速在204km/h上下误差不计。控制我像一支温柔弩箭。2017-11-24
- 2017-11-24
无可奈何仍坚持
人就是精神的存在,我坚信,不然真的就是死了没埋了,我要去抗争,我的灵魂是强大的,小的时候是自然,长大了就是一种选择,就像善良一样,坚信的东西一定要坚信下去,好好在这个地球游乐场玩耍吧。
- aria2 及 DLNA 服务 Docker 部署 -(2)
asmoker
字节流的博客aria2及DLNA服务Docker部署-(2)2017-11-24|dockerhttps://blog.smoker.cc/docker/dockerized-aria2-deploy-2.html图片来自:https://wearelocalworks.org/wp-content/uploads/2016/12/seeds.jpg接上一篇继续说,前面搭好了aria2的服务,并且
- 开口说的你,英语差不了
米大max
原创2017-11-24球妈微信公众号:米大MAX今天英语群里的一个老师提了两个问题:自家娃要出国学习,问哪家雅思培训机构靠谱点?还有为什么我们中国孩子雅思口语考试全球倒数第一?有人适时补刀,发了张托福口语考试成绩,我们在亚洲的排名.....托福考试排名很多老师质疑为什么连印度的咖喱英语都排在我们前面!几周前,赵丽颖因为英语口音重被骂上热搜。也是这个群,很多英语老师说,以后我们这样鼓励孩子:你们不
- 2017-11-24
大评呱蛇毒追风液
时间过得真快,一转眼。90天计划又过去了一个多月。也快要结束了记得老师布置的作业是每一周都要写。可是我却觉得自己脑袋一片空白。也不是说不想写,就是感觉没事情,可写!于是就在这一周,我突然学会了反思,我觉得如果不逼自己一把,血检书的话,那么我学口才又为的是什么呢?所以就算脑袋一片空白,我也要逼自己。把它写完,这周的感悟就是,自从参加了新梦想之后,思维或是形象气质各方面感觉都和以前不一样了,首先是思维
- 2017-11-24
爱中医的丫头
丫头90天践行作业11/24/2017爱中医的丫头90天目标1.每天看半小时倪海厦讲神农本草经视频,并做笔记(拍照为证)(周末休息)2.每日完成轻而易举的富足功课:分为三部分:每日导读,文章大意概括,每日五条奇迹分享。3.PPT课程上完后跟班级践行,输出作业。作业完成情况一.本草图片发自App图片发自App二.轻而易举的富足1.每日导读图片发自App2.文章大意图片发自App3.每日奇迹分享A.学
- 2017-11-24
牧羊云2
心情时而巅峰,时而低谷,总是想起很多事,很多久远的或是正在发生的,唯独想不清楚以后的。想要离开微博一段时间。最近总爱仰起头,看见头顶排气的各种管道暗箱,就想自己可否爬进去,钻进里面的世界再也不出来。一个人的缺失会带给我这么巨大的失落感,我不知道这种状况还会持续多久。她走了,他也走了…也许我有很多性格缺陷需要慢慢去改,你们可否慢些走
- 2017-11-24
我心安住
图片发自App#玩卡不卡·每日一抽#每一位都可以通过这张卡片觉察自己:1、直觉他叫什么名字?保罗2、他几岁了?403、他现在是什么状态?很平和4、他有什么愿望吗?做个普通人5、他有话跟你讲吗?有6、如果有,讲什么?你不是完美的7、如果用一个词来形容他,你会说他什么?和蔼可亲8、这张牌和我有什么联系?像我初中的历史老师
- 2017-11-24
牛牛jeannine
一阵秋风吹来,一个个苹果红了,一串串葡萄紫了,树叶黄了……金黄色的树叶像一只只优雅的蝴蝶飘落下来。有的小朋友跑去捡起一片树叶,准备拿回家把它做成漂亮的标本。有的小朋友捡了很多树叶,他们准备用五彩缤纷的树叶拼凑成精彩的树叶画。还有的小朋友把柳条编成环,然后,在花环上插上落叶,做成特别的树叶花环。小朋友玩得可开心了。在果园里,小明和爸爸妈妈正采摘水果。小明收下架子上晶莹透亮的葡萄。爸爸妈妈从树上摘下一
- 2017-11-24
拂袖三叩首
回到家就空落落的在这里住了两个月他几乎每天都陪在我身边只要回到家就能看见他的笑容中午他回去了房间里安静的让人难受他在这的时候我回家都是脚下带风迫不及待虽然两个月我们天天腻在一起可就是爱不够再多的时间也不够九年了也不觉得久
- 2017-11-24
禾颜越瑟
春城的冬天,总是带着无限的萧瑟,孤独得可怜的人,在寒冷的冬天里想方设法地温暖内心,可惜最终都是徒劳无功。图片发自App
- 2017-11-24
轻风_a836
问冬(五律)作者轻风冬深犹盼雪,白草戏寒风。未见冰河冻,但留短日红。北山一岭败,墙角数梅清。问柳何时绿,春来万物生。
- 2017-11-24
琼觞何渡
真心不知道,语言构造了这个星球的文明,宗教,帝国,法则,科学过百年的沉淀,至流传至今,是好是坏...真想知道数百万年前的祖先会不会也会有如今人类的诸多烦恼,若没有这数百万年的演化,我们是不是也可以活的简单点,显然怎么想都是空想,已成现实,有时候也在想,自己的所作所为是不是自己所愿,是不是,大脑中百万年演进下的基因分子在使控自己,好比醉酒后,酒精麻痹神经,心里醉酒前看待某件问题与醉酒后截然相反.有时
- 2017-11-24 几天没好好睡了
如如的简书
如如这几天不舒服,晚上又吐了一次,之前吃的一点粥吐了。有可能是因为我给吃了一丁点糖的原因吧,也可能不是。在念牙齿大街的故事,哈克有个百宝箱,里面全是糖,如如说哭闹要吃糖,我就给了,一点点。后来却吐了,唉。昨天晚上因为爸爸的情绪,如如不愿意睡大屋。很晚才睡,吐了后又没喝水也没吃药,所以我也没睡,调药没吃,后来喝了点奶粉。半夜醒了不好好睡,再抱,早上不好好睡,要抱。真的很烦很烦,其实想想,并不是如如带
- 2017-11-24
蝶梦璃疏
图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App
- rust的指针作为函数返回值是直接传递,还是先销毁后创建?
wudixiaotie
返回值
这是我自己想到的问题,结果去知呼提问,还没等别人回答, 我自己就想到方法实验了。。
fn main() {
let mut a = 34;
println!("a's addr:{:p}", &a);
let p = &mut a;
println!("p's addr:{:p}", &a
- java编程思想 -- 数据的初始化
百合不是茶
java数据的初始化
1.使用构造器确保数据初始化
/*
*在ReckInitDemo类中创建Reck的对象
*/
public class ReckInitDemo {
public static void main(String[] args) {
//创建Reck对象
new Reck();
}
}
- [航天与宇宙]为什么发射和回收航天器有档期
comsci
地球的大气层中有一个时空屏蔽层,这个层次会不定时的出现,如果该时空屏蔽层出现,那么将导致外层空间进入的任何物体被摧毁,而从地面发射到太空的飞船也将被摧毁...
所以,航天发射和飞船回收都需要等待这个时空屏蔽层消失之后,再进行
&
- linux下批量替换文件内容
商人shang
linux替换
1、网络上现成的资料
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admi
- 网页在线天气预报
oloz
天气预报
网页在线调用天气预报
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transit
- SpringMVC和Struts2比较
杨白白
springMVC
1. 入口
spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
参见:http://blog.csdn.net/zs15932616453/article/details/8832343
2
- refuse copy, lazy girl!
小桔子
copy
妹妹坐船头啊啊啊啊!都打算一点点琢磨呢。文字编辑也写了基本功能了。。今天查资料,结果查到了人家写得完完整整的。我清楚的认识到:
1.那是我自己觉得写不出的高度
2.如果直接拿来用,很快就能解决问题
3.然后就是抄咩~~
4.肿么可以这样子,都不想写了今儿个,留着作参考吧!拒绝大抄特抄,慢慢一点点写!
- apache与php整合
aichenglong
php apache web
一 apache web服务器
1 apeche web服务器的安装
1)下载Apache web服务器
2)配置域名(如果需要使用要在DNS上注册)
3)测试安装访问http://localhost/验证是否安装成功
2 apache管理
1)service.msc进行图形化管理
2)命令管理,配
- Maven常用内置变量
AILIKES
maven
Built-in properties
${basedir} represents the directory containing pom.xml
${version} equivalent to ${project.version} (deprecated: ${pom.version})
Pom/Project properties
Al
- java的类和对象
百合不是茶
JAVA面向对象 类 对象
java中的类:
java是面向对象的语言,解决问题的核心就是将问题看成是一个类,使用类来解决
java使用 class 类名 来创建类 ,在Java中类名要求和构造方法,Java的文件名是一样的
创建一个A类:
class A{
}
java中的类:将某两个事物有联系的属性包装在一个类中,再通
- JS控制页面输入框为只读
bijian1013
JavaScript
在WEB应用开发当中,增、删除、改、查功能必不可少,为了减少以后维护的工作量,我们一般都只做一份页面,通过传入的参数控制其是新增、修改或者查看。而修改时需将待修改的信息从后台取到并显示出来,实际上就是查看的过程,唯一的区别是修改时,页面上所有的信息能修改,而查看页面上的信息不能修改。因此完全可以将其合并,但通过前端JS将查看页面的所有信息控制为只读,在信息量非常大时,就比较麻烦。
- AngularJS与服务器交互
bijian1013
JavaScriptAngularJS$http
对于AJAX应用(使用XMLHttpRequests)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用、发起请求、读取响应、检查状态码,最后处理服务端的响应。整个过程示例如下:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange
- [Maven学习笔记八]Maven常用插件应用
bit1129
maven
常用插件及其用法位于:http://maven.apache.org/plugins/
1. Jetty server plugin
2. Dependency copy plugin
3. Surefire Test plugin
4. Uber jar plugin
1. Jetty Pl
- 【Hive六】Hive用户自定义函数(UDF)
bit1129
自定义函数
1. 什么是Hive UDF
Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:
文件格式:Text File,Sequence File
内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text
用户提供的 map/reduce 脚本:不管什么
- 杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
ronin47
nginx 重启 pid丢失
nginx进程被意外关闭,使用nginx -s reload重启时报如下错误:nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory)这是因为nginx进程被杀死后pid丢失了,下一次再开启nginx -s reload时无法启动解决办法:nginx -s reload 只是用来告诉运行中的ng
- UI设计中我们为什么需要设计动效
brotherlamp
UIui教程ui视频ui资料ui自学
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用你的产品。
- Spring中JdbcDaoSupport的DataSource注入问题
bylijinnan
javaspring
参考以下两篇文章:
http://www.mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/
http://stackoverflow.com/questions/4762229/spring-ldap-invoking-setter-methods-in-beans-configuration
Sprin
- 数据库连接池的工作原理
chicony
数据库连接池
随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动 态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查 询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对
- java 关键字
CrazyMizzz
java
关键字是事先定义的,有特别意义的标识符,有时又叫保留字。对于保留字,用户只能按照系统规定的方式使用,不能自行定义。
Java中的关键字按功能主要可以分为以下几类:
(1)访问修饰符
public,private,protected
p
- Hive中的排序语法
daizj
排序hiveorder byDISTRIBUTE BYsort by
Hive中的排序语法 2014.06.22 ORDER BY
hive中的ORDER BY语句和关系数据库中的sql语法相似。他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间。
与数据库中 ORDER BY 的区别在于在hive.mapred.mode = strict模式下,必须指定 limit 否则执行会报错。
- 单态设计模式
dcj3sjt126com
设计模式
单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。
<?phpclass Example{ // 保存类实例在此属性中 private static&
- svn locked
dcj3sjt126com
Lock
post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\xx\xxx' locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a
- ARM寄存器学习
e200702084
数据结构C++cC#F#
无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。
ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。
1、不分组寄存器(R0-R7)
不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理器模式使用一个名字相同的物理寄存器,就是
- 常用编码资料
gengzg
编码
List<UserInfo> list=GetUserS.GetUserList(11);
String json=JSON.toJSONString(list);
HashMap<Object,Object> hs=new HashMap<Object, Object>();
for(int i=0;i<10;i++)
{
- 进程 vs. 线程
hongtoushizi
线程linux进程
我们介绍了多进程和多线程,这是实现多任务最常用的两种方式。现在,我们来讨论一下这两种方式的优缺点。
首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。
如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker。
如果用多线程实现
- Linux定时Job:crontab -e 与 /etc/crontab 的区别
Josh_Persistence
linuxcrontab
一、linux中的crotab中的指定的时间只有5个部分:* * * * *
分别表示:分钟,小时,日,月,星期,具体说来:
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几,0代表星期日 0—6
如:
*/1 * * * * 每分钟执行一次。
*
- KMP算法详解
hm4123660
数据结构C++算法字符串KMP
字符串模式匹配我们相信大家都有遇过,然而我们也习惯用简单匹配法(即Brute-Force算法),其基本思路就是一个个逐一对比下去,这也是我们大家熟知的方法,然而这种算法的效率并不高,但利于理解。
假设主串s="ababcabcacbab",模式串为t="
- 枚举类型的单例模式
zhb8015
单例模式
E.编写一个包含单个元素的枚举类型[极推荐]。代码如下:
public enum MaYun {himself; //定义一个枚举的元素,就代表MaYun的一个实例private String anotherField;MaYun() {//MaYun诞生要做的事情//这个方法也可以去掉。将构造时候需要做的事情放在instance赋值的时候:/** himself = MaYun() {*
- Kafka+Storm+HDFS
ssydxa219
storm
cd /myhome/usr/stormbin/storm nimbus &bin/storm supervisor &bin/storm ui &Kafka+Storm+HDFS整合实践kafka_2.9.2-0.8.1.1.tgzapache-storm-0.9.2-incubating.tar.gzKafka安装配置我们使用3台机器搭建Kafk
- Java获取本地服务器的IP
中华好儿孙
javaWeb获取服务器ip地址
System.out.println("getRequestURL:"+request.getRequestURL());
System.out.println("getLocalAddr:"+request.getLocalAddr());
System.out.println("getLocalPort:&quo