- 博客(55)
- 资源 (4)
- 收藏
- 关注
原创 等雨停(2024-09-17 23:26 触景而作)
雷鸣闪电、闪电雷鸣,常平站外倾盆大雨、大雨倾盆;公交避雨棚下有人等车、有人等人,唯独我只等雨停!
2024-09-18 17:50:57 90
原创 Flutter项目移动端SQLite升级指南:解决json_extract函数缺失问题
Flutter移动端项目中依赖于SQLite的高级功能(如json_extract),在低版本的Android系统上部署时,可能会遇到函数不支持的问题。本文将指导你如何通过升级项目中使用的SQLite版本来解决这一问题。
2024-08-15 11:58:24 1059
原创 深入理解 Cowboy WebSocket:使用 Erlang/OTP 构建高效的即时通讯(IM)应用
实时通信技术在现代 Web 应用中扮演着核心角色,而 WebSocket 作为其中的关键技术,已成为即时通讯(IM)系统不可或缺的一部分。Cowboy,这个基于 Erlang/OTP 的轻量级 HTTP 服务器框架,以其强大且用户友好的 WebSocket 功能,为开发者提供了构建高效 IM 应用的利器。本文将深入分析如何利用 Cowboy WebSocket 来打造高性能的即时通讯解决方案。
2024-07-08 09:13:16 1324 2
原创 Erlang-pure-migrations 在 IMBoy 项目中的应用实践
一个Erlang语言的强大而灵活的数据库迁移工具,它帮助开发者以纯函数的方式管理PostgreSQL或MySQL数据库的迁移;它遵循Unix哲学,即“一切皆文件”,将数据库迁移脚本视为文件系统中的普通文件,它允许开发者使用纯SQL语句来编写迁移脚本,而无需编写任何Erlang代码;这不仅简化了迁移过程,而且提高了代码的可读性和可维护性。通过在IMBoy项目中应用,我们成功构建了一个健壯、灵活且易于维护的数据库迁移功能。它不仅提高了开发效率,而且确保了数据库迁移的安全性和一致性。
2024-06-20 21:43:44 891
原创 实时交互新篇章:WebSocket在Flutter中的应用与实践
WebSocket技术为实时通信提供了强大的支持,使得开发者能够构建动态和交互性强的应用。在Flutter中,通过包,我们可以轻松实现WebSocket功能,为应用添加实时通信的能力。无论是实时数据推送、在线游戏还是即时通讯,WebSocket都是关键技术。通过本文的代码示例,我们学习了如何在Flutter应用中实现WebSocket的连接、消息监听、发送、关闭处理及重连机制,这些是构建实时应用的基础。
2024-04-21 18:58:08 1501 1
转载 Niku:设计平衡框架的思考过程
太棒了,现在我可以对内部的属性做同样的事情,我只需要创建一个继承的类......哦,如果我碰巧抽象了像 TextFormField 这样的小部件,你不能直接在 Dart 中这样做。它是一个库,可以帮助开发人员使用相同的代码在每个主要浏览器上工作,不仅如此,它还使编码变得更容易,删除样板文件并处理冗余的东西,以便开发人员可以更轻松地开发 Web。小部件来防止内存分配,因为小部件接受回调函数,如果需要重绘,该回调函数将被执行,甚至它会分配内存,但这样做会损失属性生成器的一些开发人员经验,所以问题是, 你应该?
2024-04-21 18:54:31 128
原创 我认识的Git-Git工作流
WorkFlow 的字面意思,工作流,即工作流程。工作流不涉及任何命令,因为它就是一个规则,完全由开发者自定义,并且自遵守。集中式工作流以中央仓库作为项目所有修改的单点实体。相比svn缺省的开发分支trunk,git叫做master,所有修改提交到这个分支上。集中式工作流只用到master这个分支。功能分支工作流背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在master分支上。这个隔离可以方便多个开发者在各自的功能上开发而不会弄乱主干代码。
2024-04-04 22:31:24 893
原创 我认识的Git-史上最强的版本控制系统
大家好!欢迎大家来一起交流Git使用心得,相信很多同事对Git都很熟悉了,如果下面说的有错误的“知识点”,欢迎批评指正。其中“Git工作流”这节,本身就是一个大的课题,我这里只做一个知识汇总,希望起到抛砖引玉的作用;希望我们有自己的“工作流”;希望“我们的工作流”能够更加规范化、文档化,使得我们的工作更高效!我认识Git已经很多年了(我在有道云笔记里面“Git”文件夹的创建时间是: 2014-03-24 11:04)。我接触的第一个软件版本控制系统是SVN(在Windows7系统下面)。
2024-04-04 21:27:41 636
原创 基于 Erlang 的随机账户分配机制
我们创建了一个名为 `account_server` 的模块,它负责处理分配账户编号的任务。这个过程确保了每个用户都能得到一个独特的账户编号,并且整个过程是高效和公平的。我们可以将这个过程想象成一个装满数字的帽子,我们要做的是从这些数字中随机选一个作为你的账户编号。* 如果列表中的数字都已经被取完了,我们会重新设定一个新的数字池范围,并重复上述步骤。* 我们从这个已经打乱顺序的列表中取出一个数字,这个数字就是你的账户编号。* 然后,我们创建一个列表,包含这个范围内的所有数字,并将它们顺序打乱。
2024-04-02 23:24:23 297
原创 IMBoy缓存系统深度解析:为何选择depcache而非ETS或Redis
综合考虑,depcache以其深度融合Erlang生态、高效的依赖管理、卓越的性能和低维护成本,成为IMBoy缓存系统的最佳选择。随着IMBoy平台的持续发展,depcache将持续提供稳定、可靠和高效的缓存服务,保障用户体验的流畅性和系统的高可用性。
2024-04-02 20:44:31 907
原创 IMBoy项目的缓存机制:高效数据处理的秘诀
IMBoy项目的缓存机制是其高性能架构的关键部分之一。通过使用depcache和进程字典记忆化缓存,IMBoy能够提供快速的数据访问,同时保持系统的稳定性和可扩展性。无论是处理常规的数据检索还是管理复杂的依赖关系,IMBoy的缓存策略都能确保用户享受到流畅、高效的即时通讯体验。随着IMBoy项目的不断发展,其缓存机制也将继续演进,以满足不断增长的用户需求和技术挑战。
2024-03-30 17:49:45 469
原创 我为什么要做这个IM项目?我为什么要用erlang语言做这个IM项目?
在那里,我偶遇了一本《Erlang/OTP并发编程实战》,书中的Erlang语言以其简洁的语法和独特的“Let it Crash”哲学深深吸引了我。随着对Erlang的深入了解,我在网络上发现了WhatsApp的成功故事——一个利用Erlang构建的、支持数亿用户并发通讯的系统。IMBoy项目不仅是我深入学习Erlang的实验场,更是我追逐创业梦想的起点。尽管我对IM系统的复杂性起初知之甚少,但我坚信Erlang的高并发处理能力、卓越的容错性以及软实时性能将是我构建稳定、高效、安全通讯平台的坚实基础。
2024-03-30 17:46:51 255
原创 国密 sm2 算法在 php56 环境 thinkphp32 框架下的应用配置
国密算法 sm2 在 php56 环境 thinkphp32 框架下的应用配置(本人在 CentOS7 CentOS8 上面使用宝塔面板安装 php5.6 成功通过)
2022-10-27 14:09:46 3503 2
原创 基于erlang gen_server 的异步特定范围随机分配账户的机制
异步特定范围随机分配账户的机制,应该是一个erlang/otp 的 gen_server这个只是一个初步的思路,以后有时间了实现之初始化1.1. 设定区间左右边界 RangeStart = 10000, RangeLen = 9999991.2. 设定一个初始范围 Range 比如 [RangeStart, RangeStart+RangeLen),1.3. 设置一个空有序集合 accountSet (可调整左右边界、写入磁盘)按Range范围生产一个随机数,判断是否再 accountSet
2022-04-14 13:08:16 183
转载 html5 server-sent event 使用教程-翻译
翻译自: http://www.html5rocks.com/en/tutorials/eventsource/basics/HTML5 FeaturesStream Updates with Server-Sent EventsBy Eric BidelmanPublished Nov. 30, 2010 Updated June 16, 2011 Support
2013-12-06 17:58:57 3578
转载 【推荐】PHP上传文件大小限制大全
在php.ini里面可以设置最大上传文件大小解决方法:第一:在php.ini里面查看如下行:1upload_max_filesize = 8M2post_max_size = 10M3memory_limit = 20M
2013-09-05 15:08:34 1031
转载 php删除数组指定元素
在php中删除数组指定元素的函数没有直接能使用的,多数只能封装方法例如array_slice() 函数在数组中根据条件取出一段值,并返回.array_slice(array,offset,length,preserve)array:数组offset: 规定取出元素的开始位置。如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。 <?php$a=ar
2013-08-28 17:19:27 10845
转载 如何让TortoiseSVN导出新增或修改过的文件
当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他没有修改过的文件就没有必要上载到服务器。但一个稍微上规模的网站项目,文件是很多的,而且对于团队协作开发更难知道每次修改到哪些文件,这时候SVN的作用发挥出来了。利用Windows系统下的TortoiseSVN客户端,可以导出指定版本之间修改过的文件,并保
2013-08-26 09:56:58 17971
转载 mysql order by的一些技巧
1. 只按日期排序,忽略年份> select date, description from table_name order by month(date),dayofmonth(date);注意:单纯使用dayofyear来排序会导致错误,如2-29与非闰年的3-1日同等级 2. 排序点分式IP> select ip from tab
2013-06-27 09:06:55 11630 1
转载 基于 PHP & MySQL 搭建 OAuth Server
群里的损友们又开始叫了,说在等待我的关于 OAuth 服务器搭建 Demo 的介绍文章。这段时间一直很忙,人一忙,偶尔的一点闲暇就想睡觉,啥也不想做,学习上确实有些懈怠。此处悔过5分钟…….我之前写过一篇《一步一步搭建 OAuth 认证服务器》的文章,其实也就是介绍了一下 OAuth 的理解和 oauth-php 这个开源的项目,并没有做出一个演示。今天这篇文章就来做一个Demo,我们基于
2013-04-28 16:53:26 1099
转载 一步一步搭建 OAuth 认证服务器
现在越来越多开放的互联网公司提供对外的 API 接口,使得第三方应用开发人员可以开发基于该平台接口的应用程序。国外有Twitter、Flicker Service等;国内的,像腾讯微博开放平台、新浪微博开放平台等等。这些平台接口的认证方式,无一例外的,都采取了 OAuth 来实现(Twitter原来使用的是Basic Auth方式,后来全面转向OAuth)。那么,OAuth 是
2013-04-28 16:05:17 1776
转载 解决phpcas中的单点登出问题
问题描述系统中有一个单点登陆服务器cas,两个应用,分别是应用了spring security的uc和phpcas的i。当用户登录并分别访问了uc和i后,如果从i登出,则uc如预期的那样,就不能再访问了。然而,当用户从uc登出,应用phpcas的i却依然能访问。单点登出流程我们把i和uc统称为客户端,把cas称为服务端。当用户从客户端发起登出请求时,客户端会把用
2013-04-19 09:55:18 4184 1
转载 JavaScript事件冒泡简介及应用
一、什么是事件冒泡在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。打个比方说:你在
2013-04-17 23:33:12 665
转载 discuz 经典php加密解密函数
<?php// 参数解释// $string: 明文 或 密文// $operation:DECODE表示解密,其它表示加密// $key: 密匙// $expiry:密文有效期function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { // 动态密匙长度,相同的明文会生成不同密文就是依靠动态
2013-04-13 12:14:34 1034
转载 windows 7 查看 端口 占用情况
windows 7 查看 端口 占用情况假如我们需要确定谁占用了我们的8008端口,在windows命令行窗口下执行:C:\Documents and Settings\Administrator>netstat -aon|findstr 8008 TCP 0.0.0.0:8008 0.0.0.0:0 LISTENING 2596 端口被进程号为2596的进程占用,继续执行
2013-04-10 10:43:58 1936
转载 require(),include(),require_once()和include_once()区别
我把这两个语句放在一起介绍,读者可以比较学习。 1.require()语句 require()语句用于指定的文件代替语句本身,就象C语言中的include()语句一样。如果php配置文件php.ini中的URL fopen wrappers 是打开的(默认情况下是打开的),就可以使用URL来指定文件的位置从而实现远程文件的调用。 有一点就是使用require()和include()语句
2013-03-29 14:53:30 828
转载 内容正文选中一段文字分享到qq微博、新浪微博的代码
.img_sina_share {DISPLAY: none; CURSOR: pointer; POSITION: absolute}.img_qq_share {DISPLAY: none; CURSOR: pointer; POSITION: absolute}class=img_sina_share id=imgSinaShare title=将选中内容分享
2013-02-19 11:42:43 2411
转载 加入收藏js代码 兼容所有浏览器
我们介绍一个可兼容所有浏览器的加入收藏代码代码,大概原理是这样的我们根据获取用户navigator.userAgent.toLowerCase()信息来判断浏览器,根据浏览器是否支持加入收藏js命令,如果可以自动收藏否则就提示ctrl+D手动收藏了。 代码如下 function addFavorite2() { var url = window
2013-02-19 11:23:18 45414 3
转载 php中获得视频时间总长度的另一种方法
当时获得视频长度是采用网上的通用的获得flv视频文件长度的方法,但是这个方法只对flv视频支持,其他格式的视频获取到的值就很差了当时获得视频长度是采用网上的通用的获得flv视频文件长度的方法,但是这个方法只对flv视频支持,其他格式的视频获取到的值就很差了, 下面在介绍一种:利用ffmpeg返回值Duration的方法,原来也想过用,但是没有解决,现在可以了,由于ffmpeg支持很多种
2013-01-29 17:19:45 2111
转载 浅谈 js中parseInt函数的解析
首先还是从很热门的实例parseInt("09")==0说起。parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。比如说parseInt("010",10)就是10进制的结果:10,parseInt("010",2)就是2进制的结果:2,parseInt("010",8)就是8进制的结果:8,parseInt("010",
2013-01-24 23:45:06 523
原创 php iframe ie6、7下session问题
问题根源: IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存在此问题了。Mircosoft对此的具体描述可以参见 Privacy in Internet Explorer 6
2013-01-24 16:22:03 1005
转载 Win7配置SVN详细步骤(服务器和客户端)
1. 下载并安装服务器端SVN下载地址:http://subversion.apache.org/packages.html, 根据操作系统下载相应版本(Setup-Subversion).默认安装目录可为: D:\ProgramFiles\Subversion2 下载并安装客户端SVN下载地址: http://tortoisesvn.
2013-01-18 15:27:52 1244
转载 从 Bash 和 Korn 到 C shell:评估 Linux 中的 shell
我第一次使用现代 shell 是在二十世纪 80 年代,当时我正在 SunOS 上开发软件。当我了解了将一个程序的输出用作另一个程序的输入(甚至多次连环地使用)的能力后,我就有了一种简单且高效的方式来创建过滤器和转换。让我们首先简单介绍一下现代 shell 的发展历史,然后探讨如今一些可用于 Linux 的外来的有用 shell。AD:Shell 就像编辑器
2013-01-15 11:31:14 1081
转载 详细介绍Linux shell脚本基础学习(三)
Linux shell脚本基础学习第三讲,前面我们介绍shell命令和流程控制时,由于篇幅没能讲流程控制,今天流程控制我们这里也只是介绍前面三各部分 if case 和 select。后面还有三个部分内容只能在Linux shell脚本基础学习第四讲中介绍了。1.1.5 Shell命令和流程控制(2)3) 流程控制1.if"if" 表达式 如果条件为真则执行then后面的部分
2013-01-14 15:32:21 564
转载 详细介绍Linux shell脚本基础学习(二)
Linux shell脚本基础课程前面一讲介绍的都是语法基础的开头、注释、变量和 环境变量,这里将介绍shell命令和控制流程的第一部分,在shell脚本中可以使用三类命令,而控制流程就放在下一讲吧。1.1.5 Shell命令和流程控制在shell脚本中可以使用三类命令:1)Unix 命令:虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的
2013-01-14 15:31:29 511
转载 详细介绍Linux shell脚本基础学习(一)
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头、注释、变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提。1. Linux 脚本编写基础◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的
2013-01-14 15:30:35 513
转载 Apache Mod_Rewrite实现URL重写的配置方法
前端时间朋友的网站由于在做SEO URL的规划,需要利用Apache的Mod_Rewrite对URL进行重写,实现网站伪静态化。在拿到他们提供的URL规划方案后,我做了测试,大家可以看一下。 测试环境: Windows xp PHP4.3 Apache2.0.58 配置步骤: 第一步:找到apache的配置文件httpd.conf(文件在
2013-01-13 01:48:25 453
转载 MySQL rand函数实现随机数的方法
在mysql中,使用随机数写一个语句能一下更新几百条MYSQL数据吗?答案是肯定的,使用MySQL rand函数,就可以使现在随机数。需要测试MYSQL数据库,里面有一个上万条数据的数据库,如何写一个PHP文件一下每次更新几百条信息,我都是写一个循环一次更新一条信息,这样我知道用WHILE写就可以了,要是一次更新好比100条数据改如何写呢!正确答案是使用MySQL rand函数:UPDAT
2013-01-03 16:29:34 1435
转载 Error: unterminated string literal
http://hi.baidu.com/sean_li/item/656351f38240620284d27834#713670-tsina-1-2117-128ff9f28d958dae738be418601ffbcdJavascript使用document.write(str)进行输出时,常提示下列错误:Error: unterminated string literal。
2012-12-21 13:57:39 4366
转载 PHP 正则表达式
介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,php等等,我今天就把我对正则表达式的理解跟大家唠唠,不当之处,请多多指教! 需要知道的术语——下面的术语你知道多少? Δ 定界符Δ 字符域Δ 修饰符Δ 限定符Δ 脱字符Δ 通配符(正向预
2012-12-17 20:00:07 622
php 实现汉字(中文)转拼音
2011-09-15
PHP_Mongo_extension
2011-08-17
loadflash.js 添加Flash,使Flash浮在图片上
2009-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人