技术文章

Flutter之CustomPainter时钟绘制

故事扮演 提交于 2021-02-20 06:42:49
无意间在网上看到下图的绘制效果,便想着画一个时钟,正好学习一下,先上图。 环形圆 时钟 请大家忽略那个可恶的数字“0”。。。 环形圆关键代码 @override void paint ( Canvas canvas , Size size ) { int n = 20 ; var range = List <int> . generate ( n , ( i ) => i + 1 ); for ( int i in range ) { double x = 2 * math . pi / n ; double dx = radius * math . sin ( i * x ); double dy = radius * math . cos ( i * x ); print ( "dx${i.toString()}=>${dx.toString()}" ); print ( "dy${i.toString()}=>${dy.toString()}" ); canvas . drawCircle ( Offset ( dx , dy ), radius , myPaint ); } } 时钟完整代码 class TimeClockWidget extends StatefulWidget { @override _TimeClockWidgetState createState (

java.sql.SQLException: The server time zone value 'Öйú±ê×...

拜拜、爱过 提交于 2021-02-20 06:09:08
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java: 127 ) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java: 95 ) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java: 87 ) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException

为Android添加开机启动脚本

心已入冬 提交于 2021-02-20 05:59:46
转:https://blog.csdn.net/u014316462/article/details/76438611 本文介绍了一种在 Android 4.2.2源码中添加、修改文件或者代码,来达到使 android 在启动时,执行位于/system/etc/目录下的shell脚本文件的方法。   由于平台不同,可能细节上多有差异,但是大体方式应该是相同的。 最近在做项目的过程中,遇到了这么一个需求,需要在Android(4.2.2)启动时候执行以下命令,命令的具体含义不再解释: mount -t usbfs none /proc/bus/usb 最初做法是将其加入init.rc文件中,但是发现此方法行不通,原因到现在也未查明,希望知道原因的朋友能够留言告知,不胜感激o(∩_∩)o 。 接着查阅相关资料,发现将命令写入一个sh文件中,之后在开机的时候执行该sh文件,同样能够达到效果,于是新建了一个sh文件usbfs.sh,内容如下: #! /system/bin/sh mount -t usbfs none /proc/bus/usb 这里需要注意的是,操作该文件(包括新建、编辑)时尽量在 Linux 环境下,不要在Windows下。我开始做这步的时候是在Win下进行内容编译,之后将文件拷贝至Android源码相应位置的。结果编译完成, 镜像 烧写后发现死活都不执行,或者报错

Unity3d基于Socket通讯例子(转)

心不动则不痛 提交于 2021-02-20 05:59:19
按语:按照下文,服务端利用网络测试工具,把下面客户端代码放到U3D中摄像机上,运行结果正确。 http://www.manew.com/thread-102109-1-1.html 在一个网站上看到有关于Socket的通讯事例,就拿来学习学习,高手就莫喷! 原文链接: http://bbs.9ria.com/thread-364859-1-1.html 首先, 直接两个服务器端代码丢到相机上,然后也把客户端代码挂到相机上,发布服务端 ,再把 服务器两个代码勾掉再发布客户端 , 最后运行服务端,再运行客户端。 unity里面展示:file:///C:/Users/Administrator/AppData/Local/YNote/data/qq233344ACD51 2D 13C553FF71505B4C730/8d394e1cb202445dafbc1da3c2f90daa/clipboard.png <ignore_js_op> 170852ep29d9rlojpje9cd.png (161.87 KB, 下载次数: 79) 下载附件 保存到相册 2017-3-28 13:37 上传 file:///C:/Users/Administrator/AppData/Local/YNote/data/qq233344ACD512D13C553FF71505B4C730

马尔可夫链

徘徊边缘 提交于 2021-02-20 05:59:01
练习题 在英国,工党成员的第二代加入工党的概率为 0.5,加入保守党的概率为 0.4, 加入自由党的概率为 0.1。而保守党成员的第二代加入保守党的概率为 0.7,加入工党的 概率为 0.2,加入自由党的概率为 0.1。而自由党成员的第二代加入保守党的概率为 0.2, 加入工党的概率为 0.4,加入自由党的概率为 0.4。求自由党成员的第三代加入工党的概 率是多少?在经过较长的时间后,各党成员的后代加入各党派的概率分布是否具有稳定 性? # -*- coding: utf-8 -*- """ Created on Thu Jan 12 10:42:13 2017 @author: DaiPuWei """ """ 这是练习题一: 在英国,工党成员的第二代加入工党的概率为 0.5,加入保守党的概率为 0.4, 加入自由党的概率为 0.1。而保守党成员的第二代加入保守党的概率为 0.7,加入 工党的 概率为 0.2,加入自由党的概率为 0.1。而自由党成员的第二代加入保守党的概率 为 0.2, 加入工党的概率为 0.4,加入自由党的概率为 0.4。求自由党成员的第三代加入 工党的概 率是多少?在经过较长的时间后,各党成员的后代加入各党派的概率分布是否具 有稳定性? """ import pandas as pd import numpy as np def run_main () :

给日志打标签,让你的日志定位再无困难

时光毁灭记忆、已成空白 提交于 2021-02-20 05:58:39
背景 不知道各位在生产日志中定位问题时有没有碰到这样的场景:由于coding的时候日志输出的比较少,出现问题时,很难通过日志去定位到问题。又或者是,你明明coding的时候有输出日志。但是在庞大的日志文件中,由于业务线程并发比较多,你输出的日志又没有加关键信息。你也很难定位到你所需要的日志信息。 之前在公司里写业务代码时,为了使每个RPC调用能被日志记录下来,我们在公司基础组件里定义了一个切面,拦截所有的RPC调用,方法开始之前,在日志里输出调用的服务和方法以及参数,方法结束时输出方法的耗时。我相信很多人也是这么做的。 这样一来 ,所有的调用都能通过参数里的关键信息被搜索到。也能定位到调用是什么结束的以及耗时。 但是在有些业务方法中,也打上了很多的业务日志。由于核心业务的tps和qps很高,日志是互相穿插的。如果你的日志没有打上关键的业务信息(比如订单号,业务ID),那就很难在日志中被定位出来。 也许有些童鞋会说,用线程号呀。通过搜索业务ID定位到调用开始的地方,再搜索这条线程的线程号,就可以定位整个请求的所有日志。其实之前我也是这么干的,但是线程一般都是由线程池进行管理的,在tps很高的业务中,同一个线程号有可能短时间会出现多次,但是却是不同的请求。而且业务方法中可能也会有异步线程,导致了线程号会变。这样对于定位日志就又增加了难度。当然最后可以通过对时间戳的分析

VS2010

寵の児 提交于 2021-02-20 05:58:21
1 导言 在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的) 的时间远多于写代码的时间。通常,debug是指发现缺陷并改正的过程。修正缺陷紧随debug之后,或者说二者是相关的。如果代码中存在缺陷,我们首先 要识别造成缺陷的根本原因(root cause),这个过程就称作调试(debugging)。找到根本原因后,就可以修正缺陷。 那么如何调试代码呢?Visual Studio提供了很多用于调试的工具。有时调试需要花费大量时间去识别root cause。VS提供了许多辅助调试的便捷的工具。调试器(Debugger)包含错误列表、添加断点、可视化的程序流程、控制执行流程、Data Tips、监视窗口(watch windows)、多线程调试、线程窗口、并行调试概览以及IntelliTrace调试概览。我希望本文能够对调试功能的使用者有所裨益。请注意,本文 使用VS2010。某些功能在旧版本中也是一致的,但是VS2010新增了许多features(Labeling breakpoint, Pinned DataTip, Multithreaded Debugging, Parallel debugging and IntelliTrace)。 2 如何启动调试? 可以通过VS的调试(Debug

Centos7安装.Net Core 2.2环境以及部署.Net Core MVC程序(Apache+Jexus环境)

狂风中的少年 提交于 2021-02-20 05:57:44
原文: Centos7安装.Net Core 2.2环境以及部署.Net Core MVC程序(Apache+Jexus环境) 1.双11抢购搬瓦工VPS.配置如下: CPU:2 核 内存:2048 MB 硬盘:40 GB SSD 流量:1 TB 带宽:1 Gbps 2.VPS安装Centos7-x86_64-bbr系统(bbr 是为了加速科学上网) 3.开启80端口 CentOS7打开80端口: firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld.service 如果上述命令无法找到的话,使用以下命令 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables save service iptables restart 4.安装Apache 安装之前都要记得,先执行update yum update  安装Apache yum install httpd httpd-devel  安装完成之后启动Apache systemctl start httpd.service  访问IP,成功如下图。 附上Apache几条命令(我已经偷偷设置开机启动) systemctl start httpd

C#后台调用Http外网接口(GET, POST)

六眼飞鱼酱① 提交于 2021-02-20 05:57:22
1.get方法调用接口获取json文件内容 public void GetFunction() { string serviceAddress = "http://222.111.999.444:8687/tttr/usercrd/12/b7e50cb45a?userid=9999"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close();

树莓派读取光敏传感器状态

99封情书 提交于 2021-02-20 05:57:06
光敏传感器 采用灵敏型光敏电阻传感器 比较器输出,信号干净,波形好,驱动能力强,超过15mA。 配可调电位器可调节检测光线亮度 工作电压3.3V-5V 输出形式 :数字开关量输出(0和1) 设有固定螺栓孔,方便安装 小板PCB尺寸:3.2cm x 1.4cm 模块在环境光线亮度达不到设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平 连接方法 该传感器较为简单,共三个引脚,VDD,GND,DO,其中DO为开关信号输出引脚,在模块内部分已经接了上拉电阻。具体接法如下: Signal PIN VDD Physical Pin 2 GND Physical Pin 6 DO Physical Pin 16 示例代码 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(23, GPIO.IN) while True: print("sensor state %02x" % GPIO.input(23)) time.sleep(1) 来源: oschina 链接: https://my.oschina.net/u/2353668/blog/3020343