我正在尝试rvm,并安装了ruby 1.9.2和rails 3.我需要重新安装sqlite3-ruby gem(因为rvm保留所有gem为不同版本的ruby分开).
问题是,当我尝试时,我得到:
gem install sqlite3-ruby
/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4: warning: Insecure world writable dir /home/jenny/.rvm/gems/ruby-1.9.2-p0/bin in PATH, mode 040777
Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.
/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_next_stmt()... yes
checking for sqlite3_column_database_name()... yes
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make
gcc -I. -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/i686-linux …Run Code Online (Sandbox Code Playgroud) 我正在将一组自定义对象保存到plist列表文件中,如下所示:
+(void) arrayToPlist: (NSArray*) plant_types{
NSMutableArray* dictionary_array = [NSMutableArray arrayWithCapacity: plant_types.count];
for(int i = 0; i<plant_types.count; i++){
PlantType* pt = [plant_types objectAtIndex: i];
[dictionary_array addObject: [pt toDict]];
}
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* filePath = [rootPath stringByAppendingPathComponent:@"PlantTypes.plist"];
NSLog(@"Writing plist to: %@", filePath);
[dictionary_array writeToFile: filePath atomically: YES];
}
Run Code Online (Sandbox Code Playgroud)
这会创建一个看起来像这样的文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>name</key>
<string>Autumn Olive</string>
<key>radius</key>
<real>10</real>
</dict>
<dict>
<key>name</key>
<string>Dwarf Cherry</string>
<key>radius</key>
<real>5</real>
</dict>
<dict> …Run Code Online (Sandbox Code Playgroud) 当我做:
B C
223 herp
223 herp
3 herp
223 derp
223 herp,derp
=countif(C:C, "*herp*")
Run Code Online (Sandbox Code Playgroud)
我正确得到4.
当我做
=count(filter(B:B, B:B=223, C:C="*herp*"))
Run Code Online (Sandbox Code Playgroud)
我错误地得到0.当我删除"*"通配符时,我得到2,这是更好的,但没有得到herp,derp.
过滤器不支持通配符吗?如果是这样,只有当其中两列满足两个具有通配符的不同条件时,如何计算一行?
我过去做了很多rails和ruby工作(使用rvm,有许多不同类型的红宝石),但最近还没有完成任何ruby工作.我只是尝试制作一个新的rails应用程序,以确保我的技能不生锈,使用以下设置:
使用系统ruby:
哪个ruby:/ usr/bin/ruby
ruby -v:ruby 1.8.7(2008-08-11> patchlevel 72)[i586-linux]rails -v:Rails 3.0.7
当我输入:rails new TestApp我得到一个新的rails应用程序,带有Gemfile,一切似乎都很好.
在TestApp内部,当我运行时:
捆绑安装
我明白了:
令我沮丧的是:
org/jruby/RubyArray.java:1671:in `each': Detected invalid array contents due to unsynchronized modifications with concurrent users (ConcurrencyError)
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/spec_set.rb:12:in `each'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/installer.rb:49:in `run'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/installer.rb:8:in `install'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/cli.rb:222:in `install'
from org/jruby/RubyObject.java:1334:in `send'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor/task.rb:21:in `run'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor.rb:246:in `dispatch'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor/base.rb:389:in `start'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/bin/bundle:13:in `(root)'
from org/jruby/RubyKernel.java:1066:in `load'
Run Code Online (Sandbox Code Playgroud)
这似乎意味着捆绑包使用jruby(并且在执行此操作时出错并且无法执行我的捆绑安装).
这里有什么明显的错误吗?我正在使用新的rails应用程序附带的默认gem文件...(在这里找到:http://pastie.org/2986869)
我最后一次做任何轨道工作,一切都很好......但那是不久前(几个月,也许近一年?).有什么我忘了吗?
编辑:
哪个bundle:/ home/jenny/bin/bundle哪个rails:/ home/jenny/bin/rails
我不相信自己目前正在使用RVM,但只是为了确保我确保rvm指向系统ruby(所以rvm或不,它应该使用相同的东西).
编辑:"rvm …
我有一个屏幕,弹出Facebook登录的东西,代码如下:
//facebook stuff
if (Session.getActiveSession() == null || Session.getActiveSession().isClosed()) {
Session.openActiveSession(this, true, null);
}
Run Code Online (Sandbox Code Playgroud)
如果用户点击"后退"按钮并取消登录的东西,它会自动将它们发送到应该受到Facebook保护的屏幕(并且由于没有用户登录而有错误).
我该怎么处理?我看到在老sdk或其他什么,它有:
facebook.isSessionValid()
Run Code Online (Sandbox Code Playgroud)
还有办法吗?如果是这样,我该怎样做呢?某种循环,直到他们最终停止尝试退出?有没有办法禁止退出该屏幕?我根本没有生成那个屏幕:facebook确实如此.这只是我必须忍受的错误吗?
编辑:
这样做的必然结果是我刚注意到,如果我使用facebook应用程序注销,facebook sdk并没有在我自己的应用程序中告诉我:它仍然在验证.更糟糕的是,即使在我退出之后它也会这样做,然后使用Facebook应用程序以完全不同的用户身份登录.我该如何处理?
编辑:更多代码
这就是我现在如何登录Facebook(在Activity的onCreate中)并要求让我的图形用户和我的朋友们(先得到我,然后一旦异步完成,得到朋友)
if (Session.getActiveSession() == null || Session.getActiveSession().isClosed()) {
Log.v(CLASS_NAME, "Logging into facebook");
//Session.openActiveSession(this, true, new Session.statusCallback());
final Session.StatusCallback sessionStatusCallback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state,
Exception exception) {
// TODO Auto-generated method stub
if(exception != null)
{
// Handle fail case here.
Log.v(CLASS_NAME, "Facebook login error " + exception);
return;
}
// If …Run Code Online (Sandbox Code Playgroud) 特别:
self.words = (NSMutableArray*)[self.text componentsSeparatedByString:@" "];
Run Code Online (Sandbox Code Playgroud)
只要有分隔符就可以正常工作.我看到该方法返回包含在NSArray中的原始字符串,如果没有的话.这个单元素NSArray固执地拒绝被强制转换为NSMutableArray.
但是,当我这样做时:
self.words = [NSMutableArray arrayWithArray:self.words];
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
这里有什么我想念的吗?从NSArray转换为NSMutableArray是不好的做法吗?
上面说:
\n\n\n\n\nTizen 应用程序中的多媒体播放器有两种选择。
\n\n\xe2\x96\xa0使用HTML5标签。它不支持 DRM 和 DASH、HAS、HLS 和 SmoothStreaming 等流媒体引擎。
\n\n\xe2\x96\xa0使用avplay API或三星电视\n产品API。它支持 DRM 和流媒体引擎,例如 DASH、HAS、\n HLS 和 SmoothStreaming。
\n
这是真的?他们说这是一个私有 SDK,这就是为什么我在网上看不到任何对它的引用吗?我们是否需要私有 sdk 来流式传输 HLS,还是仅用于精美的播放器?
\n我可以肯定地说,我有一个64位的Ubuntu盒子,并且第一次运行AndroidStudio时,模拟器运行得很好。下次我运行它时,模拟器拒绝启动,并说:
无法在模拟器中启动AVD。输出:警告:由于未正确定义$ SHELL,因此无法确定主机位数;假设为32位。错误:已弃用32位Linux Android仿真器二进制文件,要使用它们,您必须至少执行以下操作之一:-调用“仿真器”时使用“ -force-32bit”选项。-在您的环境中将ANDROID_EMULATOR_FORCE_32BIT设置为“ true”。任何一种都将允许您使用32位二进制文件,但是请注意,这些二进制文件将在以后的Android SDK版本中消失。在此之前,请考虑移至64位Linux系统。
如何正确定义$ SHELL使其可以识别我的64位系统?
我正在尝试安装rvm,它希望我编辑我的.bashrc或.bash_profile文件以包含rvm ......但是我无法在任何地方找到这些文件.一个快速的谷歌搜索显示它们可能不存在,直到我做它们(奇怪),但我看不到任何引用我应该做的WHERE.
编辑:好的,它来自其中一个响应,看起来我需要将它们放在我的/ home目录中......我可以使用ls -la来查看它们是否真的存在(它们不是),但是当我制作文件时,放入:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Run Code Online (Sandbox Code Playgroud)
在它们中,按照rvm的指示,即使我制作了一个新的shell,我仍然不能输入"rvm"并且无处可去.
这是否意味着文件位于错误的位置,或者我犯了错误,或者我放入它们的内容是错误的......我甚至不知道从哪里开始......
我通过输入"vi .bashrc"和vi".bash_profile"来制作文件(以root身份)......但是当我查看它们时,这些文件似乎只是命名为"bashrc"和"bash_profile".所以,我做了"mv bashrc .bashrc",这似乎做了诀窍并隐藏了它们......但是......我仍然无法在新的shell中键入"rvm"...
编辑:当我输入
$ HOME/.rvm /脚本/ RVM
我收到了"权限被拒绝"的错误,即使是root也是如此.所以我去了那里,"rvm"文件没有可执行权限,无论出于什么原因......所以我把它设置为可执行文件.所以现在我不再得到那个错误......但我仍然无法运行RVM,即使是在一个新的shell中也是如此.
解:
我完全误解了"你的主目录的根"的意思,并试图将它们放在名为"home"的目录中.INSTEAD,我应该把它们放在$ HOME指向的地方.既然文件在正确的位置(并且.bashrc至少已经存在,所以我只是编辑它),一切都运行完美
所以,我最近升级到1.9.2 Ruby,永远使用1.8.7(我想尝试Rails 3).
我遇到的最大问题是我的SOAP要求语句都没有工作......我有类似的东西:
require 'soap/rpc/driver'
require 'xsd/qname'
require 'soap/wsdlDriver'
require 'ftools'
Run Code Online (Sandbox Code Playgroud)
即使是ftools也无法正常工作,但我认为(看看Ruby源代码)这成了'fileutils'?但我没有看到任何类似的SOAP .....它刚被删除?
如果是这样......我该怎么办?是否有任何插件基本上做同样的事情?
我的代码是这样的:
require 'soap/wsdlDriver'
def send_package
adi_url = "ftp://anonymous:ads123@#{APP_CONFIG['pcms_ip']}/#{self.id}/original/ADI.XML"
cl0 = SOAP::WSDLDriverFactory.new(APP_CONFIG['corba_bridge'])
driver = cl0.create_rpc_driver
driver.streamhandler.client.receive_timeout = 10
x = driver.exportPackage2(self.name+self.id.to_s, adi_url, "NS2.PackageFactory")
log x
if x.to_s =~ /ERROR/
raise x.to_s
end
end
Run Code Online (Sandbox Code Playgroud)
和
require 'soap/rpc/driver'
require 'xsd/qname'
def get_self_offering_ids(wsdl, namespace)
ret = []
input = {"#{namespace}:includeAssetMetadata" => 'true'}
begin
driver = SOAP::RPC::Driver.new(wsdl, namespace)
driver.add_document_method('GetAllOfferingsRequest', "OpenStreamVOD#getAllOfferings", XSD::QName.new(namespace, "GetAllOfferingsRequest"), XSD::QName.new(namespace, "GetAllOfferingsResponse"))
result = driver.GetAllOfferingsRequest(input)
rescue => err …Run Code Online (Sandbox Code Playgroud) ruby ×3
android ×2
objective-c ×2
rvm ×2
bash ×1
cocoa ×1
cocoa-touch ×1
facebook ×1
filter ×1
ios ×1
iphone ×1
jruby ×1
nsarray ×1
opensuse ×1
ruby-1.9.2 ×1
soap ×1
sqlite3-ruby ×1
tizen ×1
wildcard ×1