首页
学习
活动
专区
工具
TVP
发布

码农二狗

专栏作者
29
文章
54286
阅读量
28
订阅数
golang直接操作共享内存
前一段时间使用公司内部某个依赖共享内存的组件,其go版本api通过cgo提供。抛开我是个pure go狂热分子以外,采用cgo的方式实现会存在很多问题。所以分析其源码后通过go进行重写,故在此分享一下直接通过golang去操作共享内存。
码农二狗
2020-01-03
3.9K0
linux下自动备份网站数据到邮箱
最近事儿比较多,博客也没有去维护它,但是考虑到数据不能不备份,遂写一脚本自动备份到邮箱(现在的邮箱动辄几GB,QQ邮箱都扩容到了几TB =_=). 需要mutt支持,centos下一句话搞定: yum install -y mutt 接着是脚本了,采用linux自带的tar命令打包,数据库采用mysql自带的mysqldump命令导出成sql文件: #!/bin/bash mail_to=#接收邮件地址 db_server=#数据库地址 db_user=#数据库用户名 db_pass=#数据库密码 db_
码农二狗
2018-06-29
2.4K0
linux下简单配置DHCP服务
好记性不如烂博客,记下来的好,以备不时之需. 先安装软件包,我们上课使用的Red hat,直接在光盘里rpm -ivh  xxx 其实习惯了用软件仓库,centos下一个yum install就搞定. 安装完成后有个配置模版在/usr/share/doc/dhcp-xxx/dhcpd.conf 复制到/etc目录: cp dhcpd.conf /etc/dhcpd.conf 用vi编辑,基本配置格式如下: subnet IP地址 netmask 子网掩码{ option routers
码农二狗
2018-06-29
5.4K0
python实现zip压缩
准备写个备份数据的脚本,虽然linux下有zip等软件,但是python有自带zipfile类库,实现起来并不复杂,权当练手. #!/usr/bin/python import os import zipfile import sys import platform global line if platform.system() == "Windows": line = "\\" else: line = "/" def zip_dir(path,spath,zip_obj,zip
码农二狗
2018-06-29
7180
三大屌丝排序
其实好久没摸算法和数据结构了,今拾排序一练. 说到排序,不得不提及冒泡排序,因为它是最简单也是最屌丝的排序算法: void Bubble(int *p,int n) { for(int i=1;i<n;i++) { for(int j=i;j>0 && p[j]<p[j-1];j--) { p[j]+=p[j-1]; p[j-1]=p[j]-p[j-1]; p[j]-=p[j-1]; }
码农二狗
2018-06-29
3140
mysql实现地理位置搜索
随着LBS应用的遍地开花,在数据库中实现基于地理位置的搜索显得尤为重要.今天研究了下,顺便做个小结. 首先设计好一个简单的数据表,用来存放经纬度信息: CREATE TABLE `index` ( `id` int(11) NOT NULL AUTO_INCREMENT, `lat` double NOT NULL, `lng` double NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 创建完成后我们可
码农二狗
2018-06-29
3.2K0
Linux下为挂载光驱分配执行权限
在虚拟机中装好了Centos后为其安装虚拟机工具. 切入光驱目录: 运行./VBoxLinuxAdditions.run,提示权限不够. 输入 chmod 777 VBoxLinuxAdditions.run 提示只读,无法修改,当时脑子犯浑,半天没想明白怎么回事(=^=). 两种解决方法,一种是修改fstab再重启,第二种则是使用mount的remount参数重新加载.个人偏向后者: mount -o remount,exec /media/VBOXADDITIONS_*
码农二狗
2018-06-29
3.6K0
省赛总结
此次省赛是acm生涯中的最后一次比赛了,虽然拿到三等奖,但是如果不是策略上的问题是可以拿下二等奖的,略遗憾,在此做下总结: Problem A: 这道题是道水题,但是需要注意每个人的工作效率都是一样的.另外还有个陷阱,推出公式后需要化简(当然如果你觉得你精度控制没问题用double也可以),消除中间值有小数的问题.几分钟看懂题意后推出公式给沈子编码,秒A Problem B: 看了一眼,是道模拟,由于是一眼题,一开始就由沈子编码,也是一次性AC Problem C: 这道题也是模拟,可以做出来,但是直接编
码农二狗
2018-06-29
4030
JobObject实现对进程进行内存和运行时间限制
最近在研究oj系统,查过网上的解决方案,大致分为两种: 一种是基于Java虚拟机的解决方案,让编译好的程序运行在java虚拟机里面,通过对虚拟机的限制保障时空有效性和系统安全性; 第二种是基于linux系统的方案,通过内置的系统函数设置程序可用资源以及通过限制用户运行此程序以保障系统安全性. 实际情况是希望在windows下实现oj系统,而且对jvm无爱,遂研究下通过windows的一些内核机制实现此目的. 根据上面的第二种解决方案后查阅MSDN及相关资料后得知windows下没有设置程序可用资源的函数,
码农二狗
2018-06-29
1.7K0
pdo_oci错误计算缓冲区大小的patch
pdo_oci已经很久没人更新了,有个bug存在很久了也一直没有修复。上次遇到了这个问题,老大发我了一个patch,这次又用到了,就顺手记下来。 报错信息 column XXX data was too large for buffer and was truncated to fit it in XXX 其问题是在计算变长字符集编码长度时计算不准确,导致缓冲区大小申请出错。修改pdo_oci源码解决。 oci_statement.c  532行: col->maxlen = data_size; 修改为:
码农二狗
2018-06-29
7830
php安装gd扩展
做php开发经常需要用到gd库,但是也遇到几次部署环境默认没有安装gd的情况,遂在此做下总结,以备不时之需. 通过yum,apt-get等包式管理安装方式安装的php直接运行对应命令即可,故不在此赘述。本文主要记录在linux环境下编译gd扩展及其所需依赖。 gd扩展主要依赖zlib,freetype,libpng,libjpeg这4个库,所以我们先编译这四个库。 安装zlib 在zlib项目主页下载最新版本 解压后进入源码目录,进行配置、编译和安装操作 ./configure --prefix=/user
码农二狗
2018-06-29
8.3K2
php利用反射优雅的实现工厂
php的反射机制可以带参构造对象,利用这个特性可以很方便的实现工厂: function factory($class, $args){ if(class_exists($class)){ return (new \ReflectionClass($class))->newInstanceArgs($args); } } $db = array( 'PDO', array( 'mysql:dbname=test;host=localhost', 'root', 'r
码农二狗
2018-06-29
4700
阻塞channel优先返回给主线程
昨天在别人发了个用golang的channel写菲波拉契数列的代码,说是有问题,然后我试着撸一个,结果发现管道阻塞状态下的一个trap,就是当主线程和子线程同时阻塞一个管道时,当管道有了数据是优先返回给主线程的.测试代码如下: package main import ( ."fmt" ) func fbi(num int,ch chan int){ if num<3 { ch<-num; }else{ /* cl:=make(cha
码农二狗
2018-06-29
3190
不使用smtp直接发送邮件
用smtp发邮件挺蛋疼的,不是有配额限制就是有配额限制.所以我觉得应该有直接发送邮件的办法.回归到用命令行装逼的年代,我们是这样发信的: C:\>nslookup 默认服务器: google-public-dns-a.google.com Address: 8.8.8.8 > set type=mx > qq.com 服务器: google-public-dns-a.google.com Address: 8.8.8.8 非权威应答: qq.com MX preference = 10, mail
码农二狗
2018-06-29
2.6K1
一个简单的dao设计
最近把框架里的数据库连接池做好了,整个dao差不多也算完成了(因为懒,所以部分数据库驱动还没写!). 整个dao由连接对象和解析驱动两个部分组成,大概就是下面这个样子 image.png 连接对象主要实现如下方法: addServer 添加连接对象到连接池 getServer 从连接池中取出一个对象 query 发起只读(R)查询并返回PDO游标 exec 发起增删改(CDU)操作,返回受影响的行数 解析器的作用是将操作状态转化为sql语句,主要实现以下功能: distinct 是否使用distinct
码农二狗
2018-06-29
4970
windows下编译php及其扩展方式
编译器 首先根据php官方提供的编译器支持列表中根据需要选择编译器(建议使用vc,对cygwin的dll依赖不习惯) 由于vc9对5.2-5.5几乎是全线支持,所以建议选择该版本作为编译器 php sdk 然后下载php sdk的二进制工具包,解压到某个目录,运行binphpsdk_setvars.bat或手工添加环境变量 windows sdk 在M$官方下载,版本为6.1.若是机器上已经安装其他版本,安装6.1后需要手工设置中心sdk版本,SDK提供GUI工具: Windows SDK Configur
码农二狗
2018-06-29
9040
防止因事务未提交导致的死锁
这周事儿比较多,遇到了不少问题.其中比较严重的就是因为在处理一个比较大的数据导入时为了保持数据一致性使用了事务,但是却因为脚本执行超时或者内存超出限制,导致了事务中断,然后数据库直接deadlock.
码农二狗
2018-06-29
8370
慎用replace into
不记得是在哪里看到说replace into的工作流程是根据主键或者唯一索引来判断记录是否存在,不存在就插入,存在则更新. 然后在框架的orm里面针对mysql的驱动实现了一个replace的方法,而然今天使用的时候出现了问题: mysql> select * from tbl_user; +----+--------+--------+ | id | name | status | +----+--------+--------+ | 1 | eslizn | 0 | +----+----
码农二狗
2018-06-29
3K0
php实现rsa签名和验签
这两天在弄某支付接口相关的东西,以前没做过这块,在签名和验签的过程中遇到了一些问题,记下来. 首先生成一个1024位的私钥: openssl genrsa -out private.pem 1024 然后根据私钥导出公钥 openssl rsa -in private.pem -pubout -out public.pem php的openssl扩展里已经封装好了签名和验签的方法,分别是openssl_sign和openssl_verify. function sign($data){ $p = o
码农二狗
2018-06-29
2.5K0
解决金字塔回调问题的两种手段
javascript确实是一门在设计和使用上与主流语言上有着很多区别的语言,但一点也不妨碍她成为一门优雅的语言. 但是习惯了顺序执行的coder(指我自己)使用javascript的异步操作容易产生金字塔回调的问题(无止尽的回调套回调).最常见的就是按顺序异步操作. ajax(url1, function(){ ajax(url2, function(){ ... }); }); 之前遇到这个问题时,我想到了小时候玩的多米诺骨牌,确保前一个倒下能推到自己,自己倒下以后能推到后
码农二狗
2018-06-29
5500
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档