小编Jos*_*ach的帖子

Git checkout不会改变任何东西

我真的很喜欢git.至少,我喜欢git的想法.能够将我的主项目结账为一个单独的分支,在那里我可以改变我想要的任何东西,而不用担心其他一切都搞砸了,这真是太棒了.但它不起作用.

基本上,我的工作流程是这样的:

  1. Checkout稳定版本到新分支以试验新代码
  2. 做一堆改变 - 我无意保留任何这些,我只是在试验.
  3. 看看我改变的所有东西
  4. 添加要跟踪的所有更改
  5. 提交分支并将分支推送到原点(如果有效,否则跳过此步骤)
  6. 决定尝试另一种方法,回到主人
  7. 观察我工作的实验分支中的工件,即使我在主分支中.

每次我将分支签出到另一个分支,对一个分支进行更改,然后签出原始分支,我仍然拥有在另一个分支中发生的所有文件和更改.这非常令人沮丧.我已经读过,当你在IDE中打开文件的时候会发生这种情况,但是我一直非常小心这一点,并关闭了IDE中的文件,关闭了IDE,并在切换之前关闭了我的rails服务器分支,这仍然发生.此外,运行'git clean -f'要么删除在任意提交之后发生的所有事情(并随机地,在那时),或者,如在最新的情况下,不会将任何内容更改回其原始状态.

我以为我正确使用git,但此时此刻,我的智慧已经结束了.我正在尝试使用我的项目的稳定版本来处理一堆实验代码,但我不得不手动追踪并修复我所做的所有更改.任何想法或建议?

git checkout -b photo_tagging
git branch # to make sure it's right
# make a bunch of changes, creations, etc
git status # see what's changed since before
git add . # approve of the changes, I guess, since if I do git commit after this, it says no changes
git commit -m 'these are changes I made'

git checkout master
git branch #=> *master …
Run Code Online (Sandbox Code Playgroud)

git git-checkout git-branch

41
推荐指数
3
解决办法
5万
查看次数

访问AttributeSet中的attrs以获取自定义组件

我有一个包含两个TextView的自定义组件,它们具有自定义大小设置方法(两个文本视图的比例约为1:2).由于这是RelativeLayout的子类,它没有textSize属性,但我想知道是否仍然可以android:textSize在该组件的XML实例化中设置该属性,然后textSize从AttributeSet中获取属性以使用setSize()在构造函数中使用我的自定义方法.

我已经看到了使用自定义属性执行此操作的技术,但是如果我想获取已经在android词典中的属性怎么办?

java android textview android-relativelayout

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

Ruby信号量?

我正在研究Ruby中"Fair Barbershop"问题的实现.这是一个课堂作业,但我不是在寻找任何讲义.我一直在寻找疯狂,但我似乎无法找到一个反映在C中找到的信号量的Ruby实现.

我知道有Mutex,这很棒.单一实现,确实完成了那种信号量应该做的事情.

那就是条件变量.我认为这样做会很好,但是看看这些,他们需要一个Mutex用于每次等待调用,这对我来说就像我不能将数值放到信号量上(因为我有七个理发店,3理发师等).

我想我需要一个Counting Semaphore,但我认为Ruby(我能找到的)在其核心中包含这样一个类有点奇怪.谁能帮助我指出正确的方向?

ruby mutex semaphore

15
推荐指数
1
解决办法
6304
查看次数

RelativeLayout:将视图与兄弟视图组的子视图对齐

我正在尝试使用RelativeLayout和一个RadioGroup创建一个标签栏,该组有一个指示器,该指示器将滑动以指示RadioGroup中的活动RadioButton.

这些是定制的单选按钮,它们是有效的矩形,文本上有一个图标,所有内容都居中,它使用自定义状态选择器作为背景.

这是我目前的等级制度:

<RelativeLayout>       // Main view of the tab bar
  <RadioGroup>         // The buttons
    <RadioButton />
    <RadioButton />
    <RadioButton />
  </RadioGroup>
  <ImageView />        // The indicator
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我的想法是单击一个单选按钮时,我会将指示器对齐到所选单选按钮的顶部和底部(并为其设置动画).但是,它似乎layout_align<Edge>只适用于兄弟元素,而不适用于另一个视图组的成员,即我可以与RadioGroup本身对齐,但不能与其中的RadioButton对齐.

我想把指标作为RadioGroup的成员,但由于RadioGroup是LinearLayout的扩展,似乎没有办法将它放在给定RadioButton的边缘.

谁能想到我怎么解决这个问题?或者也许比我的animate-align-to-button技术有更好的解决方案?

更新 使用@superjos帮助,我设法很好地解决了这个问题.

我必须给每个按钮一个已知的高度而不是使用wrap_content(不理想,但对于这个项目,它可能应该工作正常).使指示器高度与按钮的高度相匹配.确保将RadioGroup设置为包装内容并在父视图中垂直居中.将指标设置为alignToptoRightOfRadioGroup.然后,对于按钮单击侦听器:

int prevY, newY;
int prevButtonIndex, newButtonIndex;

public void moveIndicator(button, indicator, index) {
  prevY = newY;
  newY = prevY + (index - prevButtonIndex) * button.getHeight();
  TranslateAnimation animation = new TranslateAnimation(0, 0, prevY, newY);
  animation.setDuration(500);
  animation.setFillAfter(true); // stay at final …
Run Code Online (Sandbox Code Playgroud)

android tabbar relativelayout viewgroup

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

使用对象值的Paperclip路径/ url

我一直在玩Paperclip来建立一个照片库/商店.图库有很多照片,照片属于图库,用户可以有很多图库.回形针默认值类似于/:class/:style/:basename.:extension.但是,通过图库设置,我更喜欢像/:class/:user_name/:gallery_name/:styles/:basename.:extension.我还没有找到一种方法来访问对象中的变量,以便动态创建这些存储位置.

有没有办法做到这一点?

我尝试在路径中使用#{variable},但这不起作用.这些照片对象是使用@ gallery.photos.build创建的,因此gallery_id应该已经具有可访问的值.

ruby-on-rails path nested-class paperclip photo-gallery

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

如何直接从ZipEntry(RubyZip,Paperclip,Rails 3)获取临时File对象(正确的内容类型,而不写入磁盘)?

我正在尝试直接从zip文件将图像文件附加到模型(即,不先将它们保存在磁盘上).似乎应该有一种更清晰的方法将ZipEntry转换为Tempfile或File,它可以存储在内存中,以传递给另一个知道如何处理它的方法或对象.

这是我的代码:

def extract (file = nil)
  Zip::ZipFile.open(file) { |zip_file|
    zip_file.each { |image|
      photo = self.photos.build
      # photo.image = image # this doesn't work
      # photo.image = File.open image # also doesn't work
      # photo.image = File.new image.filename
      photo.save
    }
  }
end
Run Code Online (Sandbox Code Playgroud)

但问题是photo.image是一个附件(通过回形针)到模型,并指定一些东西作为附件需要一些东西作为File对象.但是,我不能为我的生活弄清楚如何将ZipEntry转换为文件.我看到打开或创建文件的唯一方法是在其路径中使用字符串 - 这意味着我必须将文件解压缩到一个位置.真的,这看起来很傻.为什么我不能将ZipEntry文件解压缩到输出流并将其转换为文件?

所以最终的问题是:我可以从Zip文件中提取ZipEntry并将其直接转换为File对象(或直接将其作为Paperclip对象附加)吗?或者在我可以附加它之前,我实际上是将它存放在硬盘驱动器上,即使该版本最终会被删除?

更新 感谢蓝莓领域,我认为我更接近我的解决方案.这是我添加的代码行,它为我提供了我需要的Tempfile/File:

photo.image = zip_file.get_output_stream image
Run Code Online (Sandbox Code Playgroud)

但是,我的Photo对象不会接受传递的文件,因为它不是image/jpeg.实际上,检查content_type文件显示application/x-empty.我想这可能是因为获取输出流似乎在文件的末尾添加了一个时间戳,因此最终看起来像imagename.jpg20110203-20203-hukq0n. 编辑:此外,它创建的临时文件不包含任何数据,大小为0.所以看起来这可能不是答案.

那么,接下来的问题:有没有人知道如何让它给我一个image/jpeg文件?

更新:

我一直在玩这个.似乎输出流不是要走的路,而是输入流(这总是让我很困惑).在ZipEntry上使用get_input_stream,我在文件中获取二进制数据.我想现在我只需要弄清楚如何将它变成Paperclip附件(作为File对象).我已经尝试将ZipInputStream直接推送到附件,但当然,这不起作用.我真的很难相信没有人试图将提取的ZipEntry转换为文件.有什么理由认为这会被认为是糟糕的编程习惯吗?在我看来,跳过临时文件的磁盘写入是完全可以接受的,并支持Zip档案管理.

无论如何,问题仍然存在:

有没有办法将输入流转换为File对象(或Tempfile)?最好不必写入磁盘.

inputstream file rubyzip paperclip ruby-on-rails-3

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

最佳实践(jQuery,CSS):如何初始化将切换可见的隐藏元素?

Stack警告我这是一个主观问题,可能会很接近,但无论如何我都会尝试这个.

我有一组控制按钮附加到图库中的图片.这些最初是隐藏的,当鼠标悬停在图像上时切换可见.我的问题是:

这些按钮是应该设置为隐藏在样式表中还是保持可见,并在加载时被jQuery隐藏?我想要优雅的降级,所以如果我希望这些在未启用javascript时可见,那么在CSS中初始化这个似乎是一个坏主意.

最重要的是,我正在使用Ajax加载这些图像的页面.如果我使用jQuery hide执行此操作,它不会影响从ajax请求加载的那些,因为它只会触发$(document).ready().我尝试过使用live('ready'),但了解到该事件不受支持live().

那么这样的事情最好的做法是什么?看起来这样做有很多优点和缺点(css与document.ready),如果它们被默认的CSS隐藏,按钮将使用ajax分页进行精确切换.但是如果没有启用javascript,按钮的功能将会丢失.有没有人有这方面的建议?

注意:我最初没有提到它,但它很重要.我目前正在fadeToggle()用来完成我的过渡,这可能是整个问题的复杂化.到目前为止,所有解决方案似乎都有效,但在引入衰落时并非如此.

css jquery fade

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

从XIB加载UITabBarController不包含XIB中的任何内容

我正在开发一个基于TabBarController的应用程序开始的项目,但仍然主要是,但是一些要求已经改变,我们需要将初始视图控制器作为应用程序其余部分的入口点 - 一个在给出认证并加载一些东西后,将在主窗口中由标签栏控制器替换.

最初的UITabBarController是MainWindow.xib的一个组件,它的所有根导航控制器都设置了根视图控制器,一切都很顺利.我想我可以简单地从MainWindow.xib中提取UITabBarController组件,将它放在自己的CustomTabBarController.xib中,然后运行

[self setTabBarController:[[[UITabBarController alloc] initWithNibName:@"CustomTabBarController" bundle:nil] autorelease]];
[_tabBarController setDelegate:self];
[self.window addSubview:_tabBarController.view];
Run Code Online (Sandbox Code Playgroud)

但是,我没有获得预期的预制标签栏控制器,而是获得了一个完全空的标签栏控制器.

我错过了什么吗?为什么我不能从笔尖加载预先构建的UITabBarController?

cocoa-touch interface-builder uitabbarcontroller ios

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

自定义RatingBar样式只显示一个点,其他奇怪的行为

我设置了以下代码以RatingBar在Android上创建自定义样式:

res/values/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:minHeight">@dimen/rating_bar_height</item>
        <item name="android:maxHeight">@dimen/rating_bar_height</item>
        <item name="android:progressDrawable">@drawable/circle_ratingbar_full</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

res/drawable/circle_ratingbar_full.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@android:id/background"
        android:drawable="@drawable/circle_ratingbar_full_empty" />
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/circle_ratingbar_full_empty" />
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/circle_ratingbar_full_filled" />
</layer-list>
Run Code Online (Sandbox Code Playgroud)

res/drawable/circle_ratingbar_full_empty.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
          android:state_window_focused="true"
          android:drawable="@drawable/button_disabled" />

    <item android:state_focused="true"
          android:state_window_focused="true"
          android:drawable="@drawable/button_disabled" />

    <item android:state_selected="true"
          android:state_window_focused="true"
          android:drawable="@drawable/button_enabled" />

    <item android:drawable="@drawable/button_disabled" />

</selector>
Run Code Online (Sandbox Code Playgroud)

res/drawable/circle_ratingbar_full_filled.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
          android:state_window_focused="true" …
Run Code Online (Sandbox Code Playgroud)

android android-layout ratingbar android-drawable android-styles

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

jQuery .toggle(showOrHide):实现问题

我有一个按钮来切换引用的div是否可见.最初,我使用的是代码:

$('#search-options-btn').click(function() {
    if ($('#search-options').is('.hidden')) {
        $('#search-options').removeClass('hidden');
    } else {
        $('#search-options').addClass('hidden');
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,为了找到更干净的代码,我遇到了jQuery toggle()方法,根据API有一个方法实现

.toggle( showOrHide )    
showOrHide: A Boolean indicating whether to show or hide the elements.
Run Code Online (Sandbox Code Playgroud)

这个描述让我相信这是一个通过传递...标识符来显示或隐藏的快捷实现方法?showOrHide进入toggle()方法.

尝试这个:

$('#search-options-btn').click(function() {
    $('#search-options').toggle(showOrHide);
});
Run Code Online (Sandbox Code Playgroud)

在我的firebug控制台中产生错误:

showOrHide is not defined
[Break On This Error] $('#search-options').toggle(showOrHide); 
Run Code Online (Sandbox Code Playgroud)

我也试过定义showOrHide为初始化的布尔值false; 错误消失了,但问题并没有解决.

根据jQuery在线API,这应该相当于

if ( showOrHide == true ) {
  $('#foo').show();
} else if ( showOrHide == false ) {
  $('#foo').hide();
}
Run Code Online (Sandbox Code Playgroud)

除非我完全不知道它是如何工作的.任何人都可以填写我在这里做错的事吗?我找不到类似的实现.

jquery show-hide

0
推荐指数
1
解决办法
7991
查看次数