科技新闻

我在阿里远程办公

[亡魂溺海] 提交于 2020-02-27 02:03:26
工作日的日常 起床,坐班车到公司,用阿里邮箱处理未读邮件,打开语雀,完成当天的工作计划和日课,接着按照工作计划的优先级处理事务,通过 Aone 管理任务进度,完成代码的 CR 和部署,不定时处理钉钉消息,通过阿里郎参加线上会议或到会议室参加线下会议,这是我工作日的一天。 由于日常就需要和多个园区、多个城市的同学进行沟通和交流,事实上除了和本团队的同学以外,一直都是远程办公的模式,但是真正在家远程办公,会不会产生新的问题呢? 答案是肯定的。从团队和协作的角度思考,在这种状态下如何管理团队,如何跟踪项目的进度以及如何保障沟通的时效和准确性,都是绕不过的话题。从个人的角度考虑,如何提高自控力保障效率,如何管理自己的时间,如何高效利用工具完成协作,同样值得探讨。下面从这几方面分别聊聊。 沟通 首先要明确,沟通的目的是为了保证信息的对齐,避免出现大家齐头并进,却向着不同终点奔跑的情况。根据不同的沟通范围,又分为两种情况,团队内沟通和跨团队/跨地域的沟通。 团队内沟通 团队内沟通,很多时候在工位前后吼一嗓子就能解决,实在不济多走两步很快也能说清楚。通常会进行一些团队事务的同步,可能包括手头上在做什么事情,项目进展到什么程度了,遇到了一个难题寻求帮助,完成了技术设计期望大家评审等等。这部分信息的同步通常比较简单和快速,远程办公影响不会太大。 跨团队/跨地域沟通 对于像我们这样横向拆分

iOS清除缓存功能开发

烈酒焚心 提交于 2020-02-27 01:24:38
  在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了。   代码段1:获取文件的大小 - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] fileSize]; } return 0; }   代码段2:获取文件的大小 //遍历文件夹获得文件夹大小,返回多少M - (float ) folderSizeAtPath:(NSString*) folderPath{ NSFileManager* manager = [NSFileManager defaultManager]; if (![manager fileExistsAtPath:folderPath]) return 0; NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];

RabbitMQ (1)

你离开我真会死。 提交于 2020-02-26 23:41:37
文章目录 RabbitMQ简介 初识RabbitMQ 为什幺用RabbitMQ: RabbitMQ高性能的原因? 什么是AMQP高级消息队列协议? AMQP核心概念(重点) RabbitMQ安装及使用 Docker安装方式 RabbitMQ简介 各大主流中间件对比: activiMq 老牌消息中间件,api全面,但是吞吐量不大 Kafaka 吞吐量大,但是数据无法保证不丢失,主要面向大数据 rokectMQ :吞吐量大,保证数据不丢失,并且支持分布式事物,但是商业版需要收费 rabbitMQ :吞吐量大,数据不易丢失 初识RabbitMQ RabbitMQ是—个开源的消息代理和队列服务器,用来通过普通协议 在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写 的,并且RabbitMQ是基于AMQP协议的。 为什幺用RabbitMQ: 开源、性能优秀,稳定性保障 提供可靠性消息投递模式(confirm)、返回模式(return ) 与SpringAMQP完美的整合、API丰富 集群模式丰富,表达式配置,HA模式,镜像队列模型 保证数据不丟失的前提做到高可靠性、可用性 RabbitMQ高性能的原因? Erlang语言最初在于交换机领域的架构模式,这样使得 RabbitMQ在Broker之间进行数据交互的性能是非常优秀的 Erlang的优点

使用RTX的一些流水账

落爺英雄遲暮 提交于 2020-02-26 23:22:18
记得初入社会工作那会,在集团公司上班,上司给我布置了好多任务,但都不用面对面交流,每天的工作任务都是通过一个即时通讯软件传达,刚上班那会看到这个软件第一反应就是QQ的模拟板,界面好丑,但也能满足一般的交流 ,每次创建账号和修改密码都要管理员来完成,后来看到LOGO才知道这款软件叫RTX,是腾讯为企业打造的软件,可以在局域网上使用,想想也是,像我们并公司把重要的信息都放在一个平台上,选择产品一定是多方面考虑,毕竟不能出什么出差,不然背锅的是IT部门。 记忆中RTX出现过好几次重大事故,其中有一次是因为漏消息,部门总监因为没收到推送消息,所以错过了和客户开会时间,这个直接影响到了公司的形像和项目进度,当时IT部门排查原因是RTX的bug,联系了腾讯那边也没有回应,好像他们内部已经对这款产品不更新不维护了,所以也不会去处理,就这样,我们RTX版本一直停留到2015年. 后来IT部门从网上找到了一款RTX平滑升级软件,当时我也纳闷,一定和之前的差不多,半斤八两吧。当部门要求大家都去更新新客户的时候,我才发现,这和我想像中的完全不一样,不仅外观更贴进现代化设计,连功能和账号密码都可以从原来的RTX同步过来,不需要再做额外的更新,最好的是他们还增加消息撤回,语音视频、来电识别、打卡功能等,最点是他们还有完善售后服务,这对员工和IT部门来说太实用了,而且这个新产品还号称是解决RTX痛点而设计的

ES6 - 基础学习(8): Promise 对象

霸气de小男生 提交于 2020-02-26 23:17:38
概述 Promise是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理也更强大。ES6将其写进了语言标准,统一了用法,从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。 Promise的出现很好的解决了回调地狱的问题,在使用ES5的时候,在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发。所以Promise也就尤为重要。 来源: https://www.cnblogs.com/donghuang/p/12368405.html

Dll注入:Windows消息钩子注入

北城余情 提交于 2020-02-26 23:01:48
SetWindowsHook() 是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。 钩子机制允许应用程序截获处理window消息或特定事件。 HHOOK WINAPI SetWindowsHookEx( __in int idHook, \\钩子类型 __in HOOKPROC lpfn, \\回调函数地址 __in HINSTANCE hMod, \\实例句柄 __in DWORD dwThreadId); \\线程ID 使用API函数SetWindowsHookEx()把一个应用程序定义的钩子子程安装到钩子 链表 中。 SetWindowsHookEx函数总是在Hook链的开头安装Hook子程。当指定类型的Hook监视的事件发生时,系统就调用与这个Hook关联的 Hook链的开头的Hook子程。每一个Hook链中的Hook子程都决定是否把这个事件传递到下一个Hook子程。Hook子程传递事件到下一个 Hook子程需要调用CallNextHookEx函数。 系统钩子 SetWindowsHookEx()函数的最后一个参数决定了此钩子是 系统钩子 还是线程钩子。 线程钩子 线程勾子用于监视指定线程的事件消息。线程勾子一般在当前线程或者当前线程派生的线程内。

RabbitMQ 消息中间件

允我心安 提交于 2020-02-26 22:03:58
1、消息中间件 1、简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。 当下主流的消息中间件有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。其能在不同平台之间进行通信,常用来屏蔽各种平台协议之间的特性,实现应用程序之间的协同。优点在于能够在客户端和服务器之间进行同步和异步的连接,并且在任何时刻都可以将消息进行传送和转发,是分布式系统中非常重要的组件,主要用来解决应用耦合、异步通信、流量削峰等问题。 2、作用 1、消息中间件主要作用 解耦 冗余(存储) 扩展性 削峰 可恢复性 顺序保证 缓冲 异步通信 2、消息中间件的两种模式 1、P2P模式 P2P模式包含三个角色:消息队列(Queue)、发送者(Sender)、接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到它们被消费或超时。 P2P的特点: 每个消息只有一个消费者(Consumer),即一旦被消费,消息就不再在消息队列中 发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行它不会影响到消息被发送到队列 接收者在成功接收消息之后需向队列应答成功

防止 ssh 连接自动断开

浪尽此生 提交于 2020-02-26 21:59:11
server 设置 (1)编辑 /etc/ssh/sshd_config 修改 ClientAliveInterval 和 ClientAliveCountMax : # 表示server向client请求消息的时间间隔 # 默认是0,不发送,单位为“秒” ClientAliveInterval 600 # client 没有响应 server 的次数 # 达到后就自动断开 ClientAliveCountMax 300 重启 ssh 服务: $ service sshd restart (2)编辑 /etc/profile 添加: TMOUT=0 生效: $ source /etc/profile client 设置 ~/.ssh/config 中添加: Host * ServerAliveInterval 60 来源: oschina 链接: https://my.oschina.net/yogoup/blog/3166930

三星正在改善1Gb MRAM寿命问题

烈酒焚心 提交于 2020-02-26 21:37:56
据报道三星已经成功研发出有望替代嵌入式闪存存储器(eFlash)的嵌入式磁阻随机访问内存(eMRAM),容量为1Gb,测试芯片的优良率已达90%。 随着5G物联网时代的来临,存储器领域发展快速,而在这一领域,韩系厂商拥有着比较明显的优势。 MRAM 芯片是一种以电阻为存储方式结合非易失性及随机访问两种特性,可以兼做内存以及硬盘的新型存储器介质。写入速度可达到NAND闪存的数千倍,此外其制作工艺要求低,产品良品率高,可以很好的控制成本。在寿命方面由于MRAM特殊的存储方式,产品的寿命耐久性也远远超传统RAM。 报道称三星也正在改善1Gb MRAM寿命问题,除了支持长达10年的存储年限之外,在105℃的温度也可完成1亿次读写,在85℃下则可增加至100亿次读写,在正常工作环境中,则有望达到1兆次读写。目前以MRAM为代表的新型存储已经发展到了关键阶段,是否能成为取代NAND闪存的下一代存储器介质除了材料和工艺的不断的完善之外,构建完善器件的技术生态系统同样是十分关键的。相信在市场需求的引导以及各大厂商的推动下,存储产品一定朝着性能更高以及容量更大以及成本更优的方向发展。 致力于生产MRAM存储器的 EVERSPIN 在磁存储器设计,制造和交付到相关应用中的知识和经验在半导体行业中是独一无二的。Everspin拥有超过600项有效专利和申请的知识产权产品组合,在平面内和垂直磁隧道结

微信小程序判断消息是否已经订阅?订阅消息使用

Deadly 提交于 2020-02-26 21:35:18
一、判断订阅消息是否已经订阅 res.subscriptionsSetting.itemSettings 返回的是所有订阅消息的对象集合 'accept'表示用户同意订阅这条消息,'reject'表示用户拒绝订阅这条消息,'ban'表示已被后台封禁。 /** * 生命周期函数--监听页面显示 */ onShow: function () { var _this = this; //判断是否已经订阅 wx.getSetting({ withSubscriptions: true, success(res) { var itemSettings = res.subscriptionsSetting.itemSettings; if (itemSettings) { if (itemSettings['tVVgjayWzUTBnTPse2GOGiY88--oa-ubEiCS8a4l_yQ']==‘accept’) { _this.setData({ isSubscribe: true }); } } } }) }, 二、点击订阅按钮处理 //立即订阅 doSubscribe: function (e) { var _this = this; wx.requestSubscribeMessage({ tmplIds: [ 'tVVgjayWzUTBnTPse2GOGiY88--oa