关于物联网, 互联网, 机器学习
JLink 软件包提供 JLinkRemoteServer,通过监听 19020 端口,为其他调试客户端提供网络远程调试功能,同时官方提供 tunnel 服务,实现跨局域网调试。如果自己有外网服务器,也可以非常简单地通过 FRP 自建 JLink 中转服务。
Flutter 是由 Google 开发的开源 UI 软件开发工具包,用于构建跨平台的高性能应用程序。通过一套代码库,开发者可以同时为 iOS、Android、Web 和桌面平台创建原生应用。通常情况下,Dart 代码会通过 MethodChannel 的方式与各平台原生代码进行交互,而原生代码通常也是根据不同平台由 Java,Swift,C++ 等语言编写。除此以外,一些与平台相关性不大,但使用 Dart 语言实现困难的跨平台代码,则适合使用 Rust 或者 Go 等编程语言实现,本文章记录 Flutter + Go 实现跨平台应用开发。
本文记录双 RTX4080 显卡运行 Yi-34B-Chat-4bits 模型过程与排错。
基于 Docker 环境实现 EFR32MG21 官方 Bootloader, Zigbee 协调器与 Matter 固件编译打包与烧录。
最近在一个 mips 架构的嵌入式 Linux 上用到 ring 与 rustls,由于 ring 0.16.20 对 mips 的支持较差,而 0.17 又迟迟不发布,只能魔改一堆包。
最近发现 ESP32 相对于其他品牌单片机而言对 Rust 的支持还算完善,特别是对 std 的支持,使得很多对嵌入式而言相对高阶的库可以非常简单地使用。
手上有几台闲置的几台斐讯 N1 刚好达到安装 Kubernetes 的最低硬件要求,于是趁着五一假期在家捣弄个“高可用”斐讯 N1 K8S 集群,用于运行 HomeAssistant
本笔记并不是一个完整的关于 OpenWRT 移植的笔记,只作为个人备忘用。同时亦分享出来给需要的朋友作为参考。水平有限,如果有出错地方请反馈 yplam(at)yplam.com
鉴于之前玩的 MT7688A 已经停产并且模块断货,最近把目光投向一款新芯片:iMX6ULL,因为其起点价格在接受范围,最低配置的核心板价格在百元以内,128M+128M 足够跑我的OpenThread网关,通用芯片该有的功能都有,按功能来算的话比 MT7688A 性价比还高。
OpenThread 边界路由器的作用是作为 Thread 网络与其他基于IP的网络(如WIFI、以太网)的桥梁。有了边界路由器的存在才让 Thread 网络中的设备成了跟手机、电脑等对等的一员(是的,基于IP就是那么自信)。
最近经常要到一些没有有线网络的地方,虽然手机可以共享WIFI出来,但总不能24小时开着,刚好手上空闲着一块 EC20 4G 模块, 于是淘宝弄了块最便宜的 MT7688 4G 路由板回来,DIY 自己的 4G WIFI共享路由器。
Symfony 5 已经发布了一段时间,Symfony 4 也出了 4.4 LTS 版本,于是准备把手上一个历史遗留项目升级到 4.4,然而一动手就遇到麻烦,因为现在官方已经不推荐使用之前那种传统的大 bundle,而是倾向于更通用的组件(作为一个从 Symfony 2 过来的用户,不得不说挺支持官方的做法,因为经常会因为有 bundle 不及时更新而导致 composer 冲突)。
本文章将尝试从头开始创建一个 Symfony 4 基础应用。
两年多前曾经在服务器上部署了个 Tensorflow 模型,由于 Tensorflow serving 刚公布不久,并且还没阅读相关文档,所以当时就粗暴的用 Flask 写了个接口就放到线上跑了两年。
最近又需要在服务器上部署些模型,决定用回比较官方的方式,研究一下 Tensorflow serving。
偶尔有收到用户关于 “Could not decode image: ***” 的反馈,并且最近频率有增加的趋势,解开 Theme 文件除了图片有点大以外看不出其他问题,所以决定花点时间跟踪一下 Chromium 源码。
阅读 Chromium 源码的过程中,发现最大的障碍在于自己对 C++ 的理解还停留在大学时期,平时使用 C++ 也 仅仅停留在写个简单类,单例、工厂等简单的模式;所以在此针对 Chromium 源码中自己未曾用过的编程方式 做一个笔记。
从上一篇知道 chrome/browser/themes/ 的数据流为从 Extension Service 得到 Theme 安装信息,并且通过 BrowserThemeProvider 为 UI 层提供 Theme UI 信息。本篇分析 UI 的 views 层,不过由于 views 层代码量实在庞大,以及对 Chromium 内部实现机制欠缺了解,所以本文只能作为一个入门概览。
前言:最近花了几天时间解决 Chromium CRX3 文件格式编码问题,然后决定用部分业余时间学习 Chromium 源码,从 UI/Theme/Extension 开始。(因为7,8年前曾经马马虎虎地看了一遍 Theme 以及其渲染过程的代码,并且写了一个简单的 Theme 打包工具,所以现在决定还是以此作为入口。)
最近手上有个小项目需要兼容 Chrome CRX3 版本的扩展格式,Google 了一下竟然完全没有相关介绍文档,于是决定啃一下相关代码。
之前用现成的Lora串口模块感觉挺顺手,最近偶尔看到带 LoraRanging 功能的 SX1280,于是买了两个模块回来测试一下。
源码地址 https://github.com/yplam/LoraRangingTest
此笔记记录 Mbed OS 在 STM32F405RG 下配置 Bootloader 的过程。 Mbed OS 是 Arm 公司推出的专门面向 Arm 微处理器以及物联网应用的开源实时操作系统。
Universal Recommender (UR) 是 ActionML 公司基于 PredictionIO 开发的协同过滤引擎,使用 Correlated Cross-Occurrence (CCO) 算法,可以应用与个性化推荐、物品相关推荐、购物车推荐、基于业务逻辑的推荐等。
关注 Apache PredictionIO 已有一段时间,最近需要做一个过滤论坛广告贴的功能,调研了一番市面上提供文本检测的API服务,发现靠谱的公司都比较贵,并且准确率不高(一个可能性是他们使用的训练数据集是互联网上的通用信息,而我们是一个垂直行业论坛,攻击来源也可能是固定的那么若干个),于是尝试自己实现个文本分类器来过滤广告。
Symfony 4 如期在11月的最后一天发布,相比与 Symfony 2 到 Symfony 3 的升级,Symfony 4 的变化似乎更大,特别是由于加入 Flex 以及 Service Autowired,开发方式都会发生比较大的变化。
跟风关注机器学习已有一段时间,最近需要做一个图像识别的项目,刚好 Google 开源了 Tensorflow Object Detection API , 于是在此基础上做了一次尝试。本笔记从一名程序员的角度记录一次基于 Tensorflow Object Detection API 的图像物体识别项目过程,项目使用 Google Cloud Machine Learning 进行模型训练, 使用阿里云 GPU 服务器进行模型测试评估。
Netflix Prize 是2006年Netflix启动的一个机器学习和数据挖掘比赛,旨在解决电影评分预测问题。
最近看了一本挺不错的新书:《 Hands-On Machine Learning with Scikit-Learn and TensorFlow 》,在此分享一下。
最近在琢磨能不能用 CNN 来训练一个模型,用于控制一个模型小车,实现简单的循迹或者所谓的自动驾驶。于是拿出布灰已久的 Edison + 两轮平衡车 + 罗技摄像头,计划将这几样组装起来,上面运行 ROS 作为我的“机器人”平台,然后在笔记本上运行 master 做运算与控制。本笔记记录 ROS 在 Edison 上安装与运行 usb_cam 获取图像传输到主机的过程。
This tutorial shows you how to install ROS Indigo on Edison Ubilinux from source.
注:本文为 Predicting customer behavior: How we use machine learning to identify paying customers before they subscribe 的简单翻译版本,详细内容请阅读原文。
本案例为 strong.io 公司的一位创业公司客户,该客户开发了一个类SaaS软件,但在经过多年的稳固发展后,他们的每月收入增长却开始变得很缓慢。他们曾经尝试改善他们的产品,但效果可能不好,因此现在将重点放在客户获取上面。
用户画像是根据用户社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型。构建用户画像的核心工作即是给用户贴“标签”,而标签是通过对用户信息分析而来的高度精炼的特征标识。
最近迷上了机器学习,花了不少时间学习相关的基础内容;虽然数学跟不上,也不妨碍跟风玩玩各位大牛的开源成果。 本文记录了购买AWS GPU服务器,安装cuda、 TensorFlow,运行 Neural Style 测试的过程。
机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,一条自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。来源
本文记录机器学习相关的概念与资料索引。
localStorage 对象用来在浏览器本地存取数据,并且数据不因浏览器的关闭而丢失。浏览器中同一个域下的窗口可以共享 localStorage 数据。因此我们可以利用这一特性进行跨浏览器内的跨页的事件发送,从而进行通讯。
ELK Stack 由 Elastic.co 公司名下的 Elasticsearch、Logstash、Kibana 三个开源软件的组成,用于日志的快速搜索和分析。
This post show you how to configure Ubuntu as 6LoWPAN router and bridge 6LoWPAN devices to the IPv4/IPv6 Internet.
Symfony2 是一个全功能的框架,因此有些开发人员会以它太“重”了(而不是太“难”了)为理由而拒绝使用。在开发环境下,一个简单的Symfony页面大概需要花费 70ms,而prod环境下大概需要30ms(以上是个人在一个Web App上实践后数据)。虽然相对其提供的功能而言,这是一个可观的数据,但对于一个简单的REST API请求而言,这也许真的太“重”了。
持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文记录如何使用 Jenkins 与 Github 对 Symfony 2 应用进行持续集成。
网络世界充满漏洞,同样,网络世界充满着寻找漏洞的人。为Web服务器的后台路径添加HTTP AUTH认证,是防范漏洞被探测到的一个简单有有效的方法。
对于一些UGC(用户创建内容)类网站而言,特别是图片网站,随着用户数的增长,时间的推移,网站上的文件会越来越多;得益于云服务的出现,存储系统的扩展变得简单,一个比较常用的做法就是将文件存储于AWS S3,然后用户通过S3或者CloudFront下载。然而虽然AWS S3的储存价格相对便宜,但流量价格却非常高,最终导致网站的托管开销增加。
在Apache环境下使用 .htaccess 进行URL重写或许已经是一种非常常用的方式;然而,如果URL重写规则比较复杂,使用.htaccess的方式可能会影响到Apache的性能。
最近拿到几块Intel的企业级SSD准备搭建新的服务器,下面分享一些这段时间的测试数据。
测试主要在DELL R610、阿里云4核非IO优化SSD服务器环境下进行,测试工具为sysbench。
测试过程主要是使用sysbench命令分别对 SATA、SAS、SSD盘进行测试,其中测试重点在于SSD性能对比。
最近尝试将自己的一些Drupal网站转移到Symfony(这个个人博客就是其中之一),下面分享一些转移过程的心得,主要包括Drupal基本功能在Symfony上的实现。
SonataAdminBundle可以非常简便地实现CRUD页面,然而,如果我们需要在后台中实现与Entity无关的管理页面,应该怎么办呢?下面分享自己在摸索工程中的一个实现方法。
所谓区块,就是在页面中展示的一块内容,可以与当前页面内容相关或者无关。譬如常见的在网站侧边栏展示 “最新文章”区块,或者在文章内容页展示“相关文章”区块。
对PHP程序员而言,empty()与isset()肯定不会陌生,甚至是每天都会调用N百遍,正因为如此,我们每个人都认为对它们已经熟悉的不得了,甚至连文档都懒得再翻阅一下,前赴后继的往坑里冲。
原文地址:Services and dependency injection in Drupal 8
Drupal 8 引入了服务的概念,用来解耦可复用的功能,并且可以通过在服务容器中注册这些服务,让它们可插拔与可替换。身为开发者,最佳的方式就是通过服务容器来访问Drupal提供的所有服务,这样可以保证遵循系统的解耦特性。在Symfony 2的文档中对服务有非常好的介绍。
Drupal Special Topic 模块提供一种通用并且可定制的 Drupal 专题页面功能。
这里的专题页面,指的是将网站中与某个话题相关的内容聚合到一个页面中,具有特殊的布局与样式设计。国内常见的专题页面大多以区块的形式展现,不同的位置显示不同的内容列表,有链接与图文混合等展示形式。
最近在用Drupal做一个微信公众平台后台,决定发扬一下开源精神,将微信部分的module分享出来,给有需要的朋友参考使用。现在还是不稳定版本,有任何建议请反馈 yplam#yplam.com 欢迎关注测试反馈:
Symfony2 文档翻译:http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html
这是一篇介绍FOSUserBundle的安装与配置笔记,面向Symfony2.1+,更详细的内容请参考:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md
这是一篇关于Symfony2服务容器实现的笔记,原文请查看文章末尾的相关资料部分。
上一篇笔记介绍了依赖注入容器,依赖注入容器使得对各种系统功能的调用变得简便,但同时引入了一个新的问题就是容器的编写与维护变得非常复杂。Symfony2试图通过ServiceContainer、ServiceContainerBuilder以及xml、yml配置文件来使容器的实现变得简单。
这是一篇关于Symfony依赖注入容器 Dependency Injection Container 的笔记,原文地址:http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container
这是一篇关于Symfony依赖注入(Dependency Injection)的笔记,原文地址:http://fabien.potencier.org/article/11/what-is-dependency-injection
以前一直使用Drupal来搭建网站,由于需要定制的代码量不是很大,所以每次修改都是直接用sftp传到服务器,再到Drupal后台清一下缓存。最近使用Symfony2进行开发,到了发布环节遇到了问题。Symfony代码的发布并不像其他CMS那么方便,因为更新代码后还需要assetic:dump,assets:install,cache:clear等一系列操作,因此每次更新往往需要登录到服务器去更新代码,运行清理cache的一系列命令。 capifony是针对Symfony开发的应用部署脚本,基于Capistrano。使用capifony只需要进行简单的配置,就可以很方便的将代码部署到不同的服务器上。
此笔记记录 Linux 下的一些命令使用技巧,作为工作中的备忘。
此笔记基于Linode Centos 5.x 64 bit 系统,安装与配置LNMP服务器环境,此配置主要用于运行Drupal。