Register

  • 点击获取
  •   

已有账号直接登录    

公告:

热门文章 Navicat Premium 12 绿色免激活版本(附上下载链接)

时间:2024-1-3 作者:RainFly   分类: 软件分享   热度: 2468°  评论:0  
时间:2024-1-3   分类: 软件分享    热度:2468   评论:0
简介:Navicat Premium是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。Navicat Premium与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。你可以快速轻松地创建、管理和维护数据库。

热门文章 阿里巴巴Java 开发手册嵩山版,每个程序员都应该熟读百遍(附下载链接)

时间:2024-1-3 作者:RainFly   分类: Java   热度: 1516°  评论:0  
时间:2024-1-3   分类: Java    热度:1516   评论:0

    阿里巴巴Java开发手册是由阿里巴巴集团编写的一份规范文档,旨在提供一套统一的编码规范和最佳实践,以帮助Java开发人员提高代码质量和开发效率。     阿里巴巴Java开发手册嵩山版包含了丰富的内容,涵盖了Java语言的各个方面,例如命名规范、代码格式、注释规范、异常处理、并发编程、数据库访问等。每一条规范都是由阿里巴巴团队经过实践总结得出的,具有较高的权威性和参考价值。 为什么说每个程序员都应该熟读百遍呢? 首先,阅读阿里巴巴Java开发手册可以帮助我们更好地理解Java编码规范和最佳实践,提高我们自己的编码能力。通过遵循规范,我们可以编写出更加规范、清晰、易读的代码,减少因代码质量不佳而引发的问题和bug。 其次,阿里巴巴Java开发手册嵩山版是由阿里巴巴集团编写的,代表着业界的标准和经验。阿里巴巴作为中国最大的互联网公司之一,具有丰富的技术积累和实践经验。阅读阿里巴巴Java开发手册可以借鉴他们在项目开发中遇到的问题和解决方案,提升我们的开发水平和问题解决能力。    阿里巴巴Java开发手册嵩山版是一本不断更新的文档。随着Java技术的发展和变化,编码规范和最佳实践也在不断演进。每隔一段时间,阿里巴巴都会发布新的版本,更新其中的内容。因此,多次阅读可以使我们及时了解到最新的编码规范和最佳实践,保持自己的知识与时俱进。 综上所述,阿里巴巴Java开发手册嵩山版对于每个Java程序员来说,是一本必读的参考书。通过反复阅读和实践,我们可以提高自己的编码能力和开发水平,写出更加高质量的代码。

来源:阿里云盘  | 大小:MB  | 提取密码: | 解压密码:www.rainfly.cn 已经过安全软件检测无毒,请您放心下载。          若链接失效可联系管理员!

热门文章 PL/SQL使用教程及注意事项(附上破解版下载地址+汉化包)

时间:2024-1-5 作者:RainFly   分类:   热度: 1606°  评论:1  
时间:2024-1-5   分类:    热度:1606   评论:1

1. 下载 PL/SQL 工具

2.解压并安装对应工具

3. 注册激活工具 (利用附件中的汉化工具)

4.新增链接实例

5. 设置编辑器显示字体,为了看起来舒服点。

7. 相关工具使用

来源:阿里云盘  | 大小:MB  | 提取密码:if54 | 解压密码:www.rainfly.cn 已经过安全软件检测无毒,请您放心下载。          若链接失效可联系管理员!

热门文章 谈谈mysql和oracle的使用感受 -- 差异

时间:2024-1-5 作者:RainFly   分类: 数据库设计   热度: 1395°  评论:0  
时间:2024-1-5   分类: 数据库设计    热度:1395   评论:0

    之前一直使用mysql作为存储数据库,虽然中间偶尔使用sqlite作为本地数据库存储,hive作为简单查询工具,maxcompute作为大数据查询服务等等,但没有感觉多少差别。事实上,我们往往听说SQL-92标准之类的云云!

后来遇上了oracle,且以其作为主要存储,这下就不得不好好了解其东西了。oracle作为商业数据库里的佼佼者,肯定有其过人之处的。oracle与mysql同样是sql类数据库,大体上是差不多的,我是指crud大体流程。

但细节总是不一样的,尤其是有些老梗值得一提。本文从使用者的角度来说说感受,希望可以帮助大家快速了解其大致差异以提供一份简单避坑手册,并无其他意思哟。(理解上也并不深入)

1. 自增主键

mysql中要使用自增主键非常方便,只需要在建表时增加 auto_increment 关键字即可,样例如下:

create table tb1 (id int(11) unsigned not null auto_increment);

而在oracle中则不一样了,它需要使用另一个概念:序列号;我们可以简单将其理解为只有一个列的表,这个表提供了 nextval 的方法,辅助我们生成自增id,样例如下:

-- 1. 建普通表 create table tb1(id number not null); -- 2. 创建序列,参数比较多,自行查阅资料 create sequence seq_tb1 increment by 1 start with 1 minvalue 1 maxvalue 999999999 -- 3. 插入使用 insert into tb1 (id) values (seq_tb1.nextval)

可以看到,oracle的操作明显多了许多。当然了,自增这个属性,在许多数据库中确实也是不提供的,尤其是分布式数据库递增更难做。所以,要支持这功能,绕路也就在所难免了。

2. 创建索引

索引的目的自然是为了提高查询效率,mysql中想要添加索引可以在建表时操作,也可以在后期更改;样例如下:

-- 1. 建表时指定 create table tb1 (username varchar(50), index username (username)); -- 2. 后期更改 alter table tb1 add index username (usrrname);

 

而在oracle中则不一样,它只能在建表完成之后操作;样例如下:

CREATE INDEX tb1_username ON tb1(username);

看起来差异不大,但oracle的索引是全局的,即所有表的索引名都不能重复,比如大家都有id索引,但却不能都叫id。另外,oracle建表时,无法做到一步到位。实际上需要n步:建表sql + n个注释sql + 主键sql + n个索引sql + 建序列号sql + 。。。 总之,会让你醉了!

3. 字段表注释

我们建一张表时,肯定都需要注释的,否则过两天连我们自己都不认识其含义了。mysql中在建表或增加字段时直接指定,样例如下:

-- 1. 建表时指定 create table tb1(username varchar(50) comment '用户名标识') comment '测试建表'; -- 2. 修改表结构时指定 alter table tb1 add column nickname varchar (100) '昵称';

 

而oracle中则不太一样,它只能在建表之后和创建字段之后才能进行注释;样例如下:

-- 表注释 comment on table tb1 is '测试建表'; -- 字段注释 comment on tb1.username is '用户名称标识'; -- 删除表注释,置空 -- 删除列注释,置空

我不是说它这设计不好,但是就感觉太烦了。

4. 分页实现

分页一般用于列表数据多页显示,或取总数中的几条数据使用。mysql中的分页,使用limit,这也是大多数数据库的选择,样例如下:

select username from tb1 limit 50, 100;

 

而在oracle中则不太一样,它使用行号去定位记录,一般需要使用嵌套子查询;样例如下:

select * from (select t.*,rownum num from tb1 t where rownum<=100 ) where num>50

性能比limit怎么样我不清楚,反正是写得挺烦的。

 

5. 查询执行计划

查询执行计划,可以看出哪些语句是需要优化的,这个工作实际上还是比较专业的。但如果想简单看看情况,mysql中可以这样做:

explain select * from tb1 where username='xx' order by id limit 10;

而oracle中要查看执行计划,则需要借助工具或者自己写,样例如下:

-- 1. 执行查询执行计划语句 explain plan for select * from tb1 where username='xx'; -- 2. 查看执行计划结果 select * from table(dbms_xplan.display());

oracle还有其他许多种查看执行计划的方式,就不列举了。也没啥好坏之分,能查看就行。

 

6. 客户端可视化工具

这个简单说说,mysql有很多工具,sqlyog,navicat,mysqlworkbench。。。

oracle也有很多,plsql,navicat。。。

而具体操作上的差异则根据客户端工具的差异来,无可厚非。

7. 对超长文本的处理

mysql中对超长文本使用text和longtext类型进行处理,和其他字段并没有太多差别(不能建有效索引除外)

而oracle中则使用CLOB类型进行存储超长字符,但它有许多限制,普通查询无法显示clob,分号限制等等。但它可以容纳上G的数据。

       可能更多需要考虑存储结构异样等问题吧!

 

8. 日期字段查询

都支持date,timestamp等日期数据类型。

mysql支持直接使用字符串日期进行条件过滤,默认格式为:yyyy-MM-dd HH:ii:ss 比如:

select * from tb1 where dt>'2020-09-13 12:15:01';

 

而oracle则要求严格些,要求必须都是日期老式string格式才能比较;

select * from tb1 where dt>to_date('2020-09-13 12:15:01', 'yyyy-MM-dd hi24:mi:ss');

虽然加这么个格式东西也不复杂,但总感觉不爽。毕竟,90%以上情况,我只要这种格式能查就行,多让写这么多字符串,简直是罪过啊。。。

 

9. 修改字段类型

有时候表字段用着用着就跑偏了,需要换一种存储类型,所以改数据类型。mysql中修改字段类型,直接改就好,但有可能失败。

alter table tb1 change column f1_old f1_new int(11) comment 'xxx';

而oracle中则分情况处理,空字段直接改,不允许修改有值字段类型,如果硬要改那就相当麻烦,如下:

-- 空字段类型修改,可任意修改 alter table tb1 modify (f1_old number); -- 非空字段类型修改,分类型匹配与不匹配情况 -- 如果类型匹配,可直接改,如nchar(20) -> nvarchar(20) -- 否则不允许修改,只能主动新建字段替换回来,关键是不一定能成功 alter table tb1 rename column name to name_tmp; /*增加一个和原字段名同名的字段name*/ alter table tb1 add name varchar2(40); /*将原字段name_tmp数据更新到增加的字段name,可算可能失败*/ update tb1 set name=trim(name_tmp); /*更新完,删除原字段name_tmp*/ alter table tb1 drop column name_tmp;

很显然,oracle的做法更严谨,不允许更改字段名称,改类型必须保证正确;哎,但总感觉不爽;

 

10. group by 聚合

group by可以按照某字段去重一些数据,并按需要聚合数据,mysql与oracle都差不多,差别点在于oracle不允许返回group by外的其他字段(或者说不能准确描述的字段),而mysql则会随机返回一个group by的字段值。mysql如下:

select username, avg(score), grade from tb1 group by grade;

oracle中则要求必须确定某值:

select max(username), avg(score), grade from tb1 group by grade;

看起来oracle是更严谨一些的。

 

11. 分区表创建

分区表的目的,在于提高查询速度和方便隔离管理。

mysql 创建分区表,Mysql不能自动创建分区,且要求分区字段必须是主键的一部分,如果想自动创建分区,需要使用mysql event事件的方式自动创建分区. 样例如下:

create table tb1 ( id int(11), day datetime not null prmary key (id, day) ) PARTITION BY RANGE (TO_SECONDS(day)) (PARTITION p20200912 VALUES LESS THAN (TO_SECONDS('20200912')) ENGINE = InnoDB, PARTITION p20200913 VALUES LESS THAN (TO_SECONDS('20200913')) ENGINE = InnoDB);

 

oracle 中创建分区表

create table tb1 ( id NUMBER(20) not null, create_time DATE ) PARTITION BY RANGE (CREATE_TIME) INTERVAL (NUMTODSINTERVAL(1, 'day')) (partition part_t01 values less than(to_date('2020-09-12', 'yyyy-mm-dd')));

明显 oracle 支持得更好些呢。

12. with as 用法

在做一些大型数据数据分析sql时,with as sql 非常有用,在mysql低版本中是不支持的,只能自己写临时表进行处理。

而oracle则支持该通用语法:

with a as ( select * from tb1 where dt = '20200912' ), b as ( select * from tb2 where dt = '20200912' ) select a.id aid, b.id bid from a join b on a.pid = b.id;

 

13. 事务支持

在rdb中,通常事务是指对一批操作的原子性,一致性,隔离性,持久性的体现(ACID)。大体上mysql与oracle表现是一致的。

mysql是分存储引擎,如innodb,myisam,每个引擎的事务支持能力不同,原则不同,锁实现不同,如innodb锁行,而myisam 锁表等。

oracle 中在建表时就可以指定事务槽数

-- 建表时指定事务槽数 create table t3 (id int, num int ) INITRANS 6; -- 创建索引时指定事务槽数 create unique index tb1_username_idx on tb1 (username) initrans 6;

 

14. 进程信息查询

查询正在运行的任务情况,可用于查询慢查询的利器。

mysql 中 直接使用 show full processlist 即可;但带条件的查询需要查表:

show full processlist; select * from information_schema.`PROCESSLIST` where duration > 5;

 

oracle 进程信息:

SELECT b.sid oracleID, b.username Oracle用户, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value;

反正我是记不住这么长的sql的。

 

15. 数据同步

mysql 中使用 binlog 可以方便的将数据同步到其他地方;

oracle, 好像很复杂的样子, 待研究。

16. 其他

     实际上还有其他许多差别,比如查看表结构:mysql中只需show create table tb1,面oracle中则是select  dbms_metadata.get_ddl(table, 'tb1') from dual;  Oracle 某些场合大小写敏感,单双引号含义不一致等等。

      张三总是不等于李四的,我们允许不一样的声音,哈哈 。。。

最后,给几个出乎意料的oracle 空判定样例,供君娱乐:

-- 以下都不会返回true select 1 null_judge from dual where '' is not null and '' != '' select 1 null_judge from dual where 'abc' is not null and 'abc' != '' select 1 null_judge from dual where '' is not null -- 以下都会返回true select 1 null_judge from dual where '' is null select 1 null_judge from dual where null is null

热门文章 Oracle 安装与使用(一)

时间:2024-1-4 作者:RainFly   分类: 数据库设计   热度: 1280°  评论:0  
时间:2024-1-4   分类: 数据库设计    热度:1280   评论:0

1。打开网盘下载以下资料:按照【Oracle 经典教程】进行安装 Oarcel 文档

2. 安装完成后打开配置工具进行配置。

配置连接出错,

Oracle错误:ORA-12541 TNS无监听程序 - MySQL

要注意的时: 服务已经启动了 (检查服务启动方法)

lsnrctl status 参考地址 https://blog.csdn.net/JfpBlockchain/article/details/133619697

最终发现是,地址配置错误的问题 配置成localhost 本地

D:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN

ORA-12541: TNSno listener  连接报错

修改为配置localhost 则 navicat 12 正常连接   

来源:https://www.alipan.com/s/mYZFSgzfqV6  | 大小:MB  | 提取密码: | 解压密码:www.rainfly.cn 已经过安全软件检测无毒,请您放心下载。          若链接失效可联系管理员!

热门文章 联想拯救者R720安装黑苹果

时间:2022-7-30 作者:RainFly   分类: 计算机知识   热度: 4797°  评论:2  
时间:2022-7-30   分类: 计算机知识    热度:4797   评论:2
联想拯救者R720安装黑苹果

 CPU  核心显卡 Intel HD Graphics 630 2048 MB  独立显卡1050TI  蓝牙  声卡(支持HDMI音频输出)  WiFi  HDMI  睡眠唤醒 (HDMI外接显示器睡眠唤醒失效,需要热插拔)  隔空投送 安装前小知识

EFI系统分区 : 支持EFI模式的电脑需要从 ESP 启动系统,EFI固件可从ESP加载EFI启动程序或者应用。ESP是系统引导分区。

简而言之: 就是引导系统的一段汇编指令代码。

引导程序:

变色龙

Clover(四叶草)

[OpenCore](OpenCore Install Guide)

Windows PE

主要是用OpenCore 引导系统 。

一、基本参数:

CPU: I5-7300HQ

核心显卡: HD630

独立显卡 N1050Ti

MacOS : macOS Monterey 12.4

OpenCore:0.8.0

二、安装步骤: a)教程及相关资源:

新手挑战黑苹果-超详细的OpenCore黑苹果安装教程

视频下面参考资源地址:

1、macOS镜像下载:黑果小兵的部落阁 2、启动盘制作工具balenaEtcher下载:https://www.balena.io/etcher/ 3、OpenCore下载:https://github.com/acidanthera/OpenCorePkg/releases 4、OpenCore驱动下载:Gathering files | OpenCore Install Guide 5、OpenCore编辑器:Releases · ic005k/OCAuxiliaryTools · GitHub 6、OpenCore排错:https://opencore.slowgeek.com/ 7、磁盘精灵:数据恢复软件,硬盘分区工具,系统备份软件 - DiskGenius官方网站

黑果小兵的DMG镜像下载要注意使用以下这个版本

macOS Monterey 12.4 21F79 Installer for OpenCore 0.8.0 and CLOVER 5142 and FirPE.dmg

b) 参考EFI

EFI/1.zip

EFI/2.zip

参考上述两个大佬的EFI, 拿到1 进行引导启动安装都可以正常进入系统, 注意 三个分区选择openCore 启动引导 , 但是进入系统后 发现 蓝牙 WIFI HDMI外接 全部无法驱动。

c) 解决相关上述缺陷

WiFi 和蓝牙主要参考

关于在macOS 12 Monterey上驱动Intel网卡、蓝牙_华米OV的博客-CSDN博客_黑苹果intel蓝牙驱动

上述示例中主要注明 12系统中 可以提供多种驱动合集。 主要是引入以下两个驱动

显卡HDMI 驱动异常主要参考一下:

i7-9700k,UHD630核显,HDMI接口,usb3.0,成功黑苹果!-远景论坛-微软极客社区

自动更新关闭,并取消红点

如何取消Mac的小红点和忽略版本升级?

EFI 资源地址:

https://github.com/Rain-Fly/Lenovo-R720-MaoOs-OpenCore

热门文章 升级IDEA后Lombok失效

时间:2022-7-25 作者:RainFly   分类: Java   热度: 2470°  评论:1  
时间:2022-7-25   分类: Java    热度:2470   评论:1

搜索一番,是由于IDEA版本导致的Lombok失效,不过这个问题后来解决了。 所以,我们只需要更新lombok版本,使用1.18.14及之后的版本即可:

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.14</version> <scope>provided</scope> </dependency>

IDEA 插件 正常安装,需要升级 Lombok 版本 

参考 链接: https://blog.csdn.net/chinaherolts2008/article/details/118711313

热门文章 你们公司的 CTO(技术总监)平时都在做些什么?

时间:2022-6-16 作者:RainFly   分类: 生活哲理   热度: 2529°  评论:0  
时间:2022-6-16   分类: 生活哲理    热度:2529   评论:0

一. 创业初期

       在创业初期,我是那个亲手做东西的人,而且全面负责,从理论到实现,从加工到调试,什么要做做什么,什么不会学什么。第一代原型机就是在我手上诞生的。那时候我非常兴奋,每天睡4-6个小时,不用闹钟,是兴奋醒的。

我既是技术副总,又是技术总监,又是部门主管,又是一线员工。

二. 小团队

后来,招了几个人,就有了分工。

我给结构工程师讲了我的想法,让他去实现,他画好了给我看,我定稿。 告诉电路工程师仪器原理,让他改进我的电路,我帮他把关。 告诉软件工程师我想要什么样的功能,我设计构架,他来写软件。 告诉算法工程师我想实现什么效果,他实现了之后问我是不是这样的。 告诉调试工程师如何去调试,因为我最懂原理。 告诉应用工程师客户的需求,让他去尝试方法。

这个阶段,面临的是切割工作接口、协调分工合作、解决工作之间的冲突。

我的做法是民主集中,讨论畅所欲言,结束我来拍板。

这个阶段,一些工程师总是喜欢在我的设计上挑毛病。当然,只要他是想着把事情做好,这个我是包容的,就怕有的二逼在那里砸锅。记得有个FPGA工程师,我给他讲思路,他从一开始就怀着一种挑战对抗心理,以找我的毛病为工作目标。甚至在私下说我不懂瞎指挥。好,砸锅?那显然不是我们队伍里的人,我们之间无缘,你去挑战下一任雇主吧。

总之,那个阶段,我带领他们去完成我大脑中勾勒的那个蓝图。革命尚未成功,同志们去完成我所没有完成的那部分工作。

这样。第一代研发样机就做出来了。样机比原型机要好很多了,既稳定又漂亮,毕竟是专业的人做的专业的事。

这个阶段,我既是技术副总,又是技术总监,又是部门主管。参与和指导一线工作,但是不再负责一线工作,我褪掉了「一线员工」这个角色。

我的工作理念开始从管好自己向管好他人转变。主要工作就是想好做什么、做好规划、带领大家奔着一个目标努力。当然少不了还是要在一线指导。

这个阶段我睡的更少,既要靠激情、责任,还要靠闹钟。

三. 分级

再后来,队伍又大起来了,有了20多个人。

基本上每个岗位有几个人了。

这个时候的研发工作基于样机了,我亲手做的那台丑陋的原型机已经被放到了展厅。经过第二阶段,熟悉样机的人已经有好几个人了,而我却不能熟悉到每个细节,我把那些有组织能力而且技术水平较高的人提拔为部门主管。

这个时候,我不再去参与每一个细节(太多了顾不过来),基本上就是开会和追进度,不去一线战斗了。只有遇到原理的问题,部门主管才来找我探讨技术问题,找我支招。

我既是技术副总,又技术总监。我又褪掉了「部门主管」的角色。

我这个阶段的工作理念就是物色合适的人来做部门主管,我和他们一起来设计产品,做工作计划,监督实施。

我选拔的人越优秀,我参与具体研发工作就越少。我的计划定的越合理,大家工作的越和谐。

这个时候结构工程师说结构是他设计的,电路工程师说电路是他开发的,软件工程师说软件是他写的,算法工程师说算法是她研究的,调试工程师发现也有很多我解决不了的问题需要他们自己去琢磨……新来的员工感觉,他们的部门主管和老员工比我厉害多了,我对样机都不如他们主管熟悉。他们除了觉得职务上我比他们高外,其他的我啥都不行。甚至在他们眼里,这台仪器的研制我作为技术老大什么都没做。面对这种想法,我很开心,说明我选的主管很优秀,我留下的员工很能干。

在部门主管们的努力下,α版本的仪器出来了!我开始组建测试团队和生产团队,沟通市场团队去做客户试用,和生产团队对接试产。

这个阶段我睡觉更少了,因为要想的事情很多,我的考虑不合适会累死三军,每一步都如履薄冰,我不得不买了厚厚的一摞书,学习科学的管理方法。经常我睡到半夜就醒了,起来点上一根烟,接着工作。

四. 保证流程运转,物色优质人才,做甩手掌柜

经过α版本的试用迭代,产品完善很快,队伍进步也很快,转产流程也走通了,整个工作流程可以完整的运行。

就这样,β版本产品很快出炉!

面对这台仪器,我已经不能像了解我的手一样了解它了。员工们都认为这台仪器不是我做的,是大家集体智慧的结晶。当我感到大家有这种想法的时候,我很高兴,说明大家参与感很强,团队很凝聚。

我物色了一个非常靠谱,而且很机灵的员工,让他做了测试部门的主管。仪器能不能过关,我只问他,他只对我负责。这样我对产品的品质也不用自己亲自去把关了。

我依然担任着技术副总,兼任技术总监的工作,工作理念已经基本转换到管人。等到物色到合适的人,时机合适的时候我再褪去技术总监的角色。

现在,我的工作就是和总经理开会制订年度计划,和产品经理们开会对接需求,和部门主管开会制订工作计划、听汇报,和人事部门主管一起物色优秀人才。顺带作为公司技术负责人带带实习生,在适当的时候给大家鼓鼓劲。

只要工作流程能顺利运转,所有的开发工作都像水一样在各部门流动,最终流出来就是合格的产品。我协调各方保证流通的顺畅,就可以下班回家休息了。

实际上是可以这样的,但是我没有。我还在加班加点,很多时候是看书和想事情,完全是爱好和个人的工作态度。

我越来越多的在想如何能让这个流程更有效、更简洁、更顺畅,还要思考如何让团队更有战斗力,那就是选对合适的人到合适的岗位。

研发工作,好像工程师们普遍觉得我根本就没干,我已然成为公司中可有可无的那个人。无所谓,评价我的不是员工,而是总经理和董事会。

五. 科学化、新挑战

上面是我野路子方式完成从0到1的CTO成长之路,整个过程不是从顶层设计开始的。

通过学习、实践和思考,现在我已经能够从顶层设计去实现一个团队的组建和管理。

于是,去年我受邀加入一家新的初创公司,出任总经理,自己又是0号员工。

从公司成立,我就开始组建团队,采用IPD研发管理模式。新公司,我一开始好像就没有做具体的研发工作,很多新同事认为我什么都不会,就会制定规则、开会和评审,然后就是写写文档、看看手机,以及喝茶和抽烟。

作者:刘皇叔 链接:https://www.zhihu.com/question/264361601/answer/2344457559 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

热门文章 Ubuntu14.04如何安装JDK1.7Tomcat7

时间:2019-2-16 作者:RainFly   分类: Java   热度: 7692°  评论:23  
时间:2019-2-16   分类: Java    热度:7692   评论:23

1.首先先准备好    jdk1.7 linux  和tomcat7的安装包(这里使用的是jdk linux 32位的 文章底部奉上需要的安装包)

    

2. 将包文件拷贝到用户目录 我这里是 /home/rain/

3.解压 jdk文件  和tomcat文件

tar -zxvf a*****

4.打开 vim  /etc/profile   在最后一行插入下面的数据

#set java environment JAVA_HOME=/home/rain/jdk1.7.0_80 JRE_HOME=/home/rain/jdk1.7.0_80/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH

注意需要将上面的/home/rain/** 目录替换成自己jdk的目录

5. 输入 source /etc/profile  刷新环境变量后  输入 java -version 查看控制台

    如果显示当前数据表示jdk已经完成安装了

6.进入解压后的tomcat 目录中 找到bin目录并进入

      直接在命令行输入  ./catalina.sh  run   如果出现以下的信息表示启动完成了,直接通过浏览器访问 Http:xxx.xxx.xxx.xxx:8080/

热门文章 浏览器/iframe 全屏、退出全屏

时间:2018-9-21 作者:RainFly   分类: Web程序设计   热度: 10663°  评论:13  
时间:2018-9-21   分类: Web程序设计    热度:10663   评论:13

外面的 html 文件 index.html:

    

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>fullScreen</title> <style> body { margin: 0; } </style> </head> <body> <iframe allowfullscreen src="iframe.html" frameborder="0" style="width: 500px;height: 500px;background:#aaa"></iframe> </body> </html>

里面嵌套的 iframe.html 文件:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> </head> <body> <h1>iframe</h1> <button id="button">全屏</button> <script> // 判断是否允许全屏 var fullscreenEnabled = document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; // 全屏 function launchFullscreen(element) { if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); } else if (element.webkitRequestFullscreen) { element.webkitRequestFullScreen(); } } // 退出全屏 function exitFullscreen() { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } } var btn = document.querySelector('#button'); if (fullscreenEnabled) { btn.addEventListener('click', function () { var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement; if (fullscreenElement) { exitFullscreen(); btn.innerHTML = '全屏'; } else { launchFullscreen(document.documentElement); btn.innerHTML = '退出全屏'; } }, false); } // 监听全屏事件 document.addEventListener('webkitfullscreenchange', function fullscreenChange() { if (document.fullscreenEnabled || document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement) { console.log('enter fullscreen'); } else { console.log('exit fullscreen'); } }, false); </script> </body> </html>

热门文章 单checkBox选中,和检查是否勾选事件

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 谷歌地图   百度地图   
页面加载耗时:0.048秒 数据库查询次数:124次
背景设置
$