分类 未分类 下的文章

讲class的文章
讲生成器和迭代器的文章

  • class
    class只是prototype的语法糖, 其中的函数都是挂在prototype下的.
    class后面的大括号里面的代码段和函数里面大括号的代码段有所不同. 主要是class里面的函数定义不需要加function关键字.
    class中特殊成员:
  • constructor() 构造函数. 给实例初始化用的. 如 class C{constructor(name){this.name = name}}; let c = new C('John'). 对于只是初始化变量,有简写的方式,就是直接在class最开始赋值且不能加let/var. 如class C{name='Mike';}
  • static 静态函数/变量修饰符. 静态的函数/变量不属于this, 只能通过class名引用. 如class C{static x = 0; f(){console.log(C.x)} }
  • name class是从function继承的, 所以function有一个name属性, class也有(static的)name属性. function x(){}; x.name==='x', class C{}; C.name==='C'
  • # 私有函数/变量前缀. 在函数或者变量前面加#就变成了私有的. 有意思, 这种用法跟linux在文件或目录前面加.就变成了隐藏的一样. 访问的时候也要加上#才行. 如class C{static #x = 0; f(){console.log(C.#x)}}. 符号加的多就更像天书了哈哈(这个是ES2022特性)
  • extends 继承(扩展)父类. 如class C{}; class D extends C{};
  • super() 子类constructor()中调用父类constructor(). 不是可用可不用, 而是子类有constructor就必须用, 而且必须先用, 也就是在子类构造函数一开始就调用: constructor(){super(); this.x = 'xx'}. 否则在new 子类的时候会报错ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor

CMAT-AMMA认证

似乎没怎么看到最新情况, 也不知道这个认证现在推广情况如何了
CMAT官网
CMAT是China Marketing Accreditation Test, 中国市场营销资格证书考试
AMMA是American Management and Marketing Association 美国管理和市场协会. 这个组织现在已经搜索不到了, 能搜到的是American Management AssociationAmerican Marketing Association,很神奇, 简称都是AMA. 不过ama.org这个域名被美国市场协会拿去了(不愧是市场协会啊), 美国管理协会只拿到了amanet.org,嗯,域名怪怪的.
通过研究两个AMA的历史, 发现都和AMMA没有任何关系. 美国管理协会的历史美国市场协会的历史.
而amma.org,是一个名叫Amma的印度女性的网站, 似乎是一位很知名的宗教界女性, 不过国内找不到什么任何报道.
从官网对最高一级认证'中国市场营销总监'认证的教材介绍,结合淘宝给出的书来看, 考试的教材是2006年的, 十几年没有更新, 都被淘宝店家标成了"古书旧书",确实没有新书卖, 所以这个认证的可靠性非常堪忧.

市场营销职业国家职业资格证书

分三级, 分别叫高级营销工程师/营销人员/营销助理工程师.
我现在还没有听说哪个销售有考过这个的哈哈, 似乎认可度不高?

ChatGPT的回答

在市场营销领域,有许多权威的认证考试可以帮助提升自己的专业水平。以下是一些较为知名的市场营销认证考试:

谷歌广告认证(Google Ads Certification)
谷歌分析认证(Google Analytics Certification)
Facebook广告认证(Facebook Ads Certification)
英国市场营销协会资格认证(Chartered Institute of Marketing Qualifications)
美国市场营销协会认证(American Marketing Association Certification)
市场营销研究协会认证(Market Research Society Professional Certification)
营销科学研究所认证(Institute of Practitioners in Advertising Qualification)
通过参加这些认证考试,您将能够获得权威的市场营销知识和技能,并证明自己在该领域具备专业能力。这些认证考试通常包括理论知识测试和实践案例分析,使您能够全面了解市场营销的不同方面和应用。

对人群(市场)分类

普通人,(需要)更好的生活

多数产品创新方向,宽市场。普通人也也有普通的可支配收入。
在兔国因为是M型结构,应该还可以分为有钱的普通人和穷的普通人,前者常被称为成功者、总裁、老板、高管之类,后者常被称为打工人、社畜之类。

穷苦人,(需要)正常的生活

此类市场进一步细分。是属于宽市场还是窄市场需要看具体细分程度、市场规模。

财富不足

且称之为财富穷苦人,财富勉强或难以维持基本生活。与普通打工人不同,普通打工人日常生活开支并不发愁,还能在更高品质生活上规划一定支出。

身体健康不足

且称之为病痛穷苦人,身体勉强或难以维持基本生活。如受到严重的残疾或慢性病困扰,生活难以自理,需要他人协助的。如重度阿兹海默症、盲人、听障(可进一步按年龄划分)、高位截瘫、渐冻症等。如果是轻度残疾或轻度慢性病,生活可以自理的不在此列。

心理健康不足

且称之为心理穷苦人,精神状态勉强或难以维持基本生活。如严重的焦虑、抑郁、情感障碍、幻觉、妄想等,生活难以维持的。他们往往需要他人和社会的协助而又常常难以得到。心理障碍与身体障碍不同,后者非常明确而前者相对模糊,再加上人们本身的偏见使其更难以获得帮助。

特殊人,(需要)正常的生活

此类划分标准比较多样,通常属于细分的窄市场。

特殊性偏好

如LGBT人群或其他细分性偏好。

特殊信仰

总有一些信仰在一个大的族群中属于少数的,未被了解的。信仰与信仰之间往往又充满的隔阂,严重的还会发生暴力事件。每种信仰从根本上总是希望积极传播自己,否则都会面临终结;每种信仰又都希望保持自己的纯净性和一致性,这又对外界树立起了高墙。这是信仰得以存续的根本矛盾。

特殊文化

不同国家、不同的民族(主要民族、少数民族)有不同的历史文化,从文化中出发,发现同一族群中的潜在文化缺失。

特殊经历

有共同的特殊经历,并且造成了长远影响的。如失孤打拐人群、家中有特殊需要照顾对象的人群等。

轻度残疾和慢性病

轻度的标准是生活可以自理。下肢残疾者甚至可以踢足球,聋哑人甚至可以送快递,他们不但可以自理还能给别人服务,然而社会却缺少对他们的关心。冠心病、高血压、颈椎腰椎病、早期阿兹海默症等患者,日常和常人没有太大区别,但除了吃药理疗外,也需要日常更多注意的地方以缓解病痛。

特定职业

如教师、程序员、医生、律师、警察等。特定职业还可以继续细分,进一步细分可带来特定的抢滩登陆机会。如高中年轻女教师,可针对开发小巧可爱的教学用扩音器,还可以从礼品角度出发,定位为高中年轻女教师的男友或老公购买。

特定习惯或爱好。

如烟民、股民、素食主义者等。

满足上述不同人群(市场)的产品类别

实物

耐用品

消耗品

虚拟物品

平台类(联结类)

平台类产品意在提供一种人与人之间的联结。

服务者对被服务者

服务者和被服务者之间是不同的群体,如司机与乘客的打车平台,店家、外卖员与食客的外卖平台。

用户对用户

用户之间平等地提供信息,如微信、QQ、电话、邮箱等。

工具类(非联结类)

工具类产品提供一种功能而不是人与人的联结。即使这种工具是以SaaS的方式提供的,也不能称之为平台类产品。

这儿有个前提, 就是这组数据需要是正态分布才可以. 其次,标准差是距离中位数多少个标准差, 百分比是从大到小排列, 数据所处的位置, 这个位置也叫标准正态分布的累积分布

EXCEL

在EXCEL中可以这样换算: =NORM.S.DIST(A2, TRUE), A2中填入标准差, 结果:

标准差 百分比
-3 0.001349898
-2 0.022750132
-1 0.158655254
0 0.5
1 0.841344746
2 0.977249868
3 0.998650102

JavaScript

以下是GPT3.5的回答:

// 引入Math.js库
const math = require('mathjs');

// 计算标准正态分布CDF的值
function standardNormalCDF(x) {
  return math.erf(x / math.sqrt(2)) / 2 + 0.5;
}

// 示例用法:计算标准正态分布CDF在给定x值处的概率
var x = 1.5;
var cdfValue = standardNormalCDF(x);

console.log("标准正态分布CDF在 " + x + " 处的概率为: " + cdfValue);

有多个体系.

  1. 基于Ruby的Jekyll,可以将md生成静态的HTML站点
  2. npm项目markdown-to-html, 这个项目有些太简单, 只能附加一个css, 无法自定义meta.
  3. npm项目remark-rehype, 这个项目似乎又太复杂, 是remark/rehype/unified多个项目的插件.

Powerpoint

矢量动画比位图动画要好做, 最简单的就是用powerpoint.现在版本的powerpoint支持直接另存为mp4格式, 保存的文件也比较小, 还可以直接在必剪等视频编辑软件中编辑.
但Powerpoint动画有几个局限性:

  • 时序控制。动的元素多了以后,各个元素之间的时序控制就比较麻烦
  • 元素重叠。不同的元素在不同的时间在同一个空间动作,这些元素就会叠加在一起,很难操作。
  • 时间不准确,尤其在切换帧的时候,会出现过早或者过晚切换。

Pencil2D

参考12 BEST FREE 2D ANIMATION SOFTWARE IN 2023
上面这个文章里Pencil2D是最佳选择, 我用了以后,发现功能非常简单, 是基于关键帧的绘画, 但是不会自动做动画, 似乎每一帧都要自己画. 我在B站上找了一个视频对比Pencil2D和Blender做2D动画, 视频认为Pencil2D很好用而Blender很难用.不过可以看出视频作者是平面绘画的专业人士, 画一帧图片对他来说很容易.

其他

备选的选手包括Blender和Cocos Creator.
Blender可以做3D动画, 当然也可以做2D, 当然比Powerpoint难一些但能做的效果要高级很多
Cocos Creator作为一个游戏引擎和游戏IDE, 我记得也是有一些动画能力的,并且肯定超出PPT,只是不知道是否能导出mp4. 或者至少可以用录屏的方式来完成.

佳简几何的yoose(有色)品牌取得了成功. 事后诸葛亮分析一下它为什么成功.
在它成功之后的很长一段时间, 我和周围的人都认为不就是改了个外观和包装, 做得很有设计感吗? 但不是所有改了外观和包装的产品都能卖得好. 佳简几何作为深圳近年来最成功的设计公司之一, 也有做了其他几款成品并不成功. 那是什么原因? 我觉得定位很重要, 也就是小女生送男生的礼物. 所以这个产品是小女生对礼物的需求, 也就带出了这个产品的外观/功能/价格等等属性(或者所谓的核心利益/有形特性/增强特性). 我有朋友用过这个剃须刀, 小巧方便, 但剃须效果并不见得比其他剃须刀更好, 只能说是够用. 剃须这个必备功能, 即非补偿模型特性, 在小女生这儿达到60分也就可以了.
但这儿, yoose剃须刀的价值主张并不是最重要的, 最重要的是, 女生通常是不买剃须刀的, 即使作为礼物, 也很难想到他剃须刀这个选项. yoose把剃须刀作为女生的礼物选项, 开拓出了一个新的市场, 事实上是商业模式的创新, 在皮萨诺创新景观图中,可以作为颠覆者.
而昔马和其他跟进这个市场的品牌, 在迈尔斯斯诺框架中作为分析者出现.
再者, 小女生送男生的剃须刀市场, 是一个多维度细分市场, 第一维度,青春期, 年龄16~24; 第二维度, 恋爱期女生; 第三维度, 礼品市场.
有色公众号第一篇介绍文章介绍剃须刀, 是2020年8月23日, 一开始细分市场似乎并没有瞄准小女生送的礼物, 而是指向潮男.这一年并没有公布销量上的数据. 从2021年开始的情人节和七夕, 公号都推出了响应的专题页, 似乎开始转向小女生送的礼物这个定位, 当年双十一的2小时成单3000份, 销量120万, 平均价格400元,相比2020年双十一增长5倍,即2020年大约只有600单。这似乎预示着有色在这一阶段完成了从早期采用者到早期大众的鸿沟跨越。
在这一年,有色还推出了吹风机,同样极具设计感。定位似乎是男生送女友。另外还推出了送老爸的剃须刀。
从今天的有色天猫店的销量来看,剃须刀10w+,吹风机800+。就此来看,女生送礼的这个市场创新是非常成功的,但不是每一个送礼的市场都同样成功。

这篇文章说new Date()构造函数是个魔鬼,我不能同意更多。
8 个关于 new Date() 的陷阱,你需要知道一下
事实上上面的8个还没有列举完!还有我发现的两个问题:https://idarc.cn/index.php/archives/3786/ https://idarc.cn/index.php/archives/3739/,是关于细微差别的方式构建出来的时区不同, 和不同操作系统对new Date()实现不同的.

昨天用termux安装WebDav Server, 并尝试通过Windows和MAC连接, 很强大,很麻烦. 最后通过Apache2实现, 从晚上10点搞到陵城2点.
所以想Termux这么强大, 可以做一个类似宝塔的Web客户端,实现很多功能:

  • 备份照片
  • 做FTP/HTTP文件服务器
  • 同步文件夹
  • 做网盘(WebDav)
  • 互传文件
  • 互传剪贴板
  • 看宝塔哪些功能可以用在这儿,或者能不能直接装个宝塔
    ...
    定位为个人手机的万能工具箱.

参考1 https://www.digitalocean.com/community/tutorials/host-a-web-server-on-android
参考2 https://wiki.termux.com/wiki/Remote_Access

概述过程:参考1的作者先是把termux整改了一番,比如启用sshd,把默认命令行从bash改成了fish等等,然后才开始正式行动。

pkg update && pkg upgrade
pkg install apache2 git neovim wget curl
# 下面装的这些只是优化
pkg install openssh neofetch fish nmap
# 设置一下ssh的登录密码
passwd
# 启动sshd,记住端口是8022
sshd
# 看一下自己的用户名和ip
whoami
ifconfig

然后可以从pc上登录:ssh -p 8022 username@ipaddr

下一步可选,是把命令行改为fish的

chsh /data/data/com.termux/files/usr/bin/fish
fish

如果8080被占用,修改一下apache配置,端口号改为8000,nano ../usr/etc/apache2/httpd.conf
运行服务

apachectl 

使用webdav server 连接

参考 https://blog.csdn.net/SilentCWQH/article/details/127559615

pkg i apache2
cd $PREFIX/etc/apache2
nano httpd.conf

httpd.conf把下面行前面的#去掉并保存:

LoadModule dav_module libexec/apache2/mod_dav.so
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
Include etc/apache2/extra/httpd-dav.conf

看一下Listen哪个端口,默认应该是8080,可以按自己需要修改,特别是端口被占用的情况:

Listen 8080

nano httpd-dav.conf修改其中内容,设置别名和真实路径,我设置的是downloads路径,也可以设置storage/shared路径,可以访问手机全盘:

Alias /downloads "/data/data/com.termux/files/home/storage/downloads"
<Directory "/data/data/com.termux/files/home/storage/downloads">

创建webdav的账号密码,似乎必须是admin,以和上面httpd-dav.conf中的内容对应起来

htdigest -c "/data/data/com.termux/files/usr/user.passwd" DAV-upload admin

创建密码。这儿如果忘记了也没有关系,重新运行一次这个命令再创建新密码就行了。

启动服务:

httpd -k start

如果要重启服务,可以先用pkill httpd杀掉服务再启动。
如果有什么异常。查看log,在$PREFIX/var/log/apache2/

客户端

参考:https://www.jianshu.com/p/7ba5f0756efc

MAC上用finder>前往>连接服务器添加如:http://192.168.2.2:8080/downloads这样的形式即可连接访问。用户名admin,密码就是上面创建的那个。

其他推荐的软件还有RailDrive, bitkinex. windows上使用可在本站搜索 webdav参考群晖搞机的文章。

启用samba server,并通过windows连接

termux 安装samba

pkg install samba
cp $PREFIX/share/doc/samba/smb.conf.example $PREFIX/etc/samba/smb.conf
cd $PREFIX/samba
cp smb.conf smb.conf.backup
nano smb.conf

主要是启用guest登录,并设置共享路径。修改:

map to guest = Bad User
guest ok = yes
path = @TERMUX_HOME@/storage/shared

path应该不需要改,默认是共享sdcard全盘的。
启动smb服务:smbd。如果报错,有可能是有的软件不配套,更新一下:

pkg update
pkg upgrade
smbd

注意,由于android限制端口, smbd默认启动端口是4445,而windows默认是445端口。termux在很多手机上是不能提权为root的。
这儿有一个问答:https://superuser.com/questions/702948/how-to-mount-a-samba-share-on-non-standard-port似乎能解决,因为要下载运行一个脚本,暂未测试。
第一个答案:

This is possible! It's been a good few years, but combining a loopback interface tutorial I found with portions out of @Mike's [..link-only] answer (multihost version) I've created a script that can do this for you.

You can use this after running Install-Module -Name LoopbackAdapter -MinimumVersion 1.2.0.0 in an admin terminal (dont forget to dot-source the script so you can call this).

Create-Host -Name bob -Ip 10.254.0.1 -Dest ipOfHostname -Port port
which [upon reboot] will allow you to go to \bob (fake IP 10.254.0.1) which attaches to your "hostname:port" from your question.
This will persist across boots and you don't need to re-run it if the source server goes up or down; teardown is as simple as Retire-Host -Name bob.

That easy, one command, programmatic, no gui/windows settings dialogs; but feel free to follow along below manually.

翻译过来就是:先在powerscript用admin运行Create-Host -Name bob -Ip 10.254.0.1 -Dest ipOfHostname -Port port,然后运行作者的ps1脚本https://gist.github.com/Hashbrown777/081e57ff9673a1f457e1c3a71b55cfaf#file-attachsmb-ps1-L61, 然后就可以使用\\bob连接目标设备了。

苹果和安卓的时间构造函数new Date()不同

在安卓手机上可以接受new Date('1971-1-1'),而在苹果手机上这样构造出来的是Date <Null>, 苹果只能接受new Date('1971-01-01')这种形式的构造, 也即是必须严格遵循yyyy-mm-dd, 前面要补零.

云开发打不开或者白屏

微信开发者工具有时候会悄无声息的升级, 有时候给你升级到RC版, 有时候升级到不带RC但是也不是stable的版本. 这两个版本都会遇到这种问题. 版本回退就好了. 如果是RC版,可能要退两次,也就是RC->普通版->Stable版

不同的日志功能与费用

小程序有小程序的日志, 云函数还有云函数的日志.

小程序的日志有两种: 本地日志和实时日志.

  • 本地日志用log = wx.getLogManager()获取日志管理器对象使用, 需要用户手动上传日志. 原话是用户可以通过使用 button 组件的 open-type="feedback" 来上传打印的日志。 logManager官方文档
  • 实时日志用wx.getRealtimeLogManager()获取管理对象, 微信自动管理上传策略. RealtimeLogManager官方文档. 实时日志需要登录小程序后台, 从“开发->开发管理->运维中心->实时日志”进入日志查询页面。目前已经并入We分析. 然后We分析有基础和专业版之分, 专业版要收费. 影响是: 基础版只支持5000条/天开发数据上报, 并且保存7天, 开发数据包含小程序日志、插件日志、性能事件.

云函数日志也分基础和高级. 高级也是要收费的. 可以在开发工具的云函数面板中查看.

进入页面的方法的不同(GPT生成)

小程序中,有几个不同的方法可以用来进行页面跳转,包括wx.navigateTo、wx.navigateToMiniProgram、wx.redirectTo和wx.reLaunch。这些方法之间存在以下区别:

wx.navigateTo:用于打开新的页面,并将其加入页面栈中。新页面打开后,可以通过返回按钮返回上一个页面。
wx.navigateToMiniProgram:用于打开其他小程序。当调用该方法时,会打开目标小程序,并且会在当前小程序后台运行,用户可通过左上角的关闭按钮返回到当前小程序。
wx.redirectTo:用于关闭当前页面,并打开新的页面。被关闭的页面将会被销毁,新页面会替换原来的页面。
wx.reLaunch:用于关闭所有页面,并打开新的页面。所有已存在的页面将会被销毁,仅保留新打开的页面。
需要注意的是,以上四个方法均需要在App.json文件中对应的页面路径进行配置。此外,redirectTo和reLaunch方法可以进行跳转传参,而navigateToMiniProgram方法可以进行跳转传参和附加数据传递。
另外, 小程序组件navigator具有所有这些打开页面的功能.

阿里企业邮箱有个功能, 员工账户删除后, 会转移到账号回收站中保留30天, 在这儿可以点击删除的邮箱后面的转移邮件按钮, 将它转移到其他邮箱中, 比如一个集中的邮件存档邮箱, 并且是集中存储在一个文件夹中的
也可以用foxmail把邮件收下来以后再删除, 也可以和上面的方法结合,把存档邮箱收下来. 但注意要使用imap, 不要用pop3, 因为pop3收不了邮箱文件夹里的邮件.