小编Lee*_*ley的帖子

编写跨平台C++代码(Windows,Linux和Mac OSX)

这是我第一次尝试在C++中编写任何稍微复杂的东西,我正在尝试构建一个可以从Objective-C和.NET应用程序接口的共享库(好的,那部分后来......)

我的代码是 -

#ifdef TARGET_OS_MAC
  // Mac Includes Here
#endif

#ifdef __linux__
  // Linux Includes Here
  #error Can't be compiled on Linux yet
#endif

#ifdef _WIN32 || _WIN64
  // Windows Includes Here
  #error Can't be compiled on Windows yet
#endif

#include <iostream>

using namespace std;

bool probe(){
  #ifdef TARGET_OS_MAC
    return probe_macosx();
  #endif
  #ifdef __linux__
    return probe_linux();
  #endif
  #ifdef _WIN32 || _WIN64
    return probe_win();
  #endif
}

bool probe_win(){
  // Windows Probe Code Here
  return true;
}

int main(){

  return 1;
} …
Run Code Online (Sandbox Code Playgroud)

c++ cross-platform

35
推荐指数
3
解决办法
6万
查看次数

如何使用Ruby的Net :: SSH库获得退出状态?

我有一段代码,只是试图在远程服务器上执行一个脚本,如果它失败了,我想打个电话跟进,想象一下:

require 'rubygems'
require 'net/ssh'
require 'etc'

server = 'localhost'

Net::SSH.start(server, Etc.getlogin) do |ssh|
  puts (ssh.exec("true")  ? 'Exit Success' : "Exit Failure")
  puts (ssh.exec("false") ? 'Exit Success' : "Exit Failure")  
end
Run Code Online (Sandbox Code Playgroud)

我希望(忽略stdout和stderr打印在我的设计示例中) - 但是第一行应该退出0,我希望Ruby会与之交互false并显示"退出失败"(当然,逻辑是错误的,三元需要被翻转) - 但第二行应以相反的状态退出,但事实并非如此.

我甚至无法在文档中找到有关如何执行此操作的任何内容,我有点担心我可能做错了吗?!

ruby ssh net-ssh

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

错误:必须是语言plpgsql的所有者

我使用的是PostgreSQL v9.0.1Rails(和它的DEPS)@ v2.3.8,由于使用的Postgres的全文能力,我有被定义为表:

CREATE TABLE affiliate_products (
    id integer NOT NULL,
    name character varying(255),
    model character varying(255),
    description text,
    price numeric(9,2),
    created_at timestamp without time zone,
    updated_at timestamp without time zone,
    textsearch_vector tsvector,
);

注意最后一行,这确保了活动记录是无法与标准架构自卸车处理它,所以我必须设置config.active_record.schema_format = :sql./config/environment.rb; 并使用rake db:test:clone_structure而不是rake db:test:clone.

这些都不是太了不起,只是不方便 - 但是rake db:test:clone_structure错误却失败了:

ERROR: must be owner of language plpgsql

因为#16我的结果./db/development_schema.sql:

CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;

在超级用户安装PostgreSQL v9.0+ …

ruby postgresql activerecord ruby-on-rails plpgsql

23
推荐指数
3
解决办法
2万
查看次数

Rails current_path Helper?

我正在使用以下路由条件的Rails 3.2应用程序:

scope "(:locale)", locale: /de|en/ do
  resources :categories, only: [:index, :show]
  get "newest/index", as: :newest
end
Run Code Online (Sandbox Code Playgroud)

我有一个控制器,具有以下内容:

class LocaleController < ApplicationController
  def set
    session[:locale_override] = params[:locale]
    redirect_to params[:return_to]
  end
end
Run Code Online (Sandbox Code Playgroud)

我在模板中使用这样的东西:

 = link_to set_locale_path(locale: :de, return_to: current_path(locale: :de)) do
   = image_tag 'de.png', style: 'vertical-align: middle'
     = t('.languages.german')
Run Code Online (Sandbox Code Playgroud)

我想知道为什么在Rails中不存在帮助器,例如current_path,能够推断出我们当前使用的路由,并且重新路由到它包括新选项.

我遇到的问题是使用类似的东西redirect_to :back,一个将用户推回/en/........(或/de/...),这会带来糟糕的体验.

到目前为止,我在会话中存储了区域设置,但这不适用于Google和其他索引服务.

我敢肯定,如果我投入足够的时间,我可以用一些足够聪明的东西来检测匹配的路线,并交换出语言环境部分,但我觉得这将是一个黑客.

我对所有想法持开放态度,但这个问题建议只使用sub(); 不幸的是,有这么短且频繁出现的字符串作为语言环境短代码,可能不太明智.

ruby ruby-on-rails-3

15
推荐指数
2
解决办法
2万
查看次数

Angular.js DI具有(ES6)类和继承

背景,我们的应用程序中的类/模块的当前实现是common.js和CoffeeScript类.我正在拼命寻找使用ES6或TypeScript的解决方案,但问题仍然存在.

如何使用Angular-1.x进行类继承的DI?

鉴于代码:

// SuperService.js
class SuperService {
  constructor($http, $q, $etc) {
    // Implementation is not important ...  
  }   
}
export { SubService }

// SubService.js
import { SuperService } from './SuperService';
class SubService extends SuperService {
  constructor($more, $di, $things, $here) {
    // Implementation is not important ... 
    // // // // // // // // // // 
    // Problem exists here ... //
    // // // // // // // // // //
    super($we, $need, $all, $the, $super, \ …
Run Code Online (Sandbox Code Playgroud)

javascript dependency-injection angularjs ecmascript-6

14
推荐指数
1
解决办法
3569
查看次数

在Go中使用匿名成员展平编组的JSON结构

鉴于以下代码:( 转载于此处play.golang.org)

package main

import (
    "encoding/json"
    "fmt"
)

type User struct {
    Id   int    `json:"id"`
    Name string `json:"name"`
}

type Session struct {
    Id     int `json:"id"`
    UserId int `json:"userId"`
}

type Anything interface{}

type Hateoas struct {
    Anything
    Links map[string]string `json:"_links"`
}

func MarshalHateoas(subject interface{}) ([]byte, error) {
    h := &Hateoas{subject, make(map[string]string)}
    switch s := subject.(type) {
    case *User:
        h.Links["self"] = fmt.Sprintf("http://user/%d", s.Id)
    case *Session:
        h.Links["self"] = fmt.Sprintf("http://session/%d", s.Id)
    }
    return json.MarshalIndent(h, "", "    ")
}

func …
Run Code Online (Sandbox Code Playgroud)

json marshalling go

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

倾倒Avahi和Bonjour,DNS-SD区域文件

我正在寻求改进mDNS的Go库:https://github.com/davecheney/mdns/

我和作者谈过,他简单地说"我把它弄到了适合我的地步",这很好,完全符合开源的精神.

他提到Avahi,Bonjour和dns-sd发现工具的一些互操作性问题没有找到他导出的服务.

我想了解Avahi在使用端口进行简单服务时发布的记录,以及简单的名称.

我曾预料到适当的版本:

dig @localhost .local -t AXFR
Run Code Online (Sandbox Code Playgroud)

可能让Avahi导出它的区域,但它对我不起作用(提示"你做错了"!) - 我想了解典型Avahi服务导出的最小记录,并自动检查Lee-Hambleys-Macbook.local从笔记本上的Apple实现中导出,我可以改进对mDNS的Go lang支持.

当其他人正在使用Avahi/Bonjour/mDNS时,他们使用什么工具来挖掘并检查事情是否按预期工作?

#avahi的善良人士非常友好地给我以下提示:

 killall -USR1 avahi-daemon
Run Code Online (Sandbox Code Playgroud)

这导致avahi-daemon将其区域文件转储到syslog.

但理想情况下,我想知道如何最好地查询服务器,tcpdump看起来也很有希望,但它仍然只显示得到查找的记录,而不是完全转储区域中的所有内容:

sudo tcpdump dst port 53
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:43:28.883763 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
09:43:29.046201 IP 192.168.178.41.61989 > resolver2.opendns.com.domain: 55378+ PTR? 251.0.0.224.in-addr.arpa. (42)
09:43:29.123784 IP …
Run Code Online (Sandbox Code Playgroud)

dns mdns multicast go avahi

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

ActiveRecord在Ruby 1.9.2-rc1下以ASCII-8Bit返回数据

除了标题之外,当从ActiveRecord加载数据时,尽管我尽最大努力强制编码,但编码始终设置为ASCII-8Bit.我已经在这里输入了尽可能详细的信息,试图建立一个可以用来帮助我的好错误报告!

该项目使用以下技术:

  • Padrino框架
  • Ruby 1.9.2-rc2(同样是1.9.1和1.9.2-preview3)
  • ActiveRecord的
  • MySQL的

(完整名单)

$ bundle show | ack '(record|padrino)'
  * activerecord (2.3.8)
  * padrino (0.9.14)
  * padrino-admin (0.9.14)
  * padrino-core (0.9.14)
  * padrino-gen (0.9.14)
  * padrino-helpers (0.9.14)
  * padrino-mailer (0.9.14)
Run Code Online (Sandbox Code Playgroud)

剧集表:

mysql> DESCRIBE `episodes`;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| id             | int(11)      | NO   | PRI | NULL    | auto_increment |
| show_id        | int(11)      | YES  |     | NULL    |                |
| season_id …
Run Code Online (Sandbox Code Playgroud)

ruby mysql encoding activerecord padrino

5
推荐指数
2
解决办法
2103
查看次数

在forked/threaded应用程序内运行时,ActiveRecord无法重新连接?

这里有一个开放式问题,所以我先概述一下这个问题.我们有一个Resque工作者应该从队列中弹出数据同步作业,原因是双重的,使用Cron(并且支持Rails环境引导时间一遍又一遍)很糟糕,以及替代队列,Github做的很好当他们宣布Resque时,他们是一个非常好的案例.此外,Redis时间序列功能已经成为我们基础设施的重要组成部分,我们还将TS数据混合到RRDTool等中......

这是问题,工作之间通常有三个小时(但工作人员可以随时安排工作......因此队列),PostgreSQL服务器消失了.足够容易治愈,我预计,设置reconnect: true相应的环境下,将确保这一预期一样.我在读一些 地方reconnect: true不会为使用应用程序的工作fork().当然,Resque确实会启动它的工作人员...我不明白的部分是为什么ActiveRecord的重新连接在这些情况下无法工作?

我注意到的实现reconnect!MySQL的适配器PostgreSQL的适配器中的ActiveRecord是不同的......但无论哪种方式,我希望ActiveRecord的reconnect: true配置工作.

这个问题似乎很清楚,当子进程存在时,它会关闭父进程创建的文件句柄(从而挂断与数据库的连接) - 是否有可能以ActiveRecord不这样的方式关闭文件句柄认识到连接已经终止?

还有,值得一提的是,我能够在Github上找到一个ActiveRecord感知的fork()作为一个牧师 - 它没有经过测试,但我认为它有效(没有用当前的Rails试过......)

我的问题是,为什么不能自动重新连接AR工作如果你fork()(而且,后来 - 我不能成为唯一一个遇到这个问题的人;我正在将它用于使用带有Resque的PGSQL!)

ruby mysql postgresql activerecord resque

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

使用 CTest 运行嵌套测试

我有一个小但不平凡的项目,由于架构原因,它被构建为三个独立的项目,它们是相互依赖的,所以除非我特别专注,或者提高发现漏洞的测试覆盖率,否则这是有意义的我从项目根开始工作。

布局是这样的:

/CMakeLists.txt
/build/
/src/command-line-application/
/src/command-line-application/CMakeLists.txt
/src/command-line-application/build/
/src/command-line-application/src/
/src/command-line-application/tests/
/src/command-line-application/include/
/src/vlc-plugin/
/src/vlc-plugin/src/
/src/libmyproject/
/src/libmyproject/CMakeLists.txt
/src/libmyproject/build/
/src/libmyproject/src/
/src/libmyproject/tests/
/src/libmyproject/include/
/src/libmyotherproject/
/src/libmyotherproject/CMakeLists.txt
/src/libmyotherproject/build/
/src/libmyotherproject/src/
/src/libmyotherproject/tests/
/src/libmyotherproject/include/
Run Code Online (Sandbox Code Playgroud)

关于架构的一句话,libmyproject是我的应用程序的真正核心,它是这样构建的,因为 CLI 是将代码发送给最终用户的可怕方式,作为一个库,它也可以在 C# 和 Objective-C 应用程序中使用。(一切都按预期工作)

libmyotherproject是一些特定于平台的支持代码,不直接连接到libmyproject,它有一些单元测试。

除了表明并非所有内容都有单元测试之外,这vlc-plugin在这里并不重要。/src/*/

我的工作流程通常是破解 CLI 应用程序,直到出现有用的东西,然后将其重构到库中,并确保它是可移植的。

当我工作时/src/*/build/,通常是跑步时cmake ../ && make && ctest --output-on-failure,一切正常。

/build当我在和 run中工作时cmake,各个组件是add_subdirectories()从 CMake 正确构建的(使用),但CTest没有递归地找到测试。

该文档对CTest您应该做的事情有点无帮助:

USAGE
         ctest [options]

DESCRIPTION
       The  "ctest"  executable is the CMake …
Run Code Online (Sandbox Code Playgroud)

unit-testing cmake ctest

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