- gnvm切换node版本号
babywenever
node.jsnpm
1.gnvm下载官网GNVM-Node.jsversionmanageronWindowsbyGo2.安装2.1不存在Node.js环境下载并解压缩gnvm.exe保存到任意文件夹,并将此文件夹加入到环境变量Path。2.2存在Node.js环境下载并解压缩gnvm.exe保存到Node.js所在的文件夹。2.3查看Node.js文件地址C:\Users\my_name>wherenodeC:\P
- Flutter完整开发实战详解(三、 打包与填坑篇)
色的归属感
httpudphttpswebsocket网络安全网络协议tcp/ip
Flutter开发实战:打包流程、APP包对比与细节处理作为Flutter开发系列文章的第三篇,继前两篇基础篇和实战篇之后,本篇将为你着重展示Flutter开发过程中的打包流程、APP包对比、细节技巧与问题处理。一、打包流程1、Android打包在Android的打包上,Flutter提供了简洁的打包流程。在android/app/build.grade文件下,配置applicationId、ve
- Oracle RAC 架构核心组件详解(入门学习笔记)
Hoxy.R
Oracle学习笔记oracle架构学习
文章目录OracleRAC架构核心组件详解1.Oracle实例(Instance)2.数据库(Database)3.Clusterware(集群件)3.1CSSD(ClusterSynchronizationServicesDaemon)3.2CRSD(ClusterReadyServicesDaemon)3.3EVM(EventManagerDaemon)4.ASM(AutomaticStora
- 嘎嘎好用!推荐三款开源的 Redis 桌面客户端!
大家好,我是Java陈序员。在日常开发中,经常会使用到Redis,为了更好的查看和操作Redis中的数据,通常会借助可视化操作客户端工具。今天,给大家介绍三款开源的Redis桌面客户端工具,开箱即用!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。TinyRDM一个现代化轻量级的跨平台Redis桌面客户端,支持Mac、Windows和Linux.
- IDEA 终端 vs CMD:为什么 java -version 显示的 JDK 版本不一致?
来自星星的坤
intellij-ideajavajdk
前言:离谱的JDK版本问题今天遇到了一个让人抓狂的现象:在Windows的CMD里输入java-version和在IntelliJIDEA终端输入java-version,居然显示了不同的JDK版本!本以为是环境变量、缓存或者IDEA设置的问题,折腾了一整天,翻遍了各种资料,才终于找到真正的原因。这篇文章详细记录我的排查过程,以及IDEA在JDK版本管理上的一个“坑”。如果你也遇到类似的问题,希望
- 装mathtype遇到的问题
mariorio
装mathtype需要注意:问题:问题1:字体解决方法:将mathtype的文件夹下fonts的字体都复制到windows的fonts文件夹下问题2:解决方法2:步骤一确保路径被office信任。依次打开word->文件->选项->信任中心->信任中心设置->添加新位置,添加C:\ProgramFiles\MicrosoftOffice\Office14\STARTUP。步骤2:步骤二在MathT
- c语言线程Pthread讲解
jacklin_001
C语言学习笔记
POSIX线程(POSIXthreads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、MacOSX等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32作用线程库实行了POSIX线程标准通常称为Pthreads。POSIX线程具有很好的可移植性,使用p
- python 桌面程序开发
一醉千秋
WebGL3Dpython+银河麒麟python开发语言
作为python新手,通过编写代码,与java、nodejs相比较,差别还有的。环境配置:IDE:VisualStudioCodePyInstaller:5.13.2Python:3.7.0Platform:Windows-10-10.0.22621-SP0功能描述:编写带UI界面的桌面程序,读取终端设备历史轨迹数据,采用多线程高并发,模拟终端设备实时定位发送,检测服务端程序的性能。1.线程写锁l
- <Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色
机构师
rust后端icedGUIvscode
前言本专栏是Rust实例应用。环境配置平台:windows软件:vscode语言:rust库:iced、iced_aw概述本篇构建了这样的一个实例,可以动态修改UI的主题,通过菜单栏来选择预设的自定义主题和官方主题,以及实时修改rgba色彩来动态调整主题色。UI图示:如上图,本实例是一个简单的应用,是利用菜单栏来选择窗口的主题色,可以选择预设值,也可以选择自定义值,还可以动态调整:本篇内容:1、动
- MathType安装出现问题解决
heda3
安装教程及Bug解决word
office2021-64位版本,下载安装mathtype版本7.8如下https://downloads.wiris.com/mathtype/windows/MathType-win-zh-7.8.2.441.exe安装完成后出现:无法加载宏,以及Word工具栏的MathType出现灰色。原因是安装后需要设置选项:(1)MathPage.wll拷贝到offic的相应目录MathPage.wll
- SVM算法练习
dedsec0x
支持向量机算法机器学习
目录一、前言二、使用libSVM②libsvm实现模型训练并写出决策函数的数学公式三、参考文章一、前言libSVM简介LIBSVM是台湾大学林智仁(LinChih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较
- python之selenium中的窗口切换
满满呀
selenium测试工具
前提:触发一个事件打开一个新的窗口1,先获取所有的句柄:handles=driver.window+handlers2,获取当前窗口cururl=driver.current_url3,循环遍历所有句柄forhandleinhandles:driver.switch_to.window(handle)ifcururl=='目标窗口'break方式二:1,获取当前句柄driver.current_w
- 谷歌将 Android OS 完全转变为 “内部开发”
自不量力的A同学
android
2025年3月27日,据AndroidAuthority报道,谷歌证实将从下周开始完全在内部分支机构闭门开发安卓操作系统。相关信息如下:背景:多年来,谷歌同时维护着两大安卓主要分支,一是面向公众开放的“安卓开源项目(AOSP)分支”,二是谷歌内部使用的“内部开发分支”。AOSP分支可供任何人访问,而谷歌的内部分支仅限于拥有谷歌移动服务(GMS)许可协议的公司。谷歌一直在其“内部开发分支”开发安卓的
- hyperlight:轻量级虚拟机管理器,实现代码安全沙箱
滑姗珊
hyperlight:轻量级虚拟机管理器,实现代码安全沙箱hyperlightHyperlightisalightweightVirtualMachineManager(VMM)designedtobeembeddedwithinapplications.Itenablessafeexecutionofuntrustedcodewithinmicrovirtualmachineswithveryl
- android 字体大小 根据分辨率 自动调整
2401_87022338
androidjava开发语言
((Button)v).setTextSize(adjustFontSize+2);}elseif(vinstanceofTextView){if(v.getId()==R.id.title_msg){//顶部标题((TextView)v).setTextSize(adjustFontSize+4);}else{((TextView)v).setTextSize(adjustFontSize);}
- Android中自定义蓝牙的MTU
MasonYyp
Android
1、最大传输单元(MaximumTransmissionUnit,MTU)MTU是指在一个协议数据单元中(ProtocolDataUnit,PDU)有效的最大传输Byte。2、蓝牙MTU默认23个Bytecorespec中ATT的默认MTU为23个Byte,ATT的Opcode占1个Byte、ATT的Handle2个Byte、GATT占20个Byte。23Byte(ATT)=1Byte(Opcod
- 单例模式(Singleton Pattern)
m0_55576290
c++设计模式单例模式javascript开发语言
单例模式(SingletonPattern)任务管理器可以作为一个全局的任务配置管理类,使用单例模式保证全局只有一个实例。这样你可以避免在应用程序中创建多个任务管理对象,保持配置参数的统一。示例:classTaskManager{private:staticTaskManager*instance;TaskManager(){}//私有构造函数public:staticTaskManager*ge
- FreeRTOS 线程本地存储(Thread Local Storage, TLS)详解
指令集诗人
FREERTOSarm开发c语言
FreeRTOS中的线程本地存储(ThreadLocalStorage,TLS)是一种允许每个任务(线程)独立存储私有数据的机制,类似于其他操作系统(如Linux的__thread或Windows的TlsAlloc)的线程局部存储。通过TLS,每个任务可以拥有独立的数据副本,避免全局变量在多任务环境中的竞争问题。1.FreeRTOS中的TLS实现原理FreeRTOS通过任务控制块(TaskCont
- WPF 设置窗口在屏幕中央显示
魑魅魍魉都是鬼
c#wpfwindow
在InitializeComponent();之前添加WindowStartupLocation=WindowStartupLocation.CenterScreen;//////InteractionlogicforMainWindow.xaml///publicpartialclassMainWindow:Window{publicMainWindow(){WindowStartupLocat
- Android Audio基础——MediaPlayer播放音频(二十一)
c小旭
AndroidAudioandroidAudio开发
AndroidSDK提供了3套音频播放的API,分别是:MediaPlayer,SoundPool,AudioTrack。简单来说,MediaPlayer更加适合在后台长时间播放本地音乐文件或者在线的流式资源。SoundPool则适合播放比较短的音频片段,比如游戏声音、按键声、铃声片段等等,它可以同时播放多个音频。而AudioTrack则更接近底层,提供了非常强大的控制能力,支持低延迟播放,适合流
- 使用Clang编译内联intel语法汇编的C/C++项目
witton
#汇编跨平台LLVM/Clangclang内联汇编intelCC++
我们在编写C/C++代码时,如果在有较高性能需求的时候,可以使用汇编代码来编写相应的函数,C/C++直接调用即可。汇编的语法格式有两种,一种是我们在Windows下常见的Intel的语法格式;另一种是GCC下使用的AT&T格式的语法,这种语法对我们经常使用Windows或者从Windows开始学习编程的开发人员来说会感觉很晦涩。我们看看MS方式的内联汇编写法:__asm{pushraxxorrax
- H5与原生通讯之二 (DSBrige,H5,IOS,Android源码实例)
极客雨露
HTML5H5和原生
H5与原生通讯之二(DSBrige,H5,IOS,Android源码实例)H5和natvie通讯方式简介1.H5和IOS通讯2.H5和Android通讯H5和natvie通讯具体实现1.通过DSBrige方式1.1H5和IOS端源码解析1.2dbbridge安卓端源码解析1.3dbbrigejs代码1.4IOS端使用DSBridge框架API1.4.1集成源码1.4.2Api使用1.4.3Api注
- CS2 DEMO导入blender(慢慢更新咯)
HECUgauss
Source2经验分享
流程:cs2-sourcefilmmaker-blender工具:cs2tools,cs2manager,blender,blender插件sourceio,source2viewer导入sfm工具界面选择这个sourceio插件sourceIO其中新版本导入相机路径不见了,最后支持版本5.3.0
- Android学习总结之通信篇
每次的天空
android学习
一、Binder跨进程通信的底层实现细节(挂科率35%)高频问题:“Binder如何实现一次跨进程方法调用?”候选人常见错误:仅回答“通过Binder驱动传输数据”,缺乏对内存映射和线程调度的描述混淆Binder驱动与AIDL的角色满分答案:Binder的跨进程通信依赖于三层协作模型:1.用户空间与内核空间的交互:Client通过BinderProxy调用transact(),将请求封装为Parc
- 最新libimobiledevice库移植到windows
物联Bill
果粉windowsiosc语言
最新libimobiledevice库无法直接在windows上编译运行。能在windows编译的开源项目libimobiledevice-vs已经几年没有更新了。已经无法支持最新的苹果手机了,因此只能自己着手把最新的libimobiledevice移植到windows。首先gitclone最新源码:gitclonehttps://github.com/libimobiledevice/libim
- 工具、数据与情绪:计算机技术的三重境界
狒狒的代码王国
学习方法深度学习学习
此篇文章是我对计算机应用的理解,写着玩的。第一层境界:工具的熟练与桎梏计算机语言和工具构成了我们与数字世界对话的基础语法。Java、C、C++、Python等编程语言,IntelliJIDEA、VisualStudio等开发环境,Linux、Windows等操作系统,这些都是技术人员赖以生存的"锤子与钉子"。在这个层面上,我们如同工匠学徒,专注于工具的握持方式、使用技巧和保养方法。一个优秀的程序员
- 2025 前端 JS 源码逆向实战:6 种绕过限制查看源码的合法方法
阿贾克斯的黎明
网络安全状态模式
目录引言:为何需要绕过前端JS限制?一、浏览器开发者工具深度用法1.动态断点拦截(Chrome117+增强功能)2.Overrides功能持久化修改二、代理工具拦截与响应篡改1.BurpSuite2025动态解混淆三、浏览器扩展生态应用1.资源嗅探与下载(2025新版插件)四、本地代码劫持与Hook技术1.覆盖原生JavaScript方法五、移动端源码提取方案1.Android混合应用逆向六、源码
- 关于Android模块编译
你好,工程师
Androidandroidjavaapache
1、m:编译整个安卓系统makesfromthetopofthetree2、mm:编译当前目录下的模块,当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Android.mk文件。buildsallofthemoudlesinthecurrentdirectorymma:当前目录新增或删除文件后,可以用mma重新编译。3、mmm:编译指定路径下的模块,指定的路径下面需
- 修改Android系统默认语言
你好,工程师
Androidandroidjava
方法一:打开build/target/product/full_base.mk将PRODUCT_LOCALES值修改即可;zh_CN为中文、en_US为英文方法二:修改对应locale属性亦可方法三:设置属性PRODUCT_PROPERTY_OVERRIDES+=\ro.product.locale=zh-CN\ro.product.locale.language=zh\ro.product.lo
- 【Rust CAD开发入门】第一章 环境搭建 第一节 Rust安装指南:Windows、macOS和Linux系统上的详细步骤
Source.Liu
用Rust写CADrust开发语言windows
文章目录一、Windows系统下载rustup-init.exe:运行rustup-init.exe:配置环境变量:验证安装:二、macOS系统安装Homebrew(如果尚未安装):三、Linux系统(以Ubuntu为例)安装依赖:使用rustup脚本安装Rust:四、注意事项安装Rust可以通过其官方提供的rustup工具来完成,以下是详细的安装步骤:一、Windows系统下载rustup-in
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http