小编mwi*_*ams的帖子

从我的胰岛素泵控制器反向设计统计数据文件

这可能是也可能不是灰色地区的主题,虽然我的意图当然不是,所以我的意图不是激起关于逆向工程主题的道德辩论.

我是目前正在接受泵疗法的1型糖尿病患者.我是OmniPod用户,它是一个一次性的豆荚,粘在我的身体上并分配胰岛素3天.它由个人糖尿病管理员[PDM](见下文)控制,该管理员控制在用餐期间分配多少胰岛素,血糖读数,并且它包含用于计算碳水化合物的食物指数.

替代文字http://www.myomnipod.com/images/pdm-200.jpg

新PDM具有用于下载数据的USB端口.该软件对Windows用户是免费的(一个名为CoPilot的软件包),但没有Mac支持.

将PDM插入我的Mac后,它就像任何其他USB设备一样安装,并向我提供一个可读卷,上面有一个带有IBF扩展名的单个文件.它的重量为16KB.

我的第一直觉是通过文本编辑器传递它,并呈现了一个非常二进制的文件.然后我通过字符串传递它(见下文)并用十六进制编辑器打开它.虽然除了下面的字符串之外我无法获得太多信息; 没有压缩格式的细节或任何东西

$ strings omnipoddata.ibf 
Insulet
OmniPod
basal 1
Post-meal
e-meal
Pre-meal
e-bedtime
Pre-bedtime
.(@P
.(@P
.(@P
Run Code Online (Sandbox Code Playgroud)

在这个过程中我的下一步应该是什么?我是一个动态的语言人,因此Ruby的任何资源都很棒,或者Python.是否有任何测试驱动的逆向工程流程?

至于我想要获得的数据,我想绘制的信息可以获得更多关于我的进展的信息(胰岛素摄入量,血糖读数,时间戳); 所有这些都可以在Windows软件包中使用.

ruby reverse-engineering binary-data

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

使用Prototype遍历特定的子元素

鉴于以下标记.

<div id="example">
  <div>
    <div>
      <input type='hidden'></input>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我拥有ID为'example'的最顶部div元素的ID,我如何快速获取隐藏的输入元素?

我可以破解它,所以我可以遍历每个子元素直到我点击输入,但是,我想改进它并利用Prototype并简单地跳转到给定div的隐藏输入.

谢谢!

javascript prototypejs

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

覆盖CSS样式

在我们所有页面中使用的全局样式表中,包含以下行:

ul { margin: 0; }
li { list-style-type: none; padding-bottom: 3px; }
Run Code Online (Sandbox Code Playgroud)

因此,我的页面中的任何ul都会在li旁边没有光盘的情况下呈现.

但是,在特殊情况下,我需要在li旁边显示光盘.

我有一个与"博客帖子"类的div,虽然以下会为我做的伎俩.

.blog_body ul { list-style-type: disc; }
.blog_body ol { list-style-type: decimal; }
Run Code Online (Sandbox Code Playgroud)

然而,这不是诀窍.

所以使用以下HTML代码片段

<ul>
  <li>Testing</li>
</ul>
<ol>
  <li>Testing</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

结果:

Testing
1. Testing
Run Code Online (Sandbox Code Playgroud)

仍然没有光盘嵌入ul中.关于如何让他们在那里的想法?我的CSS-fu很弱......

css xhtml overriding stylesheet

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

需要帮助改进Ruby DSL以控制Arduino控制饮料机(棒猴)

我正在用Ruby写一个DSL来控制我正在研究的Arduino项目; Bardino.这是一只酒吧猴子,可以通过软件控制饮料.Arduino通过串口接收命令告诉Arduino打开什么泵以及打开多长时间.

它目前读取配方(见下文)并将其打印出来.串行通信的代码仍然需要处理以及我在下面提到的其他一些想法.

这是我的第一个DSL,我正在使用前一个例子,所以它的边缘非常粗糙.任何批评,代码改进(有没有对Ruby DSL最佳实践或成语的任何好的参考?)或任何一般性评论.

我目前有一个草案的粗略草案,所以饮料配方看起来如下(Github链接):

desc "Simple glass of water"
recipe "water" do
  ingredients(
  "Water" => 2.ounces
  )
end
Run Code Online (Sandbox Code Playgroud)

这反过来被解释,目前结果如下(Github链接):

[mwilliams@Danzig barduino-tender]$ ruby barduino-tender.rb examples/water.rb
Preparing: Simple glass of water

Ingredients:
 Water: 2 ounces
Run Code Online (Sandbox Code Playgroud)

这是DSL的一个良好开端,但是,我认为它可以更好地实现.我在下面提出的一些想法:

  1. 使用配料名称和连接的数字泵定义可用的"成分".也许使用哈希?成分= {"水"=> 1,"伏特加"=> 2}.这样,当一种成分被解释时,它可以a)通过串口发送泵号,然后是Arduino分配的盎司数b)告诉用户该成分不存在并中止所以没有分配c)如果它们发生变化,很容易有能力改变或添加新成分.
  2. 使配方看起来更像代码,这是DSL的主要目的,可能会构建一个配方构建器?使用可用的成分提示用户饮用名称,成分涉及多少?

Github项目在这里,随意分叉并提出拉取请求,或在此发布您的代码建议和示例供其他用户查看.如果你有点好奇,使用Ruby Arduino开发框架的Arduino代码就在这里.

更新

我修改并清理了一些东西以反映Orion Edwards对食谱的建议.它现在看起来如下.

description 'Screwdriver' do 
  serve_in 'Highball Glass'
  ingredients do
    2.ounces :vodka
    5.ounces :orange_juice
  end
end
Run Code Online (Sandbox Code Playgroud)

我还添加了一个哈希(键是成分和它连接的泵号的值).我认为这提供了很多进展.我现在将问题留给任何进一步的建议,但最终将选择猎户座的答案.更新的DSL代码在这里.

ruby dsl language-design arduino

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

强制 IFrame 中的任何 HREF 使用其父级作为目标

我目前正在使用 IFrame 将用户生成的内容放在沙箱中。这消除了我们主样式表的任何样式问题。

但是,当用户使用我们的富文本编辑器生成链接时,我们希望该链接在父级中打开,而不仅仅是在 IFrame 中打开该链接。我知道您可以将目标设置为父级,但我们无法控制用户以及他们在内容中输入的内容。

有没有办法劫持 IFrame 内的 HREF,以便它们都以父级为目标而不修改它们?或者使用一些可以普遍注入的 Javascript,这样我就不需要抓取所有内容并以编程方式替换目标?

理想情况下,一个简单的脚本将是最好的解决方案。

想法?

最终解决方案

我使用了我选择的答案的变体......它让我朝着正确的方向前进。

<script>
  Event.observe(window, 'load', function() {
    $$('a').each(function(e) {
      e.writeAttribute('target', '_parent');
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

它位于包含内容的 IFrame 内。它最终成为该任务最简单的解决方案。

javascript iframe jquery href target

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

Git - 将克隆的变化拉回到主服务器上

我克隆了一个Git master并对克隆做了很多改动.我已经在克隆上进行了这些更改,现在希望主人成为克隆上的内容的副本.

我已经尝试使用Git推送克隆来将更改推送到主服务器 - 但我没有更新主服务器.

如何让master成为克隆上的内容的精确副本?更新克隆并与克隆主同步的命令工作流程是什么?

git version-control

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

对包含时间或距离的字符串进行排序

我已经为自定义字符串实现了排序算法,该字符串表示田径事件的时间或距离数据.以下是格式

'10:03.00 - 10分3秒或10英尺3英寸

排序的结果是,对于场事件,最长的投掷或跳跃将是第一个元素,而对于运行事件,最快的时间将是第一个.以下是我目前用于现场活动的代码.我没有发布,running_event_sort因为它与大于/小于交换的逻辑相同.虽然它有效,但它看起来过于复杂,需要重构.我愿意接受建议.任何帮助都会很棒.

event_participants.sort!{ |a, b| Participant.field_event_sort(a, b) }

class Participant
def self.field_event_sort(a, b)
  a_parts = a.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/)
  b_parts = b.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/)

  if(a_parts.empty? || b_parts.empty?)
    0
  elsif a_parts[0][0] == b_parts[0][0]
    if a_parts[0][1] == b_parts[0][1]
      if a_parts[0][2] > b_parts[0][2]
        -1
      elsif a_parts[0][2] < b_parts[0][2]
        1
      else
        0
      end
    elsif a_parts[0][1] > b_parts[0][1]
      -1
    else
      1
    end  
  elsif a_parts[0][0] > b_parts[0][0] 
    -1
  else
    1
  end
end
end
Run Code Online (Sandbox Code Playgroud)

ruby sorting algorithm refactoring

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

使用will_paginate而不使用:total_entries可以改善冗长的查询

我有一个当前的will_paginate实现,它使用paginate_by_sql方法来构建要分页的集合.我们有一个针对total_entries的自定义查询,这个查询非常复杂并且会给我们的数据库带来很大的负担.因此,我们希望完全从分页中删除total_entries.

换句话说,我们只是喜欢"下一个 - 上一个"按钮,而不是"前一个[2] 3 4 5下一个"的典型分页显示.但我们需要了解一些事情.

  1. 我们是否显示上一个链接?只有当记录存在于当前选择中显示的记录之前时,才会发生这种情况
  2. 我们是否显示下一个链接?如果正在显示集合中的最后一条记录,则不会显示此信息

来自文档

如果您不提供:total_entries,则会自动生成对行计数的查询.如果您遇到此生成的SQL的问题,您可能希望在应用程序中手动执行计数.

所以最终理想情况如下.

  • 删除total_entries计数,因为它会导致数据库负载过大
  • 使用半分页显示50个记录,仅使用下一个/上一个按钮进行导航,而不需要显示所有可用的页码
  • 仅相应显示下一个按钮和上一个按钮

有没有人处理类似的问题或对决议有什么想法?

ruby pagination ruby-on-rails will-paginate

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

最简单的方法来管理我的CLASSPATH?

我开始玩Clojure了,我的Java经验非常有限.我来自Ruby和OO的动态世界,因此功能方面非常有趣!

无论如何,当我发现库和各种使用工具(以及Pragmatic Clojure Book的教程文件)时,所有内容通常都要求将文件放在CLASSPATH中,以便Clojure可以查看库以供使用.

有没有好的CLASSPATH练习?我是否只想要一个只有我需要的外部文件库的CLASSPATH,或者我可以继续在目录中抛出我需要的任何库或文件,只需将其定义为我的CLASSPATH并且只需要所需的东西?

如果它有帮助,我是OSX和Emacs用户(使用slime和swank-clojure).

java configuration clojure classpath

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

使用整数范围填充选择器视图的最有效方法?

我在iOS应用程序(iPhone)中有一个简单的UI选择器视图,我希望在启动时预先填充一系列数字.什么是最实用/最快/最优化的填充方式?我是iOS开发的新手,所以我刚开始测试水域.文档相当不错,但我想从经验丰富的开发人员那里获得一些有关实现我正在做的最有效方法的见解?

TL;博士

我希望在应用程序启动时填充一个数字范围为45-550的UI选择器视图,这样做的最佳方法是什么?

iphone objective-c range uipickerview ios

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