小编Ela*_*ich的帖子

仅使用git将网站的已更改部分部署到ftp(对于git为svn2web)

我有一个包含许多大图像文件的网站.使用git维护源(以及图像).我希望通过ftp将其部署到类似bluehost的廉价服务器上.

我不希望每次都部署所有网站(这样我就不必一遍又一遍地上传太多未更改的文件),但大致如下:

  1. 在git存储库中,使用标记"已部署"标记上次部署的修订.
  2. 当我说"部署修订版X"时,找出哪些文件在修订版X和标记为部署的修订版之间发生了变化,并且只上传它们.

它在精神上类似于svn2web.但我想要DVCS.将考虑Mercurial替代方案.

这是一个非常简单的编写脚本,但如果网上有类似的脚本,我宁愿不重新发明轮子.

Capistrano和fab似乎只知道如何在他们的SCM集成中推动整个修订版.所以我认为我目前不能使用它们.

git deployment version-control mercurial

9
推荐指数
2
解决办法
6144
查看次数

短字符串的哈希函数

我想将函数名从弱嵌入式系统发送到主机以进行调试.由于两者是通过带宽短的RS232连接的,我不想直接发送功能的名称.有大约15个字符长的函数名称,我有时想以相当高的速率发送这些名称.

我想到的解决方案是找到一个散列函数,它将这些函数名称散列为单个字节,并仅发送此字节.主机将扫描源中的所有函数,使用相同的函数计算其散列,然后将散列转换为原始字符串.

哈希函数必须是

  1. 短线串冲突.
  2. 简单(因为我不想在嵌入式系统中使用太多代码).
  3. 适合单个字节

显然,它不需要以任何方式保证安全,只需要无碰撞.所以我不认为使用与加密相关的哈希函数是值得的复杂性.

示例代码:

int myfunc() {
    sendToHost(hash("myfunc"));
}
Run Code Online (Sandbox Code Playgroud)

然后主持人可以向我提供myfunc执行该功能的时间列表.

是否有一些已知的哈希函数可以保持上述条件?

编辑:

  1. 我假设我将使用少于256个函数名.
  2. 我可以使用多个字节,两个字节可以让我很好.
  3. 我更喜欢使用,而不是使用客户端和服务器上同样的功能到字节映射的哈希函数,因为:(1)我在客户端上没有地图的实现,我不知道我想提出一个调试目的.(2)它需要我的构建链中的另一个工具将function-name-table注入我的嵌入式系统代码中.在这方面哈希更好,即使这意味着我会在很多时候碰撞一次.

c string math hash

9
推荐指数
1
解决办法
5275
查看次数

解析scala中嵌套元组的错误

在scala中编写以下代码时

var m = Map((0,1) -> "a")
m += ((0,2), "b") // compilation error
Run Code Online (Sandbox Code Playgroud)

我收到了错误

type mismatch;
 found   : Int(0)
 required: (Int, Int)

然而,将元组的语法从改变(X,Y)(X -> Y)工作

var m = Map((0,1) -> 'a)
m += ((0,2) -> 'b) // compiles file
Run Code Online (Sandbox Code Playgroud)

即使

((0,1).getClass == (0 -> 1).getClass) // is true
(0,1).isInstanceOf[Tuple2[_,_]] && (0 -> 1).isInstanceOf[Tuple2[_,_]] // both true
Run Code Online (Sandbox Code Playgroud)

这是为什么?scala认为我的嵌套元组是什么?

syntax scala tuples

9
推荐指数
1
解决办法
381
查看次数

为什么Scala隐式将Char转换为Int?

看着Predef自动导入的scala 对象,我找到了以下gem

implicit def char2int(x : Char) : Int
Run Code Online (Sandbox Code Playgroud)

这已经引起了一些低俗的漏洞,潜入我的代码(用来_1代替_2Map[Char,Int]).我真的不明白,为什么我要隐式转换CharInt.拥有Char类型(仅仅是一个数字)的整个想法是我不会将它用作数字(反之亦然).

我使用scala的类型系统,以免出现这样的错误!

我唯一(坏)的借口是与Java的可怕行为兼容.

更新:到目前为止给出的两个答案给出的主要原因是隐式转换是为了支持对Char类型的有序动作.这样'c'+1就可以生成d.如果这就是你想要的,你应该这样做

class Char ...
    ...
    def +(x:Int) = (this.toInt+x).toChar
    def <(x:Char) = this.toInt < x.toInt
Run Code Online (Sandbox Code Playgroud)

你可以根据自己的喜好添加和比较字符.Char只有16位数的事实意味着我们需要一个新的Word(或Short)类型.

types scala

9
推荐指数
1
解决办法
5280
查看次数

将键事件路由到其他控件

是否有任何标准方法将所有Key事件从控件路由A到其他控件B?我希望键盘焦点仍然可用,A但是事件处理程序A会触发B关键事件的所有事件处理程序.

编辑:澄清:调用我写的特定事件处理程序B是不够的.我需要模仿实际的事件.所以例如我希望如果一个密钥被发送到a TextBox,它将被写入TextBox.下面给出的解决方案不会这样做(更不用说如果新的事件处理程序添加到B它完全失败的事实).

我知道WPF区分逻辑焦点和键盘焦点,但我需要两个焦点保持控制A,但在某些情况下将其传入事件路由到其他控件.

c# wpf events event-handling

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

JavaFX的成功案例

有没有人在这里真正使用JavaFX进行实际应用?我对JavaFX的使用做了一个浅薄的搜索,发现几乎没有大量使用情况.

有谁知道实际使用JavaFX的公司?我真的害怕JavaFX(目前是唯一一些开源的RIA平台)无法生存.

更新 此问题给出了JavaFX程序的一些示例(主要是为竞赛编写的代码).但我没有看到那里的商业用户.

javafx

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

x86 emulator for training embedded development

I wish to learn more about the inner working of the computer, to enhance my knowledge about embedded system developement.

At work, I never get involved with the low-level details (such as, the GDT, the loader of the code from flash to RAM, etc) as all these are already written.

我现在不想购买任何其他硬件.有没有一个模拟器,一个非常简单的操作系统,我可以玩,以掌握嵌入式programmimng的所有低级方面?是否有一个教程可以指导我设置一个非常简单的嵌入式环境(设置内存段,GDT,进入保护模式和执行main())

architecture embedded x86 assembly

8
推荐指数
2
解决办法
1614
查看次数

在构造函数之后初始化C++ const字段

我想创建一个不可变的数据结构,例如,可以从文件初始化.

class Image {
public:
   const int width,height;
   Image(const char *filename) {
     MetaData md((readDataFromFile(filename)));
     width = md.width();   // Error! width  is const
     height = md.height(); // Error! height is const
   }
};
Run Code Online (Sandbox Code Playgroud)

我能做些什么来解决这个问题

class Image {
   MetaData md;
public:
   const int width,height;
   Image(const char *filename):
     md(readDataFromFile(filename)),
     width(md.width()),height(md.height()) {}
};
Run Code Online (Sandbox Code Playgroud)

然而

  1. 它迫使我将MetaData保存为我对象中的一个字段.我并不总是想要.
  2. 有时构造函数中的逻辑比单个读取要复杂得多(例如,错误处理可能需要几行)

所以我想到的唯一解决方案是沿着这条线

class A {
  int stub;
  int init(){/* constructor logic goes here */}
  A():stub(init)/*now initialize all the const fields you wish
  after the constructor ran */{}
};
Run Code Online (Sandbox Code Playgroud)

有更好的主意吗?(在 …

c++ constructor const

8
推荐指数
4
解决办法
7083
查看次数

按活动类型分析程序

典型分析器的输出是代码中的函数列表,按程序运行时每个函数所用的时间量排序.

这是非常好的,但有时我对程序在大多数时间做的事情感兴趣,而不是EIP大部分时间.

我的假设分析器的示例输出是:

Waiting for file IO - 19% of execution time.
Waiting for network -  4% of execution time
Cache misses        - 70% of execution time.
Actual computation  -  7% of execution time.
Run Code Online (Sandbox Code Playgroud)

有这样的探查器吗?是否有可能从"标准"分析器中获得这样的输出?

我正在使用Linux,但我很高兴听到其他系统的任何解决方案.

c c++ profiling

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

正确关闭SSLSocket

我想在Java中实现SSL代理.我基本上打开两个套接字browser-proxy,proxy-server然后运行两个线程来写入proxy-server它们读取的内容browser-proxy,反之亦然.每个线程看起来像这样:

while (true) {
   nr = in.read(buffer);
   if (nr == -1) System.out.println(sockin.toString()+" EOF  "+nr);
   if (nr == -1) break;
   out.write(buffer, 0, nr);
}
sockin.shutdownInput();
sockout.shutdownOutput(); // now the second thread will receive -1 on read
Run Code Online (Sandbox Code Playgroud)

每个线程只关闭输入套接字,以便最终关闭两个套接字.

但是,如果我想使用它,我该怎么办SSLSocket?似乎shutdownOutput/Input那里不支持这些方法.这是我得到的例外.

Exception in thread "Thread-35" java.lang.UnsupportedOperationException: \
The method shutdownInput() is not supported in SSLSocket
    at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.shutdownInput(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我想出的是:

try {
    while (true) {
       nr = in.read(buffer);
       if (nr == -1) System.out.println(sockin.toString()+" …
Run Code Online (Sandbox Code Playgroud)

java sockets ssl

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