小编Pep*_*ijn的帖子

什么是开发爱好语言的好VM?

我正在考虑写自己的小语言.

我找到了一些选择,但可以随意提出更多建议.

  • JVM
  • 鹦鹉
  • OSA

很多语言都在使用JVM,但除非你编写一个Java-ish语言,否则stdlib给你的所有功能都会让你感到难过; 它在动态的东西上也不是很好.

Parrot似乎是开发语言的好VM,但它有一点废弃/未完成/爱好项目的味道.

OSA是Applescript的推动力,而不是一个特别知名的虚拟机,但我使用的是Mac,它提供了良好的系统集成.

CLR + Mac似乎不是一个很好的组合......

我的语言将成为面向对象的功能并发数据流语言,具有强类型和Python和Lisp语法的混合.听起来不错,嗯?

[编辑]
我现在接受了Python,但我想更多地了解OSA和Parrot.

jvm language-design parrot osascript vm-implementation

8
推荐指数
1
解决办法
837
查看次数

适用于Snow Leopard的漂亮Python GUI工具包(64位)

我正在寻找一个GUI工具包/框架来创建在Mac Snow Leopard上运行的应用程序,最好是其他系统(Windows,Linux).

交易破坏者:

  • 基于X11
  • 非本机小部件
  • 32位/碳
  • 坏Mac的外观和感觉

据我所知,Tkinter运行X11和wxWidgets并且PyQT不运行64位.

有什么可用于漂亮的Mac应用程序?

[edit] http://wiki.python.org/moin/GuiProgramming 列出了许多无法使用的东西,但有一些有趣的东西.Lucid ......敲响了钟声,但该网站对Python一无所知.PyGUI,看起来像一个很酷的单人项目,就像uxpython一样.

似乎QT,WX和TK真的是大的......所有这些都可能在几年内拥有64位或Cocoa端口,但目前它们似乎都没有开箱即用.

[编辑]
目前还没有完美的解决方案.

  • Tkinter工作,但对我来说不太酷
  • PyObjC可以工作,但不是跨平台的
  • PyQT和wxWidgets有一天可能会工作......

我还不确定要使用哪个,但我现在接受了PyQT.

python macos user-interface osx-snow-leopard

7
推荐指数
1
解决办法
1854
查看次数

在Applescript中接收Adium消息

我正在尝试为Adium编写一个简单的聊天机器人,它将发布"lol"和"haha"并回答一些人不断加入我的讨厌群聊的基本问题.

我已经用重复的一些简单的发送和延迟命令覆盖了"lol"部分,但我也需要做一些交互.
对带有问号的任何东西回答"是",例如......

信不信由你,这样一个简单的机器人会通过图灵测试来进行这些对话.

打开Adium词典并没有显示任何明显的获取消息的方式,Growl词典也没有.

我确实发现每次收到消息都可以运行脚本,有没有办法访问发送的消息?

Adium pref http://media.ruk.ca/images/adiumpreferences.png

我的代码:

tell application "Adium"
    activate
    set theChat to the active chat
    send theChat message "Hi"
    delay 5
    send theChat message "How's life?"
    delay 10
    repeat 10 times
        send theChat message "Realy?"
        delay 5
        send theChat message "Lol :P"
        delay 15
        send theChat message "Haha XD"
        delay 15
        send theChat message "Yes1!!1"
        delay 20
        send theChat message "I like it! :D"
        delay 10
    end repeat
    send theChat message "Bye!"
    tell theChat to …
Run Code Online (Sandbox Code Playgroud)

applescript adium

7
推荐指数
1
解决办法
2058
查看次数

Heroku应用程序可以使用不同/多个端口吗?

Heroku上的Web服务通常使用PORT环境变量,但我想在Heroku上运行自定义邮件服务器.所以我需要暴露2个端口,最好是110和25,但我可以使用替代品.可能吗?

python email port heroku

7
推荐指数
1
解决办法
8008
查看次数

FireFox中的HTML5 FileList为空

我正在编写这个HTML5音乐播放器,它可以将音乐文件拖到它上面.(很快就会使用WebRTC)

http://pepijndevos.nl/KjuMusic/

它适用于Chrome,曾经在Firefox中运行,但仍可在朋友的Mac上运行.

但是,在我的Xubuntu笔记本电脑上,无论是默认还是夜间的Firefox,我都能得到

FileList { length=0, item=item()}
Run Code Online (Sandbox Code Playgroud)

删除一个或多个文件时 如果这是我的代码,Firefox或xfce中的其他地方的错误,我甚至不确定.

firefox drag-and-drop xfce html5-audio

7
推荐指数
1
解决办法
603
查看次数

为什么CouchDB使用仅附加B +树而不是HAMT

我正在阅读数据结构,特别是不可变的数据结构,如CouchDB中使用的仅附加B +树和Clojure中使用的Hash数组映射trie以及其他一些函数式编程语言.

在内存中运行良好的数据结构在磁盘上运行良好的主要原因似乎是由于碎片而花费在磁盘搜索上的时间,就像普通的二叉树一样.

然而,HAMT也非常浅,因此不需要比B树更多的搜索.

另一个建议的原因是来自阵列映射的trie的删除比来自B树的更昂贵.这是基于我们正在讨论密集向量的假设,并且在将其用作哈希映射时不适用.

更重要的是,似乎B树进行了更多的重新平衡,因此以仅附加方式使用它会产生更多垃圾.

那么为什么CouchDB和几乎所有其他数据库和文件系统都使用B树?

[编辑]分形树?日志结构合并树?心灵=吹

[编辑]现实生活中的B树使用数千的度数,而HAMT的度数为32.可以使用1024度的HAMT,但由于popcnt一次处理32或64位,因此速度较慢.

couchdb b-tree clojure immutability

6
推荐指数
2
解决办法
2334
查看次数

我的CPU可以在每个CPU周期执行多个NOP吗?

我写了一个简单的程序,在一个循环中执行一堆NOP指令,令我惊讶的是它每秒执行大约10600000000个,或大约10Ghz,而我的CPU只有2.2GHz.

这怎么可能?CPU是将它们视为单个超级NOP,还是仅仅发现"指令级并行"意味着什么?

什么是每秒指令更好的衡量标准?执行添加指令的时间仅为414900000/s,是我的CPU报告的十几个bogomips:4390.03

C代码:

#include <stdio.h>
#include <stdint.h>
#include <time.h>

#define ten(a) a a a a a a a a a a
#define hundred(a) ten(a) ten(a) ten(a) ten(a) ten(a) ten(a) ten(a) \
        ten(a) ten(a) ten(a)

#define ITER 10000000
int main(void) {
  uint64_t i=0;
  uint64_t t=time(NULL);
  while(1) {
    for(int j=0; j<ITER;j++) {
    hundred(asm volatile ("nop");)
    }
    i+=ITER*100;
    printf("%lu/%lu\n", i, time(NULL)-t);
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译组件:

    .file   "gbloopinc.c"
    .section    .rodata
.LC0:
    .string "%lu/%lu\n"
    .text
    .globl  main
    .type   main, @function
main:
.LFB0:
    .cfi_startproc …
Run Code Online (Sandbox Code Playgroud)

c performance assembly nop

6
推荐指数
1
解决办法
251
查看次数

libVLC函数media_player_new()抛出分段错误

media_player_new()会引发分段错误.

import vlc
ins=vlc.Instance()
player=ins.media_player_new()
Run Code Online (Sandbox Code Playgroud)

这是它崩溃的地方:

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libvlc.dylib   0x000000010059aa78 libvlc_media_player_new + 24
Run Code Online (Sandbox Code Playgroud)

libvlc.dylib位于脚本所在的位置:/Applications/VLC.app/Contents/MacOS/lib

vlc.py可以在这里找到:git://git.videolan.org/vlc/bindings/python.git

任何想法为什么或如何调试?

python vlc segmentation-fault libvlc

5
推荐指数
1
解决办法
1110
查看次数

计算n维弧形路径

我正在为CNC铣床实现驱动程序,而我在实现G代码弧命令时遇到了麻烦.

我已经找到了几个中点圆算法的实现,但它实际上并不是真的可用.

我发现中点圆算法的问题在于它是2D并且同时绘制所有八分圆,而我需要通过3D路径的连续步骤,由起点,终点和中心点给出.

我发现了一个很好的多维等效Bresenham的线绘算法使用浮点运算.绘制圆弧可能存在类似的事情吗?

我可以通过大量的思考和实验来改变这种算法,但是由于绘制弧线并不是一个未解决的问题,而且之前已经制造过数控机床,我想知道是否已经存在一个优雅的解决方案?

python algorithm math g-code geometric-arc

5
推荐指数
1
解决办法
570
查看次数

如何在Mac上打开QMenu时动态添加动作?

我有QSystemTrayIcon一个QMenu.为了填充菜单,我需要从网络中获取一些东西,所以我想在后台执行此操作.

所以我有一个QThread插槽连接到activated托盘图标的信号.然后线程获取资源并使用另一个信号更新菜单.

但是,在关闭并重新打开菜单之前,这些更新不会显示.

这似乎是Mac特有的问题.我在Windows上运行我的代码,并且它或多或少正确地更新了.有没有解决方法?

以下是问题的解压缩版本.打开菜单后,它将在一个线程中休眠1秒钟,然后更改菜单.没有看到这种变化.

import sys
import time
from PySide import QtCore, QtGui

class PeerMenu(QtGui.QMenu):

    def __init__(self):
        QtGui.QMenu.__init__(self)
        self.set_peers("prestine")

    @QtCore.Slot(object)
    def set_peers(self, label):
        self.clear()

        self.addAction(QtGui.QAction(label, self))
        self.addSeparator()
        self.addAction(QtGui.QAction("Hello", self))

class GUIListener(QtCore.QObject):

    files = QtCore.Signal(object)

    def __init__(self):
        QtCore.QObject.__init__(self)
        self.counter = 0

    @QtCore.Slot()
    def check(self):
        time.sleep(1)
        self.counter += 1
        self.files.emit(str(self.counter))

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)

    icon = QtGui.QSystemTrayIcon(QtGui.QIcon('images/glyphicons-206-electricity.png'), app)

    listener = GUIListener()
    t = QtCore.QThread()
    t.start()
    listener.moveToThread(t)

    menu = PeerMenu()
    icon.activated.connect(listener.check) …
Run Code Online (Sandbox Code Playgroud)

macos qt pyside qmenu

5
推荐指数
1
解决办法
535
查看次数

如何在 Python 中使用基数为 5 的数字?

可能的重复:
将整数转换为python中给定数字基数的字符串

我想使用基数为 5 的数字,或任何其他非标准基数。

我发现了int('123', 5)作品,但我需要反过来。

我应该编写自己的数字类来完成这个吗?

也许我只是想错了方向......

python math

4
推荐指数
1
解决办法
1万
查看次数

带有UI脚本的Applescript文件对话框

我试图在一个不太可编写的应用程序区域中打开一个文件.

通过使用UI脚本来选择正确的菜单项,我得到了一半,但这会打开一个标准文件对话框.

如何使用Applescript设置文件对话框的目标?

applescript

3
推荐指数
1
解决办法
2633
查看次数

如何更改 Pandas 中分组条形图的颜色?

我有这个情节,你会同意不是很漂亮。到目前为止,我制作的其他图有一些颜色,并且开箱即用。

我尝试手动设置颜色,但它保持黑色。我究竟做错了什么?理想情况下,它还会将相同的标签聚集在一起。

df.groupby(['tags_0', 'gender']).count().plot(kind='barh', legend=False, color=['r', 'g', 'b'])
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python matplotlib pandas

2
推荐指数
1
解决办法
6079
查看次数