Archive

Archive for the ‘Mac’ Category

APE解码器MAC在Snow Leopard上的问题

April 23rd, 2010 honnix 1 comment

其实也不是多大的问题,只是方向不对,搞了很久才解决。

移植MAC的这哥们儿提供了一个configure,当然,是根据Leopard生成的,或者更早Tiger,然后对于SL就不工作了。问题在于port里面的yasm不再接受-fno-common这个选项,只能用-fmacho32或者-fmacho64。

我满心欢喜地统统配成64位,结果一跑就core;不过还好开源,直接gdb上,调了半天才发现很多指针直接cast成int,而SL里int仍然是32位的,所以用截了一半儿的地址肯定会core。统统改成32位再来,就好了。

顺便改了一下configure.in,然后重新autoconf一下,貌似这样比较完美。

SL里面看core文件生成在什么地方用这个命令:sysctl kern.corefile;生成core文件么,同样也是:ulimit -c unlimited。

Categories: Mac, Technology Tags: , ,

USB邮件提醒器

April 16th, 2010 honnix 2 comments

买了个山寨版的这个玩意儿,软件不爽,随即hack之。libusb+pyusb,搞定。不过Mac下面还不行,kernel的module直接claim设备,不知道怎么unclaim。

然后封装了一个简单的库:

?Download lamp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/usr/bin/python
 
from Queue import Queue
from threading import Thread
 
import usb.core
import usb.util
 
class Singleton(type):
    def __init__(cls, name, bases, dict):
        super(Singleton, cls).__init__(name, bases, dict)
        cls.instance = None
 
    def __call__(cls, *args, **kw):
        if cls.instance is None:
            cls.instance = super(Singleton, cls).__call__(*args, **kw)
 
        return cls.instance
 
class Lamp(object):
    GREEN = 0x01
    RED = 0x02
    BLUE = 0x03
    PURPLE = 0x04
    X = 0x05
    Y = 0x06
    WHITE = 0x07
    __QUIT = -1
 
    __metaclass__ = Singleton
 
    def __init__(self):
        self.t = None
        self.q = None
 
        self.dev = usb.core.find(idVendor = 0x1294, idProduct = 0x1320)
 
        import os
 
        if os.uname()[0] == 'Linux':
            self.dev.detach_kernel_driver(0)
 
        self.dev.set_configuration()
 
    def __worker(self):
        item = self.q.get()
        while item != Lamp.__QUIT:
            if item >= Lamp.GREEN and item <= Lamp.WHITE:
                print item
                data = (item, 0x04, 0x04, 0x04, 0x04)
                self.dev.write(2, data, 0)
 
            self.q.task_done()
            item = self.q.get()
 
    def plug(self):
        if self.q is None:
            self.q = Queue()
            self.t = Thread(target=self.__worker)
            self.t.start()
 
    def unplug(self):
        if self.q is not None:
            self.q.put(Lamp.__QUIT)
            self.t.join()
            self.q = None
            self.t = None
 
    def on(self, color):
        self.q.put(color)
 
    def off(self):
        self.q.put(0x00)
 
if __name__ == '__main__':
    lamp1 = Lamp()
    lamp2 = Lamp()
    lamp3 = Lamp()
 
    lamp1.plug()
    lamp2.plug()
    lamp3.plug()
 
    lamp1.on(Lamp.GREEN)
    lamp1.on(Lamp.RED)
    lamp1.on(Lamp.WHITE)
    lamp1.on(100)
 
    lamp1.unplug()
    lamp2.unplug()
    lamp3.unplug()

忘记还有其它什么颜色了,暂时用X、Y代替吧。

VirtualBox里面的NumLock

February 18th, 2010 honnix No comments

一直困惑我的问题,现在终于必须要解决了。

host是Mac,guest是Win,那么在guest里面shift+clear就是NumLock。简单,但是一直不知道。

Categories: Mac, Technology Tags: , ,

Finder里如何给一个folder加上icon

February 12th, 2010 honnix No comments

直接看这里吧,懒得写了。还是很简单的,隐藏的功能,不搜还真不知道。

Categories: Mac, Technology Tags: , ,

open命令

June 11th, 2009 honnix No comments

Mac里面,打开一个文件,打开一个目录(Finder),等等。

Categories: Mac, Technology Tags: ,

处理flac和ape的过程

May 24th, 2009 honnix No comments

Linux和Mac上差不多。有个shntool,可以根据cue文件将ape或者flac进行分割,同时可以读出cue里面的唱片名、作者、tracknumber之类的信息,但问题是这些信息不是很方便传给lame,所以就这样处理一下:

  1. shntool split -f $cue -t ‘%n–@%p–@%a–@%t’ -o ‘cust ext=mp3 lame -b 320 -s 48 -quiet – %f’ -d $dir $audio (简单来说,将信息放到文件名里)
  2. python ~/bin/id3.py $dir (这是个自己写的python程序,从文件名里分离所有的信息,然后写到mp3文件里,用到了一个python的module:mutagen)

这样就不需要在iTunes里面再手工写这些信息了,唯一还需要填一下的就是总的曲目数、唱片出版年份、唱片类型。

OpenOffice.org 3.0

November 15th, 2008 honnix No comments

之前下了一半,后来居然就忘记了,看来在家里使用Office类型的软件机会不是很多啊。不管怎么说,还是要来赞一把OpenOffce.org的表现,3.0版本确实是一个巨大的飞跃,尤其是对Mac用户来说,OOo不再是X11的简单移植,底层的图形库完全挪到了Mac上,现在是Mac上的native程序了。这中间的代码量想必是十分巨大的,SUN也是花了血本了。

native之后最大的好处就是不再依赖X11了,不用每次开OOo都先起个X server,还有就是Command+Tab可以很方便的切换。

SUN今年来干了不少好事,当然其中也是有利益的,但无论如何,他也算是为开源界贡献了不少:Java,OOo,VirtualBox,等等。

Categories: Mac, Technology Tags: , ,

还是Gentoo的感觉比较好

July 13th, 2008 honnix No comments

终于经不住诱惑,又虚拟了一个Gentoo,感觉就是好。想要什么就装什么,不想要就一点多余都没有,嗯,不像Ubuntu,装好之后我还要慢慢删些用不着的东西。

不过有一点还是不爽,Gentoo里面gcc4.3还是没有stable,目前还是4.1,所以不支持我的core2。耐心等等吧。

顺便仔细玩了一把VirtualBox,还是很不错的,尤其是可以不带GUI启动,然后远程管理,这样即使host机器上没有X,也可以把guest启动起来,这个做法还是相当unix的,我喜欢。VirtualBox目前还不支持Mac上面的Bridge,我只能用NAT,然后做一些port mapping从host连到guest上,至于怎么弄,VirtualBox的manual里面说的已经相当详细了,我就不废话了。

Categories: Linux, Mac, Technology Tags: ,

VirtualBox里面如何开关NumLock

February 17th, 2000 honnix No comments

这个问题困扰了我很久,终于下决心Google一把,当然也便有了结果。

如果guest是Windows的话,在guest里按shift+clear就可以开关了。当然,我说的是Mac。

Categories: Mac, Technology Tags: , , ,