自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 js调试闭包的一个小技巧

在开发过程中,直接查看instance.Internal就能查看instance的内部数据,大大简化调试过程,在需要发布的时候用sed -i '/For DEBUG/d' jsfile去掉调试代码就行了。闭包在js中是一个很有用的功能,不过因为内部数据只能内部访问,所以调试略微麻烦,在闭包外部要想查看内部数据很麻烦。closure. "For DEBUG"引号内的内容不能删,用于发布时自动删除调试代码。最近在写某代码的时候想到了一个简单的办法,可以在任意时刻查看内部数据。

2023-06-05 00:04:49 147 2

原创 一个跨平台通用的取得当前平台类型的脚本

一个跨平台通用的取得当前平台类型的脚本

2023-03-07 18:14:24 188 1

原创 从编程和性能角度看B树和B+树

B树、B+树作为最基本的数据结构,对于他们的原理,设计的各种介绍和讨论已经非常普及了。但是很少有具体实现方面的分析。本文就从实现的角度就相关的各种操作步骤和性能上分析两种数据结构在应用和性能上的差别。从性能角度来看,二叉树无疑是搜索类数据结构中搜索效率最高的,但是考虑到外存储设备都是块设备,单块尺寸远大于索引数据。如果一个外存储块只存放一个索引,实在是太浪费存储空间;而如果简单地把二叉树按某种结构保存到外存中,则可能会在访问和修改时反复操作多个存储块,引起的开销可能会大大削弱甚至抵消二叉树的效率优势。基

2021-05-07 15:54:01 407

原创 ArchLinux 2020 安装脚本

ArchLinux为了快速迭代,在安装上实在是太不友好了。作为一个入门级使用者,我踩了无数的坑才跳出来。为了让其他人不用重复跳坑,我写了个简易安装脚本,希望能让大家在安装的时候能轻松一点目前仅测试过ArchLinux2020,不过别的应该也就是小改就行。首先下载ArchLinux,然后建立虚拟机,修改成EFI启动,这方面的文章有很多,我就不重复了启动之后先用cfdisk分区目前脚本里分区顺序是/dev/sda1 -> EFI 分区/dev/sda2 -> ...

2021-03-27 12:52:52 531

原创 动态修改layer弹出框尺寸

有时候在弹出窗口在运行中会改变大小,不过用layer/layui组件生成的弹出窗口尺寸只能在创建时用area参数指定,一旦建立之后就没有接口来修改了。要让layer弹出窗适应新的尺寸(即不留白也不出现滚动条)。只能手动计算,怪麻烦的。最近在做开发的时候突然想到既然layer在建立弹出窗的时候可以自适应,那应该在窗口显示的过程中也可以自适应于是在修改窗口尺寸之后,加上Host.parent().css("height","");Host.parent().css("width","");之

2021-03-16 23:43:34 1979 4

原创 fatal error LNK1561的解决

一个小毛病的解决:编译器报连接错误:LINK: fatal error LNK1561: entry point must be defined通常的原因是未指定平台或者未定义入口函数解决方案是增加相关定义 /subsystem:windows /entry:mainCRTStartup 即可不过有种比较少见的场景是编译参数缺少/c。在编译命令栏加上即解决具体细节参考https://www.cnblogs.com/shines77/archive/2013/08/10/324962.

2020-12-08 21:27:03 1025

原创 JavaScript处理位移操作的限制

JavaScript处理位移操作的限制JavaScript只支持对32位数据进行位移操作,即源操作数和目标操作数都必须是32位。对于超过的直接切掉。在多种浏览器上测试过如下代码:(0x180000000>>1).toString(16)+" "+(0x100000000>>1).toString(16)+" "+(0x80000000<<1).toString(16)所有浏览器返回同样结果:"-40000000 0 0"即数据被视为有符号数,32位

2020-11-04 22:50:36 268 2

原创 Linux 解决连接依赖问题的简单办法

在开发复杂项目的时候,经常会遇到引用静态库中的函数/变量的情况。对于Windows平台,只要在连接时把所有用到的静态库都包含进来就行,不会有任何问题。对于Linux平台就比较麻烦了,gcc/g++在连接静态库的时候是要按依赖关系排列库文件的。如果顺序不对,就会连接失败,然后报告找不到外部符号比如有3个库liba.alibb.alibc.a库a引用了库b的函数,库b引用了库c的函数那么连接时必须写成g++ -o bin sourcecode.o libc.a libb.a liba.a..

2020-08-01 01:21:29 477

原创 在linux中使用openssl库的一个小坑

最近在开发中需要使用openssl的库,Windows平台下很快就一切正常了。移植到linux下,因为代码有一堆其他兼容问题,所以还没发现什么。直到别的问题都解决完了,发现居然出现以下编译错误:Inc/openssl/rand.h:67:21: fatal error: windows.h: No such file or directory为什么会在Linux下引用Windows.h,读了rand.h发现是定义了OPENSSL_SYS_WINDOWS然后再向前搜,发现定义OPENSSL_SYS

2020-07-30 13:05:21 1624

原创 Windows10下VMWare虚拟机无法启动并卡死的解决方法

Windows10下经常会出现VMWare虚拟机打开之后无法启动的情况,卡死在BIOS画面之前,也无法强行关闭,甚至在无法关闭WMX进程。对此情况有几种解决方法1。 以管理员身份运行VMWare。2。如果不行,把虚拟机的软驱,光驱指向随便什么本地镜像文件,或者把需要用到的镜像文件拷贝到本地,甚至删除虚拟机配置中的软驱和光驱。此法可解决大多数无法启动的问题,推测原因应该是VMWare无法锁定...

2020-04-20 13:03:12 10194

原创 animate.css的一点小坑

animate.css预制了大量常用的动画效果,对于日常开发可以大大提高效率。不过里面有个小坑,菜鸟们要注意了。在使用anmiate预制类的时候一定要加上animated,不然动画是不会动的!<div class="fadeIn">Content</div> 错误!不会显示动画<div class="fadeIn animated">Co...

2019-12-10 15:37:20 887

原创 迁移SVN代码库的最简单办法

最近机器换硬盘,SVN代码库得迁移到新硬盘上去。作为一个运维菜鸟,对这一行为那是十分的战战兢兢,要是弄出点啥情况,差90几年的百年老卤可就完蛋了。到网上查了大量文章,基本都是svn dump/svn create/svn load命令的组合。照着迁移了数据,也算是平安无事。然后想写个一键迁移脚本免得以后麻烦,就弄了个测试用的小代码库反复折腾。折腾到最后,居然无意中找到了个最简单的办法。...

2019-09-18 01:16:00 809

原创 JS/jQuery 显示弹出菜单时点击其他元素隐藏菜单的简单方法

要在点击其他元素时隐藏菜单或者说特定的元素,首先要做到的是检查用户是否点击其他元素。网上通常的做法是关联$(document)的点击事件。不过这样需要处理冒泡,而且用户在任何时候按键,都会触发事件,虽然处理得好的代码可以合适地安排冒泡与缺省事件动作,但毕竟麻烦,让人放心不下以及影响性能(C程序员的职业病出来了)。其实要解决这个问题很简单,只需要换个思路:在显示弹出菜单/元素时,建立一个覆盖...

2019-08-22 11:55:43 938

转载 【转载】分布式存储系统的几个技术指标

原始链接:https://zhuanlan.zhihu.com/p/34305823侵删随着数据的爆炸,现在越来越多的人关注分布式存储,或者叫云存储。然而选择一款分布式存储应该关注哪些指标呢?这篇文章试图系统的梳理分布式存储系统(下面简称存储系统)的几个技术指标。通俗的说,“把数据保存好,并且能读出来”是一个存储系统的基本能力。从产品特性的角度上讲,存储系统还可以有很多其他的丰富的特性...

2019-03-03 12:15:58 3725

原创 LVM,软件RAID和硬件RAID的区别

RAID是一种存储协议,允许将多个存储设备以不同的方式虚拟成一个存储设备以满足用户的不同需求。硬件RAID是通过硬件(RAID卡或板臷)实现。对OS来说,只看得到虚拟之后的设备。性能比较好,但需要额外的成本。软件RAID是通过软件来实现,可以在分区级别上实现,灵活性超过硬件RAID,但需要CPU实现RAID芯片的功能。以及只有部分OS支持。LVM源于HP,是LINUX平台下的一种综合存...

2019-02-26 17:59:21 2736

原创 VMWare的一点小经验

网络设置:        NAT是使用主机建立的网关,主机是xxx.xxx.xxx.1,虚拟机的IP如果是ubuntu,基本是不变的。red hat系的(centos/rhel/fedora)会在每次重启IP+1。当然设置静态IP就没这问题了。好处是不管接入哪个WIFI环境,通过IP访问基本不受影响。坏处是非主机要访问虚拟机比较麻烦。        Bridged是跟主机在同一个网段,共享...

2019-02-25 19:21:36 246

转载 转载:Linux磁盘管理LVM使用手册(原作者是linux社区的cmzsteven)

一、LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制.Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也...

2019-02-15 21:35:22 293

原创 一种Windows下懒式探测野指针的方法

一种Windows下一种Windows下探测野指针的方法在一个大型项目中遇到了crt报告HEAP: Free Heap block XXXXXXXX modified at YYYYYYYY after it was freed。原因很明确:野指针,但是因为项目里大量使用了智能指针,因此要定位问题就略头痛了。最初是准备在程序运行时建立内存断点以监视所有对YYYYYYYY的写操作

2017-08-06 10:35:15 960

原创 一些编程上的小经验

1。除非是预编译头文件,否则不要在头文件中引用别的文件2。每个对齐预编译命令要确保作用域只对需要的范围有效(比如仅对本文件内,或特定结构)3。每个内存问题的报告,肯定意味着代码有问题,必须仔细检查

2017-08-02 12:31:24 607

原创 NTFS中的B+树的疑问

研究NTFS很久了,一直以来看到的NTFS分析资料都声称NTFS的目录结构是B+树,甚至连wiki上关于B+树的条目里都标明NTFS使用B+树。但昨天翻了一下严蔚敏的《数据结构》才发现按照数据结构的定义,NTFS的目标结构应该是B-树。因为按B+树的概念,所有的数据都能在叶子节点上找到,而明显NTFS的目录结构不是这样的。真不明白这些人是怎么写资料的。 PS:反倒是百度百科里说NT

2012-01-13 16:57:49 1559 1

原创 iPhone/iPad解除恢复模式一法

今天我的越狱iPad4.3.3突然进入恢复模式,吓我一大跳,我下了一堆D版游戏在里面,这要是升级,不是要哭死了。@_@b赶紧下了个小雨伞看能不能从cydia上找回SHSH,然后悲催的发现劳资忘了备份SHSH! T_T好在无意中发现小雨伞界面上有个exit recovery的按钮,赶紧点击  然后,清净了........玩游戏去

2011-08-23 13:38:35 3809

原创 iPhone版仙剑奇侠传存档不能问题解决

在/var/mobile/Library/NetDragon/Applications下创建Documents文件夹mobile属性775留个记号,免得刷系统又得到处找

2010-06-22 21:34:00 1900

原创 Microsoft make things complicated part 2

继续研究压缩文件,我又崩溃了。压缩文件以16个簇为单位进行压缩,按压缩后的数据的尺寸分配磁盘空间,然后配上相应的稀疏流,形成完整的单元描述。比如,某16簇数据压缩之后只占用7个簇,系统从卷的210H簇起分配了7个簇,那么其描述如下:21 07 10 02 01 09因为不同的数据压缩率不同,对于某些类型的数据,可能压缩之后的尺寸反而大于压缩前,因此,对于此类数据,直接写入磁盘反而提高效

2009-07-23 23:27:00 722

原创 Microsoft make things complicated

最近研究写NTFS驱动下的读写压缩/稀疏文件功能的时候被微软雷到了。真不愧“微软让事情变得复杂 (Microsoft make things complicated)”的传闻。压缩/占位流描述组居然可以分别存放到两个属性中.......彻底囧掉了......为了省几个字节的空间,代码复杂度起码提高一个数量级,犯得上么....... 然后又发现一个更囧的情况:NTFS属性中的流可以被

2009-06-19 00:45:00 991

原创 WinInet编程经验点滴

写一个自己拿来玩的小东西要用到WinInet库,本以为一点点经验就可以了,没想到不断地出问题,不断的解决。没办法,只好把一个小经验变成点滴,也许将来还会变成合集.XD   之一 回调与线程        最近在写一个异步方式调用WinInet函数访问网络的程序时遇到一点问题。第一次访问网络在回调函数中接收数据,工作正常;第二次访问时没有使用回调,而是直接等待操作完成。这下问题出

2007-11-27 17:14:00 4336 1

原创 LINUX调试技巧一则

最近在开发LINUX下的工具,调试一个BUG时遇到很郁闷的情况:某处有个segmentation fault。懒得用gdb,于是随便加了几条调试信息,编译,运行之。直接显示错误信息。唔......BUG在最近一条信息之前,再细分,再加调试信息,编译,运行,嗯,还得再分。......3次之后偶郁闷鸟,真正的郁闷鸟......两条消息,一条能正常显示,紧接着的,中间没有任何语句--

2007-08-10 05:05:00 1681 2

原创 NTFS文件系统分析之首章:NTFS分区引导记录详述

要进入一个密室,先要找到它的钥匙才能打开房门。  要访问一种文件系统,也需要一把钥匙,而引导记录就是文件系统的钥匙。让我们从分析NTFS的引导记录来开始壮丽的NTFS文件系统探密吧。  NTFS引导记录占用8个扇区,它由3个部位组成  一。 兼容FAT/HPFS的标准分区记录  二。 NTFS分区记录  三。 NTFS引导代码 第一部分:标准分区头偏

2006-11-19 01:48:00 3794

原创 开篇文:NTFS文件系统分析之序章:NTFS分区的引导记录源码

终于决心开BLOG了,准备写个NTFS系列,这篇老文就作为序吧:)  NTFS文件系统有着非常优秀的特性,其安全性、可靠性都远胜于我们常用的FAT文件系统,但是微软公司出于商业目的没有公布它的规范,使得这种优秀的文件系统只能在Windows NT架构的操作系统中使用。  不过先辈们唱得好:“没有枪没有炮,敌人给我们造!”。不管微软再怎么保密,它自己总要使用NTFS文件系统。那我们就通过分析

2006-11-12 23:52:00 2707 3

Real mode Graphics library

a real mode fast graphics library DEMO version.

2011-09-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除