我知道这个问题看起来如何,但我很认真.我正在尝试创建一个应用程序来帮助我学习数据库(sql,查询,正确的数据库设计等).我正在工作中使用宠物项目,所以我需要关注实际需求.原始项目是通过MS Access编写的("Frankensteined together",正如原作者所说).我想学习如何通过SQLite更好地完成它,但不知道如何重新创建Access提供的其他功能.
使用这个站点作为与程序员和开发人员交互的方式(我不与任何人合作),到目前为止,我已经阅读了本问题中推荐的所有数据库设计.所以,我有一个很好的小数据库设计,我打算用SQLite实现.
我还查看了如何使用Balsamiq的Mockups为应用程序设计用户界面,并向我的潜在用户群(我的团队中的同事)提交了一些想法,让他们提供反馈.
Database --> <insert code here> --> User Interface
Run Code Online (Sandbox Code Playgroud)
然而,对我而言,失败的部分是如何弥合两个设计之间的差距?我意识到这显然是编码的来源,但到目前为止我还没有用GUI做任何事情.搜索周围,我似乎没有找到任何确定的东西来帮助我(一本书,一个网站,甚至一个过程来跟踪)试图实际编写应用程序.
我在某种程度上了解Perl,但只将它用于命令行应用程序; 我可以使用Win32 :: GUI模块,但我并不真正理解GUI编程和命令行编程之间的区别,只是知道它们是不同的.
有关GUI开发的模型或指南吗?是否有将应用程序绑定到数据库的特定资源?
哪些是用于查看实现堆分配器的不同方式的优缺点的一些好资源?涉及效率(碎片,吞吐量等)的资源是首选.我不是在寻找简单的代码库.
编辑:
我对这个wiki的哲学基础并不感兴趣.因此,我真的不想进入'为什么'我对此感兴趣.无论潜在的意图/问题/等,这些信息都存在,所以如果你知道任何好的资源,请在这里链接到他们!
我得到了一个trie背后的概念.但是在实施方面我有点困惑.
我认为构建Trie类型最明显的方法是Trie维护内部Dictionary<char, Trie>.事实上,我已经用这种方式编写了一个,并且它可以工作,但是......这看起来有点过分了.我的印象是trie应该是轻量级的,并且每个节点都有一个单独的Dictionary<char, Trie>对我来说似乎不是很轻量级.
有没有更合适的方法来实现我缺少的这种结构?
更新:好的!基于Jon和leppie的非常有用的输入,这是我到目前为止所提出的:
(1)我有Trie类型,它有一个_nodes类型的私有成员Trie.INodeCollection.
(2)Trie.INodeCollection界面有以下成员:
interface INodeCollection
{
bool TryGetNode(char key, out Trie node);
INodeCollection Add(char key, Trie node);
IEnumerable<Trie> GetNodes();
}
Run Code Online (Sandbox Code Playgroud)
(3)此接口有三种实现方式:
class SingleNode : INodeCollection
{
internal readonly char _key;
internal readonly Trie _trie;
public SingleNode(char key, Trie trie)
{ /*...*/ }
// Add returns a SmallNodeCollection.
}
class SmallNodeCollection : INodeCollection …Run Code Online (Sandbox Code Playgroud) 如果我正确理解Hadoop生态系统,我可以运行我的MapReduce作业从HDFS或HBase获取数据.假设先前的假设是正确的,为什么我会选择一个而不是另一个?使用HBase作为MR源,是否具有性能,可靠性,成本或易用性的优势?
我能找到的最好的是这句话,"HBase是当你需要对非常大的数据集进行实时读/写随机访问时使用的Hadoop应用程序." - Tom White(2009)Hadoop:The Definitive Guide,1st Edition
第一:是的,我花了很长时间看看Norvig的lispy.第二:我重用了他的部分代码.
关于我的代码和我的问题.我正在用Python编写一个非常惯用的lisp解释器,我很好奇我将如何编写嵌套函数定义(例如,(define square (lambda (x) (* x x)))然后(define SoS (lambda (x y) (+ (square x) (square y))))),目前这不起作用.我有点卡住了.我能做什么?
编辑:任何关于我的编码风格或我可以做的改进的提示将不胜感激.谢谢!
"""
FIX NESTED DEFINITIONS!
(def square (lambda (x) (* x x)))
(def SoS (lambda x y) (+ (square x) (square y)))
DOES NOT WORK!
"""
#!/usr/bin/python
import readline, sys, shlex
userFuncs = {}
userVars = {}
stdOps = "% * / - + set!".split()
def lispify(nested_lists):
return str(nested_lists).replace('[','(').replace(']',')').replace(', ',' ').replace("'",'')
def mul_arr(array):
tot …Run Code Online (Sandbox Code Playgroud) 我有一个接口和两个正在实现接口的类.
public interface MyInterface {
public void firstMethod();
public int secondMethod();
}
public class MyClass1 implements MyInterface {
public void firstMethod() {}
}
public class MyClass2 implements MyInterface {
public void firstMethod() {}
public int secondMethod() {}
}
Run Code Online (Sandbox Code Playgroud)
这堂课MyClass1告诉我Add unimplemented methods,因为secondMethod没有实施,好的我会这样做.但问题是我不需要这种方法MyClass1.
在您看来,最好的做法是什么?
return 0当我替换这段代码时,我认为我提高了性能:
def f(a, b):
return math.sqrt(a) * b
result = []
a = 100
for b in range(1000000):
result.append(f(a, b))
Run Code Online (Sandbox Code Playgroud)
有:
def g(a):
def f(b):
return math.sqrt(a) * b
return f
result = []
a = 100
func = g(a)
for b in range(1000000):
result.append(func(b))
Run Code Online (Sandbox Code Playgroud)
我假设自从a在执行闭包时修复,解释器将预先计算所涉及的所有内容,a因此math.sqrt(a)将重复一次而不是1000000次.
根据实施情况,我的理解总是正确的,或总是不正确,或正确/不正确?
我注意到代码对象func是在运行时之前构建的(至少在CPython中),并且是不可变的.然后代码对象似乎使用全局环境来实现闭包.这似乎表明我希望的优化不会发生.
我有很多.c文件,即实现文件说
来自任何文件的函数可以从不同的文件中调用任何函数.我的问题是,我是否需要.h为A和B的每个实现提供一个ie头文件,其中每个头文件都有A或B 中所有函数的定义.
此外,main.c中会有两个A.h,并B.h #included在里面?
如果有人能够最终说清楚,那么我如何在以后编译并运行终端中的多个文件.
谢谢.
我目前正在为了学习目的而自己编写一个小的PNG图像I/O库.我的问题如下:
我创建了一个尺寸仅为2 x 2的小PNG,并在十六进制编辑器中打开它以研究其内容.这是我使用GIMP创建的图像,并以压缩"9"存储.
(请注意,这是原始2 x 2像素图像的放大图像;))

所以我猜没有压缩,这在内存中看起来像这样:
00 00 00 FF 00 00 00 00 FF 00 FF 00
Run Code Online (Sandbox Code Playgroud)
存储时没有alpha通道.
(为了清楚起见,我在这里只说了这个.我知道压缩,并且不希望在文件中看到这个字节模式).
我提取了IDAT块并剥离了块ID("IDAT")和尾随CRC值并得到了这个字节序列:
08 D7 05 C1 01 01 00 00 00 80 10 FF 4F 17 10 48 06 0F FE 02 FE
Run Code Online (Sandbox Code Playgroud)
现在前两个字节08 D7包含有关编码块的信息.最后四个字节0F FE 02 FE必须是ADLER32校验和.
这最终让我得到以下字节:
05 C1 01 01 00 00 00 80 10 FF 4F 17 10 48 06
Run Code Online (Sandbox Code Playgroud)
以二进制表示形式写的这些字节是:
0000 0101 1100 0001 0000 0001 0000 0001
0000 0000 …Run Code Online (Sandbox Code Playgroud) implementation ×10
c ×2
java ×2
performance ×2
python ×2
.net ×1
class ×1
closures ×1
compilation ×1
deflate ×1
dictionary ×1
encoding ×1
friend ×1
hadoop ×1
header ×1
heapalloc ×1
interface ×1
interpreter ×1
lisp ×1
methods ×1
png ×1
python-3.x ×1
scheme ×1
trie ×1