分类:'发芽网开发记录' 的所有文章

Python语言: head.py 输出文件开头的8个字节的二进制表示

最近在写一个在线favicon编辑器,其ico格式很让人不爽,写了个工具生成ico格式的文件
为了手动检查生成结果,写了这个脚本检查其文件头内容:

Python语言: head.py 输出文件开头的8个字节的二进制表示
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Recently I start to write an ico file maker
#   this script helps on analyze the file header
#
# Usage:
#   head xxx.ico    - output 16 bytes
#   head xxx.ico 32 - output 32 bytes
#
import sys
f = open(sys.argv[1], "rb")
L = 16
if len(sys.argv) >= 3:
  L = int(sys.argv[2])
bytes = f.read(L)
for i in range(0, len(bytes), 8):
  print bytes[i:i+8]

xbytes = ["%02x" % ord(b) for b in bytes]
print
for i in range(0, len(bytes), 8):
  print "x " + " ".join(xbytes[i:i+8])

def to_bits(b):
  bs = []
  while b:
    bs.append(b&1)
    b>>=1
  bs = map(str, bs)
  bs.reverse()
  return "".join(bs).zfill(8)

bits = [to_bits(ord(b)) for b in bytes]
print
for i in range(0, len(bytes), 8):
  print "b " + " ".join(bits[i:i+8])

  • Share/Bookmark

题酷发芽网发布 - 精彩、经典IT面试题库、智力题库收集

挖哈哈,终于超过100个题啦!


题酷发芽网



题酷发芽网上线试用了一周以后,现在正式发布了!

有啥用?多了去了:比如面试前回顾,比如面试人的时候拿抽几道题,又比如刚学了一门新语言想练练手。。。

一些经典面试题如下:

微软经典面试题

面试题之链表问题 - 判断单链表是否有环?
面试题 - 字符串两边对齐
传说中的微软面试题 - 飞机加油问题
聪明的囚犯抓豆子问题
面试题之链表问题 - 判断单链表是否有环?
面试题之链表问题 - 找出倒数第k个元素(或中间元素)
面试题 - 字符串两边对齐
面试题 - 原地倒转字符串
面试题 - 寻找丢失的数字

Google经典面试题

100*100部分有序矩阵数组的排序
25匹赛马血拼Top五
整数0-n中"1"的个数

更多面试题、经典编程算法题参见:题酷发芽网所有题目

BTW: 界面基本参照StackOverflow.com,SO太让人敬仰了

  • Share/Bookmark

更新发芽网到Django1.1,因为傻逼年年有,今年特别多

今天忍不住把发芽网后台更新了到了Django1.1,不是因为这个更快更好,主要是因为有个傻逼,天天到代码发芽网上孜孜不倦的贴黄色网站链接,删帖删到手软

代码发芽网搞代码高亮的网站,留垃圾留言之前看看坑行不行?

最最关键的是,这些标明了是“Sex Movie”以及“Adult Video”的链接,都他妈是不可访问的!!!
是可忍孰不可忍!挂掉他!!!

这时候才发现,在Django原来自带的后台里,删除内容的时候只能一个个点开,一个个删

这才想起来最近Django更新过,去碰碰运气看到了1.1版的后台已经支持批量删除了,说不定大家都被这样的傻逼惹毛了

直接备份数据库,然后更新,批量删除

另外又检查了一下,还有一堆内容不长过10个字符的帖子,都是匿名帖。

日,没办法,空间有限,挥霍不起,在匿名发帖的时候加上了Captcha

匿名发帖的朋友,对不住了,麻烦发帖前做一下简单的算术:个位数的加法,应该还行吧
实在觉得烦,注册并登陆一下就不用填了,5分钟不到的时间,一年都不用重新登录
如果不想注册又不想做算术又想要贴黄站链接,请直接来信交流,谢谢

BTW1: 科技进步原来真是由色情推动的
BTW2: 4500个帖子里面有600个spam,真是无语了

  • Share/Bookmark

代码发芽网高亮引擎更新了(版本:1.1dev_20090523)

终于有时间把代码发芽网的高亮引擎Pygments到1.1dev_20090523版
支持的语言多了不少(已经支持164种编程语言了,包括asp.net),效果还不错

其他的更新包括:
. Firefox下右边滚动条时隐时现引起页面跳动的问题
. 编辑代码界面的改进(更高的编辑框等等)
. 添加了收藏按钮
(就是页面右边靠着顶栏的那个长长的小按钮,来自addthis.com),以前用十八帮的,不知为何会引起页面混乱
. 修正了在Chrome浏览器下“代码评论打分按钮”布局混乱的问题

新添加的编程语言支持
==================
* Antlr/Ragel, thanks to Ana Nelson
* (Ba)sh shell
* Erlang shell
* GLSL
* Prolog
* Evoque
* Modelica
* Rebol
* MXML
* Cython
* ABAP
* ASP.net (VB/C#)
* Vala

还包括一些bug fix,详见Pygments的Changelog

  • Share/Bookmark

Simple New Line Converter - CRLN DOS<=>UNIX,换行符替换工具脚本

svn/hg下来的文件经常是unix换行符的,为了其他的脚本处理方便,我都统统转为dos的
以前东西少,手动就行了,gvim里面:set ff=dos就行,这次太多了,就写了个脚本

Python语言: Simple New Line Converter - CRLN DOS<=>UNIX,换行符替换工具脚本
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Simple New Line Converter for CR-LN of DOS & UNIX format
#  default convert known text files under current folder
#
# by 半瓶墨水 ( realfun at gmail dot com )
# http://2maomao.com/blog/
import os
import sys

newline = "\r\n"
if len(sys.argv) > 1 and sys.argv[1] == 'unix':
    newline = "\n"

#only convert files with the following extention
#NOTICE: spaces on HEAD/END are there on purpose!
exts = ' py html css js json txt php ini cpp h sql ini htm rb cmd bat '
fs = []
#for root, dirs, files in os.walk('d:/projects/py/django/fayaa'):
for root, dirs, files in os.walk('.'):
    for f in files:
        f = os.path.join(root, f)
        #print "==>" + f
        pos = f.rfind('.')
        if pos == -1:
            continue
        if exts.find(' ' + f[pos+1:] + ' ') != -1:
            fs.append(f)

for f in fs:
    o = open(f, "r")
    ls = o.readlines()
    o.close
    if len(ls):
        print ">>", f
        o = open(f, "wb")
        #NOTICE: here I did what I want, remove ".rstrip()" if you don't like it!
        ls = [l.rstrip() + newline for l in ls]
        for l in ls:
            o.write(l)
        o.close()

  • Share/Bookmark

« 上一页下一页 »