我正处于试图将我的思绪包裹在Go周围的婴儿阶段.目前,我正在模拟一个API请求,该请求返回包含对象数组的JSON格式的字符串.我正在尝试找出迭代每条记录并访问每个字段的最合适方式.最终,每个字段都将写入Excel电子表格,但是现在我只想打印每个字段的键和值.
这就是我所拥有的(我在Go Playground中提供它,但不支持HTTP请求):
response, err := http.Get("http://go-proto.robwilkerson.org/demo.json")
failOnError(err, "Uh oh")
defer response.Body.Close()
var view []interface{}
json.NewDecoder(response.Body).Decode(&view)
log.Printf(" [x] Pulled JSON: %s", view)
for _, record := range view {
log.Printf(" [===>] Record: %s", record)
for key, val := range record {
log.Printf(" [========>] %s = %s", key, val)
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到试图迭代的嵌套循环map
保存每条记录的属性:
cannot range over record (type interface {})
Run Code Online (Sandbox Code Playgroud)
我想有两个问题:
UPDATE
当我将解码的数据转储到view
变量中时,这是记录的结果:
[
map[id:ef14912f-8031-42b3-8c50-7aa612287534 avatar:http://placehold.it/32x32 name:Vilma Hobbs email:vilmahobbs@exiand.com phone:+1 (886) 549-3522 address:471 Dahill Road, Jacksonwald, …
Run Code Online (Sandbox Code Playgroud) 今天早上,当我尝试在Vim中打开文件时,我开始收到该消息.Vim是配置文件,git提交消息等的首选编辑器,但不是我的日常代码编辑器.我明确地做了一些邀请这个消息,但我不知道是什么.我最近卸载了一个旧版本的XCode /Developer-3.2.6
,但这是唯一让人想到的东西,甚至与切向相关.
我正在运行OSX Lion.兴奋的ctags是基础安装的一部分吗?我知道我没有故意安装它,但如果它不是原生的,那么它可能还带有别的东西吗?有关如何获取插件或删除对它的引用的任何想法,所以我没有收到警告消息?
谢谢.
我最近两次使用MacPorts进行安装mysql5 +server
,未安装plist,允许我在启动时启动MySQL.我不记得在最后一次安装时我做了什么,我似乎无法找到安装它的方法.我错过了什么吗?如何获取plist文件(我知道自动启动MySQL的唯一方法)或以其他方式自动启动MySQL?
谢谢.
更新:我仍然没有在任何地方找到答案,但我手动安装了文件.我的一台安装较旧的机器有相关文件,因此我将它们发送到我的新机器,在/ Library/LaunchDaemons中创建了相应的符号链接并执行了加载plist文件的命令.现在一切都很好,但这对其他人没有帮助.如果有人需要这些文件和/或说明,请通过http://robwilkerson.org/contact与我联系,我很乐意提供这些文件,因为我无法在此处上传.
我试图找到我的方法来解决OAuth规范,它的要求以及我能找到的任何实现,到目前为止,它似乎比它的价值更麻烦,因为我很难找到一个可以将它全部拉到一起的资源.或者也许只是因为我正在寻找比大多数教程更专业的东西.
我有一组现有的API - 一些是Java,一些是PHP - 我现在需要保护它,并且出于多种原因,OAuth似乎是正确的方法.不幸的是,我无法找到合适的资源来帮助我启动和运行提供商,这对该理论提出了挑战.由于大部分将是系统到系统的API使用,我需要实现一个两条腿的提供程序.考虑到这一点...
谢谢你的帮助.
我觉得有必要为提出这么简单的问题而道歉,但我对Rails指南越来越感到沮丧.我确信他们回答了我的问题,但他们没有提供足够的背景让我真正理解如何运用他们给我的东西.谷歌也没有多大帮助,尽管我可能只是在搜索错误的术语/短语.鉴于免责声明,我只是要继续问:
我有一个Image
HABTM Album
.为了支持这一点,我有一个albums_images
表image_id
和album_id
字段(没有其他).对于我的生活,我无法弄清楚如何填充我的图像形式部分,以便用户可以选择新上传的图像应该属于的相册.
我正在学习Rails,所以我真的只想要基础知识.我确信有一些花哨的插件可以做到这一百种方式,但我想首先学习基础知识并从那里开始构建.我的表格部分是相当多的教科书:
<% form_for( @image, :html => { :multipart => true } ) do |f| %>
# All the basics you'd expect to see.
<% end %>
Run Code Online (Sandbox Code Playgroud)
我最近的尝试没有比我尝试的任何其他变种更好,但看起来像这样:
<p>
<%= f.label :album_id %>
<%= f.select( :album_id, current_user.albums, :id, :name ) -%>
</p>
Run Code Online (Sandbox Code Playgroud)
我再次认识到问题的简单性,我已经阅读了我能找到的内容,但我无法将其整合到一个完整的解决方案中.似乎有很多方法可以做到这一点,但没有真正讨论每个方法,它们的优点/缺点或如何在更大的背景下真正使用它们.
谢谢.
更新:要注意的几个键和代码更正.首先,图像和专辑之间存在HABTM关系.两个型号表都没有FK直接引用另一个.其次,专辑收藏应该被访问current_user.albums
(上面更正).用户has_many
相册和相册belongs_to
用户.
更新:根据下面的IV的要求,目前,使用此代码:
22: <p>
23: <%= f.label :album_id %>
24: <%= f.select( :album_id, current_user.albums.collect {|a| …
Run Code Online (Sandbox Code Playgroud) 我正在构建我的第一个Safari扩展 - 一个非常简单的扩展 - 但我遇到了一些问题.扩展名归结为单个注入脚本,该脚本尝试绕过本机Feed处理程序并重定向到http:// URI.到目前为止,我的问题有两个:
beforeload
事件处理程序,但无法使用safari.extension.settings
文档中指示的路径访问我的设置.我没有在Apple的文档中找到任何内容,表明我的脚本不应该提供设置.由于扩展功能是一项新功能,因此即使是Google也会返回有限的相关结果,其中大部分都来自官方文档.
我错过了什么?
谢谢.
更新
所以我希望文档不完整,因为它的边界非常糟糕,但我已经了解了一些设置.事实证明,从注入脚本,该SafariExtensionSettings
对象不可用.注入脚本只能访问该SafariContentExtension
对象(根本没用),但它的别名方式完全相同(safari.extension.settings
) - 坏主意,IMO.如注入脚本文档中所述:
重要提示:当您在注入的脚本中使用safari.extension时,您不会处理SafariExtension类.您正在处理SafariContentExtension类.
您必须使用消息传递系统与可以访问设置的全局HTML文件进行通信.它有点循环,但是我有一条消息被发送到一个global.html
文件来检索设置,并且一旦我弄清楚如何去做,就会将消息发送回我的注入脚本.
由于我做所有我的工作文件加载之前,所有的方法,我发现要发送消息回靠,我没有一个网页对象.
这涉及到另外一个问题我最近问存储在Dropbox的非纯仓库的计算机之间轻松移动,因此它可能是有帮助的阅读背景问题.
要点是fileMode
不断报告某些文件的差异.我无法找到一种方法来重现它,但它经常发生.我注意到的是,该文件在两台机器上具有644权限,通常会在其中一台机器上报告755的差异.这让我觉得Git认为可执行位已设置,但我无法弄清楚我是否真的可以看到 Git 是如何设置该位的.
我已经开始将很多开发环境迁移到Vagrant.到目前为止,这几乎对所有事情都很好,但我们的第一次Drupal迁移无法使用.这令人难以置信地缓慢.我们的Wordpress,CakePHP和Node.js网站都表现得非常充分或更好,但不是Drupal.这种想法太可怕了.
这个盒子是Veewee创建的Ubuntu 12.04 64bit机器.它与我们用于所有基于Web的项目的基本框相同,因此没有什么独特之处.在我的sites目录中,我有一个sites/my-site/
带有所有站点资源的规范目录()和一个带有域名(sites/dev.mysite.com -> /vagrant/www/sites/my-site
)的规范目录的符号链接,这对于团队正在使用的某个模块显然是必需的.
这是一个混合的Windows/OSX开发团队,它在两个平台上都很慢.我唯一的半非传统片段Vagrantfile
是这样的:
config.vm.forward_port 80, 8080
config.vm.share_folder( "v-root", "/vagrant", ".", :extra => 'dmode=777,fmode=777' )
# Allows symlinks to the host directory.
config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
Vagrant::Config.run do |config|
config.vm.provision :shell, :path => "provision.vm.sh"
end
Run Code Online (Sandbox Code Playgroud)
我的shell配置程序只做了几件事:
settings.php
文件.我能做些什么来提高性能吗?喜欢,很多?
UPDATE
我把它缩小到了一个看起来问题就是远程数据库的地步.为了比较没有项目行李的苹果和苹果,我下载了Drupal 7.21的新副本,并从Vagrant Web服务器对3个不同的数据库执行标准安装:
完成后,我登录到新的Drupal安装并加载主页(localhost:8080)5次.然后我以相同的方式连接到每个数据库并加载相同的页面.我发现当Drupal连接到远程数据库时,页面加载速度慢了4-6倍.
请记住,这是一个新的(标准)安装.没有项目行李.
我在我的第一个节点项目上做了一点OJT,虽然我可以站起来一个简单的服务器,但应用程序将受到重创,因此使用集群似乎是一个好主意.我拼凑了一些我在各种搜索(包括SO)中找到的代码片段,但服务器无法启动.我确定我对节点缺乏经验让我做了一些愚蠢的事情,但我没有看到它.
var express = require( 'express' );
var cluster = require( 'cluster' );
var path = require( 'path' );
var cCPUs = require( 'os' ).cpus().length;
var port = 3000;
var root = path.dirname( __dirname );
if( cluster.isMaster ) {
for( var i = 0; i < cCPUs; i++ ) {
cluster.fork();
}
cluster.on( 'death', function( worker ) {
console.log( 'Worker ' + worker.pid + ' died.' );
});
}
else {
// eyes.inspect( process.env );
console.log( 'Worker: %s', process.env.NODE_WORKER_ID ); …
Run Code Online (Sandbox Code Playgroud) 我想我已经在某个地方找到了答案,但我现在似乎无法找到它.我正在development
为我的EC2实例创建动态库存文件.我想将标记为的所有实例分组Stack=Development
.此外,我想具体确定开发API服务器.那些不仅有Stack=Development
标签,还有API=Yes
标签.
我的基本设置使用库存文件夹:
<root>/development
??? base
??? ec2.ini
??? ec2.py
Run Code Online (Sandbox Code Playgroud)
在我的base
文件中,我想要这样的东西:
[servers]
tag_Stack_Development
[apiservers]
tag_Stack_Development && tag_API_Yes
Run Code Online (Sandbox Code Playgroud)
然后我就可以运行它来ping我的所有开发api服务器:
ansible -i development -u myuser apiservers -m ping
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?我知道语法不对,但希望意图相当清楚?我无法想象我是唯一一个需要过滤多个标签的人,但是我无法找到任何让我想到的地方.