小编Dan*_*ien的帖子

Haskell中的并发数据库连接池

我是一名学习Haskell的Java程序员.
我在一个小型网络应用程序上工作,该应用程序使用Happstack并通过HDBC与数据库进行通信.

我编写了selectexec函数,我就像这样使用它们:

module Main where

import Control.Exception (throw)

import Database.HDBC
import Database.HDBC.Sqlite3 -- just for this example, I use MySQL in production

main = do
    exec "CREATE TABLE IF NOT EXISTS users (name VARCHAR(80) NOT NULL)" []

    exec "INSERT INTO users VALUES ('John')" []
    exec "INSERT INTO users VALUES ('Rick')" []

    rows <- select "SELECT name FROM users" []

    let toS x = (fromSql x)::String
    let names = map (toS . head) rows

    print names …
Run Code Online (Sandbox Code Playgroud)

rdbms haskell connection-pooling hdbc

10
推荐指数
2
解决办法
2938
查看次数

Win32 Api函数的调试中断

我想在SetTimer函数上休息一下,看看哪些组件用什么值注册了哪些定时器.这可能吗?

c debugging winapi breakpoints

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

生成具有均匀概率(或更小)的随机三次图

虽然这可能看起来像家庭作业,但我向你保证不是.这源于我做过的一些家庭作业.

如果每个顶点的度数恰好为3,那么让我们调用一个没有自我边缘"立方"的无向图.给定正整数N我想在N个顶点上生成随机立方图.我希望它具有统一的概率,也就是说,如果N个顶点上有M个立方图,则生成每个顶点的概率为1/M. 一个较弱的条件仍然很好,每个立方图具有非零概率.

觉得有一个快速而聪明的方法来做到这一点,但到目前为止,我一直没有成功.

我是一个糟糕的程序员,请忍受这个糟糕的代码:

PRE:edges =(3*个节点)/ 2,节点是偶数,以哈希工作的方式选择常量(BIG_PRIME大于边缘,SMALL_PRIME大于节点,LOAD_FACTOR小).

void random_cubic_graph() {

int i, j, k, count;
int *degree;
char guard;

count = 0;
degree = (int*) calloc(nodes, sizeof(int));

while (count < edges) {

    /* Try a new edge at random */

    guard = 0;
    i = rand() % nodes;
    j = rand() % nodes;

    /* Checks if it is a self-edge */

    if (i == j)
        guard = 1;

    /* Checks that the degrees are 3 or less …
Run Code Online (Sandbox Code Playgroud)

c random algorithm graph-theory graph

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

fread只有.PNG文件的前5个字节

我已经制作了一个简单的资源包装器,用于将我的游戏资源打包到一个文件中.在我开始编写解包器之前,一切都很顺利.我注意到我已经打包的.txt文件--26个字节 - 来自资源文件,没有任何问题,保留了所有数据.但是,当读取我在资源文件中打包的.PNG文件时,前5个字节完好无损,而其余的则完全无效.

我追溯到打包过程,我注意到fread只读取.PNG文件的前5个字节,我不能为我的生活找出原因.它甚至触发'EOF'表示文件只有5个字节长,而实际上它是一个787字节的小多边形PNG,100px×100px.

我甚至通过单独的应用程序来简单地将这个PNG文件读入缓冲区来测试这个问题,我得到相同的结果,只读取5个字节.

以下是该小型独立应用程序的代码:

#include <cstdio>

int main(int argc, char** argv)
{
    char buffer[1024] = { 0 };
    FILE* f = fopen("test.png", "r");
    fread(buffer, 1, sizeof(buffer), f);
    fclose(f);        //<- I use a breakpoint here to verify the buffer contents
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人可以指出我的愚蠢错误吗?

c file-io stdio msvcrt fread

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

如何使用libtool创建二进制文件和.so

我有一组cpp文件,我想直接编译成二进制文件,并编译成共享库.

我有

bin_PROGRAMS=mybin
lib_LTLIBRARIES=libmylib.la

COMMON_SOURCES=f1.cpp f2.cpp f3.cpp

mybin_SOURCES=main.cpp $(COMMON_SOURCES)
libmylib_la_SOURCES=$(COMMON_SOURCES)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,cpp文件被编译两次,一次使用libtool,一次没有,有时libtool/automake抱怨

Makefile.am: object `f1.$(OBJEXT)' created both with libtool and without`
Run Code Online (Sandbox Code Playgroud)

我尝试将COMMON_SOURCES放入.a文件中,但是当我将.a与.la链接时,libtool会抱怨(说它不可移植).

我需要的是类似的东西

bin_LTPROGRAMS=mybin
Run Code Online (Sandbox Code Playgroud)

但那并不存在

编辑:澄清 - 我正在使用automake/autoconf.我上面展示的是我的automake Makefile.am的内容

c++ automake autoconf gcc libtool

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

如何使用自定义质量级别在Android上保存JPEG图像

在Android上,如何将图像文件保存为30%质量的JPEG?

在标准Java中,我将使用以下ImageIO方式读取图像BufferedImage,然后使用IIOImage实例将其保存为JPEG文件:http://www.universalwebservices.net/web-programming-resources/java/adjust-jpeg-image-compression -quality-when-saving-images-in-java.然而,似乎Android缺乏这个javax.imageio包.

java android jpeg lossy-compression

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

C++中的高性能XML解析

关于在C++中解析XML等问题已经提出了很多问题......但是,我的问题非常具体,而不是一般问题.

我要求一个非常有效的C++ XML解析器.特别是我有一个非常非常大的XML文件来解析.我的应用程序必须打开此文件并检索数据.它还必须插入新节点并再次将最终结果保存在文件中.

为了做到这一点,我在开始时使用了rapidxml,但它要求我打开文件,解析所有内容(所有内容因为这个lib没有直接访问文件的功能而不先加载整个树),然后编辑树,修改它并通过覆盖它将最终树存储在文件上...它消耗了太多的资源.

是否有一个XML解析器,不需要我加载整个文件,但我可以用来快速插入新节点和检索数据?你能指出我这个问题的解决方案吗?

c++ xml parsing

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

是否可以在模板中键入一个指向外部的"C"函数类型?

我想在typedef一个模板中添加一个public ,用于指向使用"C"语言链接的函数take-one-argument的指针.

我试过了:

extern "C" {
    template <typename return_t_, typename arg1_t_>
    struct test
    {
        typedef return_t_ (*C_fun1_t)(arg1_t_);
    };
}
Run Code Online (Sandbox Code Playgroud)

和:

template <typename return_t_, typename arg1_t_>
struct test
{
    extern "C" {
        typedef return_t_ (*C_fun1_t)(arg1_t_);
    }
};
Run Code Online (Sandbox Code Playgroud)

和:

template <typename return_t_, typename arg1_t_>
struct test
{
    extern "C" typedef return_t_ (*C_fun1_t)(arg1_t_);
};
Run Code Online (Sandbox Code Playgroud)

没有成功.

我想要完成的是什么?

c++ templates typedef extern

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

另一种复制算法

我有两个向量.

vector<Object> objects;
vector<string> names;
Run Code Online (Sandbox Code Playgroud)

填充这两个向量并具有相同的大小.我需要一些算法来分配对象变量.它可以使用boost :: lambda.让我们说:

some_algoritm(objects.begin(), objects.end(), names.begin(), bind(&Object::Name, _1) = _2);
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

c++ boost stl boost-lambda

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

为什么选择我的自定义操作系统的CPU实现?

为了学习如何编写自定义TensorFlow操作,我按照添加新操作教程并制作了一个"add_b"操作,b为每个输入值添加一个标量.

add_b_op.cc:

#define EIGEN_USE_THREADS

#include "third_party/eigen3/unsupported/Eigen/CXX11/Tensor"

#include "tensorflow/core/framework/common_shape_fns.h"
#include "tensorflow/core/framework/op.h"
#include "tensorflow/core/framework/op_kernel.h"
#include "tensorflow/core/framework/shape_inference.h"

using namespace tensorflow;

REGISTER_OP("AddB")
    .Attr("T: {float, double}")
    .Input("input: T")
    .Input("b: T")
    .Output("output: T")
    .SetShapeFn([] (shape_inference::InferenceContext* c) -> Status {
      shape_inference::ShapeHandle out;
      TF_RETURN_IF_ERROR(c->WithRank(c->input(1), 0, &out));
      return shape_inference::UnchangedShape(c);
    })
//----------------------------------------------------------------------
    .Doc(R"doc(
Adds `b` to each input.

input: The input values.
b: A number to add to each input value.
)doc");


template <typename T>
class AddBCpuOp : public OpKernel {
 public:
  explicit AddBCpuOp(OpKernelConstruction* context) …
Run Code Online (Sandbox Code Playgroud)

c++ custom-operator tensorflow

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