精华内容
下载资源
问答
  • 他擅长借助AI实现数据在印象笔记中的自动化记录,并根据记录的信息内容进行自动分类整理,比如开了几次灯、一周的工作时长、对睡眠的自动记录和分析、自动记账…希望可以借助AI用印象笔记记录一辈子的记忆,...
    25f31fc04be7d8a83e25ec7482a4ffde.png这是「印象研习社」栏目的第六期。在这里,印小象会定期与大家分享来自效率达人的印象笔记使用技巧、高效锦囊、应用案例,也期待更多象亲在这里分享你的独门秘籍。今天的分享来自一位居住在日本的象亲@素面,他擅长借助AI实现数据在印象笔记中的自动化记录,并根据记录的信息内容进行自动分类整理,比如开了几次灯、一周的工作时长、对睡眠的自动记录和分析、自动记账…希望可以借助AI用印象笔记记录一辈子的记忆,打造个人的life log。今天就跟大家分享一下素面是如何「用印象笔记实现智能家电自动化记录」的(前方高能预警,建议收藏保存)。4afff47d6f8cf8a9dd0c28628c8b0e55.png

    目录

    ・・・笔记架构鸟瞰图・・・笔记本组・・・笔记・・・标签

    01

    笔记架构鸟瞰图

    在印象笔记中通过笔记本组,笔记本,笔记构建关于智能设备相关的笔记。笔记本组分类如下:
    A 共通/参考B 信息处理C 任务管理D IoT相关 E Forget脑干
    152455e484ff87dc7c6182ec53000a27.png本次介绍主要围绕IoT笔记本组中,笔记本智能家电设备主数据D01和笔记本智能家电设备日常运行管理D02进行分享。并围绕如何活用命名规则来实现通过笔记方式来搭建个性化Smart Home以及通过笔记来进行智能设备的管理等课题。笔记本D01 智能家电设备主数据中涉及到哪些信息需要进行管理笔记本D02 智能家电设备日常运行管理D02中涉及到如何利用笔记进行设备运作管理02

    笔记本组

    主要记录:设备购买渠道、设备价格、设备使用的平台、设备安装使用说明、IoT设备安全设定、网络要求、故障原因、故障次数和其他IoT设备兼容度。0c7a88733e8a8b4268761ba9798743a6.png

    03

    笔记本

    「将32款智能设备以笔记本方式进行管理,为了直观了解各个智能设备可以通过超级笔记表格进行笔记间互联」1.菜单视角命名规则1:笔记本序列+通过命名来表示设备类型与使用平台的关系命名规则2:通过改变样式,根据查询笔记本的频率来添加色彩加以区分c2f69443cb0a233fd7072a951b76bdbc.png▲不同的命名规则2.摘要视图视角「摘要视图更有利于直观查询智能设备设定位置,方便设备出现故障时能及时找到设备位置」fd2b25ceeb64e0eab7f9a28cd4019576.png▲摘要视图(左)和使用效果(右)本次分享重点「利用超级笔记,将分散在多个笔记本组内的信息汇总在一个笔记内,起到查询一览表的作用c807aad610b369037aff4770a944c62d.png▲分散信息汇总04笔记「将每个智能家电互联的运行规则、运行时间表、系统限制、网络要求、是否支持语音控制和跨国运程控制等要素作为管理对象」1.智能家电运行时间表笔记笔记形式采用表格记录
    设备名称连接网络是否支持跨国远程控制启动关闭时间点是否支持语音控制设备唤醒方式/口令设备与设备间前后关联家人需求匹配
    d456ee516e570f1c51a5060c9d91c8ff.png2.Wi-Fi监控笔记「监控每台智能设备连接网络情况。一旦连接网络自动生成笔记,以及发现异常设备试图连接网络实时预警(自动打标签)」笔记形式:自动生成笔记内容:自动记录关键信息           ▷设备连接网络时间           ▷设备MACf563f11c0ddfa5a49c671391d934caec.png3.人感传感器自动检测笔记acff1b0674f9ab0e0e84b0db38d4b8fb.pngb41d206191041ce38a8c3a62d40330b0.png4.智能家电开关Log笔记「自动记录设备开启、关闭的时间点。从而了解居住空间习惯和设备使用情况」96c23a4ecaf8f0e177fbe05ccdcdf5fb.pngdc23f08dbf527eb4feb0faf2f333da89.png

    05

    标签

    「通过标签体系,按空间划分来搜索智能设备以及各个设备用电情况」

    一键搜索

    「设定固有搜索关键词,实现一键搜索当月的水电煤账单」6dec6aedd0212faab4bbcf97fc1361d3.png4384e2a818515c0b2df425f1467f53f4.png- 本文作者-12ae01c4af4463c501d25cf7bceaa42b.png你知道哪些印象笔记使用小技巧?在留言区分享给大象吧~4afff47d6f8cf8a9dd0c28628c8b0e55.png72058087cf8bf1e2a27a2708c9028fe1.png
    展开全文
  • 不断学习新的技能在工作中非常重要,但是把学到的技能...把失败和进展不顺利的情况也记录下,回头具体分析失败的原因,把工作中失败的教训积累下来,也是一种收获。 职场人是为了以往而记笔记。 任务管理而记录灵感 记
    1. 不断学习新的技能在工作中非常重要,但是把学到的技能记下来,最终完成变成自己的东西,这一点更重要。

    2. 谷歌搜索也是如此,你所能搜索到的都是别人的知识和经验,但是你个人的知识和经验因这种方法无法搜索的,为什么?因为那是你独有的体会和经验,没人能与你共享。

    3. 把失败和进展不顺利的情况也记录下,回头具体分析失败的原因,把工作中失败的教训积累下来,也是一种收获。

    4. 职场人是为了以往而记笔记。

    5. 任务管理而记录灵感

    6. 记事笔记本是记录零散信息活尚未成熟的想法的笔记本。

    7. 记事本是记录零散信息活尚未成熟的想法的笔记本,它终究只是开始作笔记时使用工具,千万不要认为想法还不成熟就不记录。总之,无论如何,先记下来再说。如果认为日后能用德者,别犹豫,马上记下来就对了。

    8. 做工作笔记做到持之以恒不容易。而挑选自己喜欢的笔记本,对持续保持积记录兴趣器着重要的作用

    9. 保管资源不适目的,通过利用保管的资料让工作更搞笑才是最重要的。

    10. 一个主题一页纸的记录原则。

    展开全文
  • Now,let‘s go on,to conquer the C++!...可以更容易的将工作分配给协作开发团队 如何编写函数 每一个自定义函数必须定义以下四个部分 返回类型,就是你想返回什么类型的变量你就些什么返回类型即可...

    Now,let‘s go on,to conquer the C++!This is new chapter,chapter 2.

    首先,你为什么要编写自定义函数?

    1. 以一连串函数调用操作,可以让程序能被读明白
    2. 我们可以在不同的程序中调用这些函数
    3. 可以更容易的将工作分配给协作开发团队

    如何编写函数

    每一个自定义函数必须定义以下四个部分

    1. 返回类型,就是你想返回什么类型的变量你就些什么返回类型即可
    2. 函数名,这个你随便定义,但你得学会定义能让人理解的函数名
    3. 参数列表,函数参数扮演者占位符的角色,在函数名后的()中列出,即类型名 变量名
    4. 函数体,紧接在参数列表后的大括号{ }括起来的那玩意儿

    这四个部分必不可少

    • 函数声明:函数声明不必提供函数体,但必须提供返回类型、函数名、参数列表,这些必须提供的组合起来称为函数原型
    • 函数定义:包括函数原型及函!数!体!
      所以我们不难看出函数声明与函数定义的区别,不要给混为一谈了。
    • 注释的第二种形式,即为/*注释内容*/ ,这个开始注释标志和结束注释标志可以跨行,这是"//“注释符不能做到的,所以跨行注释请用/*和*/(可以用来注释一些代码块或者自定义函数。一行注释请用"//"
    • 时刻考虑好程序的鲁棒性,因为用户可能瞎输入一个值给程序,此时你程序可以这样消化这个值
      标准库的exit()函数(用该函数时请写#include<cstdlib>),你写进exit()括号里的值就是程序结束时的状态值。一般来说,exit(0) 可以告知你的程序的使用者:你的程序是正常结束的。如果 exit 括号里是非 0 值,那么你的程序的使用者通常会认为你的程序产生了一个错误,也就是用户输入的有问题导致程序异常结束。
      摘自百度百科——Exit()
      exit(0)表示正常退出,
      exit(x)(x不为0)都表示异常退出,这个x是返回给操作系统(包括UNIX,Linux,和MS DOS)的,以供其他程序使用。
    举个例子
    if(pos<=0)
    {
    	exit(-1);//以状态值-1来结束程序,代表程序异常(提前)结束了
    }
    

    这是个比较激烈的方法,另一个方式,就是抛出异常(exception),表示一个自定义函数收到了错误的位置值,这个在第七章会讨论到

    • 参数列表里有个&变量,其中&代表引用。
    • 如果想知道某个数据类型的最小/最大值,标准库中的numeric_limits class会帮到你
      eg.
    #include<limits>
    int max_int=numeric_limits<int>::max();//查询int型的最大值(可表示数)
    double min)dbl=numeric_limits<double>::min();//查询double型的最小值(可表示数)
    

    格式就这么写,记下来即可!

    • 在函数声明中,你可以**选择不写参数列表里参数的名字,但参数类型你必须写!因为参数名称只有在函数内使用参数时才是有必要的,也就是函数定义中你得写参数列表里参数的名字了。**函数声明的时候尽量不要写参数名字啦(如果程序是比较小的程序)
    • 如果自定义函数的函数体的最后一条语句不是return,那么最后一条语句之后便是该函数的隐式退出点,也就是默认从函数体的最后一条语句后退出该自定义函数,所以你得判别下那个隐式退出点是不是会有在函数体最后一条语句之后的这个情况(即自定义函数的返回类型是不是void,若不是,你得在最后一条语句后加个return 返回的变量,要不然程序报错!若是void返回类型(不需要返回任何值),则不需要加return。)
    展开全文
  • 工作笔记

    2019-07-15 13:51:05
    记录项目中遇到的一些难点和问题 1. 服务端返回带换行的文本,如何设置css属性,使其正常显示(默认的空格会被忽略) white-space:pre-wrap // 保留空白符但是正常进行换行 white-space:pre-line // 合并空白符,...

    记录项目中遇到的一些难点和问题

    1. 服务端返回带换行的文本,如何设置css属性,使其正常显示(默认的空格会被忽略)

    white-space:pre-wrap // 保留空白符但是正常进行换行
    white-space:pre-line  // 合并空白符,保留换行符
    

    2.设置Vue项目全局属性

    /*
    * 新建common.js,为Vue对象添加原型属性,每个Vue组件都是一个Vue对象的实例,所以可以通过this.xxx来访问
    */
    import Vue from 'vue';
    // 动态设置html字体跟大小
    (Vue.prototype.$fontSize = () => {
      var docEl = document.documentElement
      var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
      var recalc = function () {
        if (docEl.clientWidth > 640) {
          docEl.style.fontSize = 640 / 750 * 100 + 'px'
        } else {
          docEl.style.fontSize = docEl.clientWidth / 750 * 100 + 'px'
        }
      }
      window.addEventListener(resizeEvt, recalc, false)
      document.addEventListener('DOMContentLoaded', recalc, false)
    })()
    
    // 设置全局返回,使用方法(this.$back())
    Vue.prototype.$back = () => {
      history.back(-1)
    }
    

    3.export 和 export default的区别

    1.export在引用时名字需要和声明的时候一致,声明时为sayHi,引用时也是sayHi
    2.使用export导出,在导入时要加{},export default则不需要
    3.在一个文件或模块中,export 和 import 可以有多个,export default只能有一个

    export的写法

    // auth.js
    const sayHi = () => alert('hi')
    export {
      sayHi
    }
    // 或
    export const sayHi = () => alert('hi')
    
    // Home.vue
    import { sayHi } from '@/util/auth.js'
    export defaults{
      mounted () {
      	sayHi() // hi
      }
    }
    

    export default的写法

    // auth.js
    const sayHi = () => alert('hi')
    export default sayHi
    
    // Home.vue
    import func from '@/util/auth.js'
    export default{
    	mounted () {
    		func() // hi
    	}
    }
    

    项目中较常这样来使用

    // auth.js
    const logOne = () => console.log(1)
    const logTwo = () => console.log(2)
    const logThree = () => console.log(3)
    export default {
    	logOne,
    	logTwo,
    	logThree
    }
    
    // Home.vue
    import func from '@/util/auth.js'
    export default {
    	mounted () {
    		func.logOne()
    		func.logTwo()
    		func.logThree()
    	}
    }
    

    4.Vue全局filter

    // filter.js
    import Vue from 'vue'
    
    let addZero = val => {
      if (val < 10) {
        return '0' + val
      } else {
        return val
      }
    }
    Vue.filter('formatTime', (val, type) => {
      if (val === null) {
        return '暂无时间'
      }
      val = (val + '').length === 13 ? val : parseInt(val) * 1000 // 10 位则转化
      let dataTime
      type = type || 'YMDHM'
      let date = new Date(val)
      let Y, M, D, h, m, s
      Y = addZero(date.getFullYear())
      M = addZero(date.getMonth() + 1)
      D = addZero(date.getDate())
      h = addZero(date.getHours())
      m = addZero(date.getMinutes())
      s = addZero(date.getSeconds())
      if (type === 'YMD') {
        dataTime = Y + '-' + M + '-' + D
      } else if (type === 'YMDHMS') {
        dataTime = Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s
      } else if (type === 'YMDHM') {
        dataTime = Y + '-' + M + '-' + D + ' ' + h + ':' + m
      } else if (type === 'DHM') {
        dataTime = D + '天' + h + '时' + m + '分'
      } else if (type === 'HM') {
        dataTime = h + ':' + m
      } else if (type === 'HMS') {
        dataTime = h + ':' + m + ':' + s
      } else if (type === 'HMSC') {
        dataTime = h + '天' + m + '时' + s
      } else if (type === 'GG') {
        var now = new Date().getTime()
        var time = new Date(date).getTime()
        var e = Math.round((now - time) / 1000)
        if (time > now) {
          return '刚刚'
        } else {
          if (e < 60) dataTime = '刚刚'
          else if (e < 1800) dataTime = Math.round(e / 60) + '分钟前'
          else if (e < 3600) dataTime = '半小时前'
          else if (e < 86400) dataTime = Math.round(e / 3600) + '小时前'
          else if (e < 86400 * 7) dataTime = Math.round(e / 86400) + '天前'
          else dataTime = Y + '-' + M + '-' + D
        }
      } else if (type === 'QD') {
        dataTime = h + '小时' + m + '分'
      } else if (type === 'MD') {
        dataTime = M + '.' + D
      }
      return dataTime
    })
    Vue.filter('countDown', (val, type) => {
      let dataTime
      type = type || 'HMS'
      if (type === 'H') {
        dataTime = val.slice(0, 2)
      } else if (type === 'M') {
        dataTime = val.slice(3, 5)
      } else if (type === 'S') {
        dataTime = val.slice(6, 8)
      } else if (type === 'HMS') {
        dataTime = val
      }
      return dataTime
    })
    /**
     * 金钱格式处理
     * @param {string} val - 要处理的金钱数值
     * @param {int} integer - 保留到小数点后几位,默认为2
     */
    Vue.filter('formatMoney', (val, integer = 2) => {
      let money = Number(val)
      return money.toFixed(integer)
    })
    

    使用时

    // Home.vue
    <template>
      <div id='app'>
        <!-- 显示 2019-07-15  -->
        <p> {{ time | formatTime('YMD') }} </p>
      </div>
    </template>
    
    <script>
      export default {
      	data () {
      	  return {
    		time: 1563157266 // 后台返回的时间戳
    	  }
      	}
      }
    </script>
    

    5.使用router的query和params来传值

    // Home.vue
    methods: {
      toNextPage () {
    	this.$router.push({
    	  name: 'nextPage',
    	  query:{
    	    idx: 1
    	  }
    	})
      }
    }
    // 或
      toNextPage () {
    	this.$router.push({
    	  path: `/home/nextPage`, // nextPage注册路由时写的路径
    	  query:{
    	    idx: 1
    	  }
    	})
      }
    
    // nextPage.vue
    created () {
      console.log(this.$route.query) // { idx: 1 }
    }
    

    使用params传值方法是一样的,区别是params传值时,传递的参数不会显示在url中,当params传值的页面刷新时,会获取不到数据

    如果要传递一个对象,如

      // Home.vue
      item: {
      	name: 'mickey',
      	age: 23,
      	hobby: 'music'
      }let expressObj = JSON.stringify(item)
      export default {
      methods: {
        toNextPage () {
    	  this.$router.push({
    	    name: 'nextPage',
    	    query:{
    	      item: item
    	    }
    	  })
        }
      }
    }
    
    // nextPage.vue
    created () {
      let item = JSON.parse(this.$route.query.item)
      console.log(item) // { name: 'mickey', age: 23, hobby: 'music'  }
    }
    

    对象数组去重

    let person = [
    {id: 0, name: “小明”},
    {id: 1, name: “小张”},
    {id: 2, name: “小李”},
    {id: 3, name: “小孙”},
    {id: 1, name: “小周”},
    {id: 2, name: “小陈”},
    ];
    let obj = {};
    person = person.reduce((cur,next) => {
    console.log(obj[next.id], next.name);
    if (obj[next.id]) { // 如果是true,就不执行操作,否则push进数组
    } else {
    obj[next.id] = true
    cur.push(next)
    }
    // obj[next.id] ? “” : obj[next.id] = true && cur.push(next);
    return cur;
    },[]) //设置cur默认类型为数组,并且初始值为空的数组
    console.log(person);

    微信账号绑定用户账号,微信支付接口,支付宝支付接口
    展开全文
  • 如何让自己的项目与原作者的项目保持同步! 我经常看到许多人,只会 fork 一次,提交过一次修改就不知怎么办了!因此原框架作者是非常勤奋的,一天会提交N次,一个星期后许多文件都改动过了,而那些代码贡献者不...
  • 自打我做产品经理不久,就延续原来的习惯,记录每天的工作安排,8个月来这个本子终于走到了尽头,也算是陪伴了我做产品的初期阶段。 为此,我特地在家中,用了半天的时间,从头至尾的看了一遍,4.17~11.25,...
  • 计算机是如何工作的呢? 计算机可以看做是“存储程序计算机”,这里我给分为两部分,即CPU负责运行指令,内存用于存储指令和数据。 CPU中还存在各种寄存器(x86),如下图所示。 具体这些寄存器怎么用,有...
  • 如何做好笔记

    千次阅读 2007-10-23 18:35:00
    我觉得做好笔记无论是对于工作还是学习都具有极其重要的作用!在看书或者听课时记笔记,可以让自己理解深刻并便于今后查阅或复习;在开会时作笔记,可以记下会议内容要点以便快速写出会议记录;下面是引自...
  • 为了能够提升自己的工作效率,很多人都会选择一些好用的软件来辅助自己,笔记本电脑如何笔记?对于一些人来说,他们在做笔记的时候,习惯于在电脑上新建一个文档,然后将要做的笔记内容记录进去,等到需要用的时候...
  • 如今找工作着实费劲了。但是这段时间在极客时间买了mysql45讲,就好像发现了新大陆一样,这是我认真做笔记的第一天,说实话第一讲我已经看了有5遍了吧。今晚认真读了一遍也思考了一遍,打算做一下记录,也让自己再...
  • 书名:如何有效阅读一本书:超实用笔记读书法 作者:日本.奥野宣之 日期:2019年6月8日 大事件记录:前天,台湾名模林志玲嫁给了日本男艺人。 读书用时:5小时,347页。 【读书笔记】 我本将心向明月,奈何...
  • 笔记是人们工作中的一个重要环节,他可以记录工作中遇到的问题和经验,如何在电脑上做电子笔记?电子笔记和传统笔记的区别比较大,传统笔记纸质的本子比较容易受到环境的侵蚀和影响,而电子笔记由于储存介质的原因...
  • 学习笔记快速记录

    2015-06-02 10:50:37
    1. 什么是注解、注解的例子使用 Java中的注解是如何工作的? 依赖注入和注解,为什么 Java 比你想象的要好 JAVA 注解的几大作用及使用方法详解 2. 3. 4. 5. 6. 7. 8. 9.
  • 读书笔记中只记录关键知识点 文章目录运算符控制流初始化和清理垃圾回收器如何工作类的初始化 运算符 Integer 内部维护着一个 IntegerCache 的缓存,默认缓存范围是 [-128, 127],所以 [-128, 127] 之间的值用 ==...
  • Java编程思想笔记记录

    2020-08-17 00:26:42
    假如你的对象并非通过new获得了一块特殊化的内存区域,由于垃圾回收器自知道释放那些由new分配的内存,所以它不知道该如何释放该对象的这块特殊内存。为了应对这种情况,Java允许在类中定义一个名为finalize()的方法...
  • 记录的数据scraps可以在以后使用,或在工作流中传递给另一个笔记本作为输入。 即,剪贴簿可让您: 将数据和可视内容显示在笔记本中作为废料保存 回忆所有持久化的数据碎片 总结笔记本的收藏 Python版本支持 该...
  • 工作笔记1-C文件操作

    2019-09-14 11:48:43
    本人小白一个,刚参加工作,希望通过写博客的方式记录自己工作中学到的新东西和一些体会,方便自己今后查阅。欢迎大家讨论指出不足。 文件打开:FILE * fopen(str) 你好! 这是你第一次使用 Markdown编辑器 所...
  • 编程笔记的重要性文/罗勇军编码工作非常细节、繁琐,需要用记笔记的方法,积累经验。如果不记录,很快就会忘记。每有一点心得、每个新收获的小细节、每做一个有价值的题目都要记录。做完一题之后,到网上搜搜别人的...
  • 前言 为什么互联网资讯这么发达,但是没有出现技术人才井喷? 为什么会出现应届生薪资倒挂多年老员工的现象? 这个世界有太多的现象都可以用**“二八定律”**来解释。...如何花最少时间学习最多知识,迫
  • 印象笔记,当我一用上它的时候,便深深地爱上了它,它解决了我的痛点,现在我把所有的文章全部汇集到到上面。上面可以进行各种检索,根据关键词或名词进行搜索,它成了我的一个第...分享笔记在平常工作学习中,我们...
  • 如果您需要帮助来跟踪重要的工作,出色的想法或约会,只需单击“入门”,然后找到干净的GUI,即可使用它为笔记加上标题并添加其详细信息。 不要忘记单击页面右上角的“保存”图标。 未来实施 未来的实现将包括-...
  • IOS工作笔记(八)

    2015-03-12 15:22:00
    说明:记录下学习IOS的一些琐碎,有些在现在看起来很简单幼稚,不过权当学习足迹吧! 1.如何删除UIScrollView下的所有子视图? 对于一般的UIView,可以用 for (UIView *view in myView) { [view ...
  • IOS工作笔记(三)

    2014-12-26 12:08:00
    说明:记录下学习IOS的一些琐碎,有些在现在看起来很简单幼稚,不过权当学习足迹吧! 1.选定ipad支持的方向,如强制横屏等,需要在General——》Deployment Info ——》Device Orientation选择,含义如下: 所以...
  • 1. ROS主从机连接前的准备工作 ifconfig:使用ifconfig命令询问当前网络配置,重点要得到当前端口IP和netmask值,记录当前值 nmcli dev show 使用该命令获得当前配置文件参数,重点是端口名(如wlp5s0),DNS,...
  • 如何工作: 我们使用了标准库中的三个模块——os 模块用来和操作系统交互,platform 模块用来得到平台的信息,例如像操作系统平台,logging 模块用来记录信息。 首先,我们用platform.platform()(更多信息,查看...
  • 上一篇文章我们讲到了Kafka的工作原理和如何使用Kafka的代码示例,这里我们开始讲解Kafka的实战,在实际的应用中我们如何使用kafka的。下面将介绍前台的操作日志定时推送到kafka,然后通过kafka将消息日志进行保存,...
  • 文章目录导言相关题目页面请求的工作流程?HTTP中GET和POST区别?什么是Servlet?Servlet处理客户端请求步骤有哪些?Servlet与CGI区别?doPost和doGet方法如何抉择?Servlet的生命周期是什么?JSP有哪些优点?JSP与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 666
精华内容 266
关键字:

如何记录工作笔记