小编max*_*max的帖子

如何扫描/到Web应用程序

我已经思考如何处理纸质文档输入的webapps一段时间.主要问题是如何统一元数据和扫描的PDF.为了这个例子,我将提出一个假设的费用索赔申请.到目前为止我考虑过的方法:

  • Web 1.0的,打开网页,创建一个费用报销和输入数据,切换到扫描应用程序,扫描到文件,切换到浏览器,点击"选择文件"导航到扫描的文件上传.优点:简单的代码.缺点:可怕的工作流程,每个工作站需要一个扫描仪(和驱动器和磁盘空间等/可能不会与瘦客户机工作:思杰/ iPad的)
  • 条形码样式打开网页,创建费用索赔并输入数据,保存,打印条形码标签,将条形码粘贴到纸上.在一天结束时扫描所有条形码纸.批量上传并根据条形码将其分配给费用索赔.(在扫描中OCRing条形码是一个已解决的问题,例如参见exactCODE)优点:体面的工作流程,每个部门一个扫描仪就足够了.缺点:每个工作站都需要条形码标签打印机(比扫描仪更容易但不便宜),扫描后的纸张只能在几个小时后才能使用
  • Web 2.0样式使用本地扫描仪扫描到[Dropbox]文件夹.Web应用程序使用的Dropbox API来检测新的扫描,它们呈现给用户,让他们进入元数据.优点:漂亮的工作流程.缺点:每个人都需要一个扫描仪,不能的webapp只是弹出,并说"有可用的新的扫描".
  • 批处理样式有人扫描由必须处理它们的人(或按文档类型:费用索赔,发票,订单)分隔它们的所有文档.文档被批量上载(例如,作为ZIP)到队列中的Web服务器.现在,一个人必须完成此队列并输入所需的元数据.优点:只需要维护一台扫描仪.缺点:工作人员不再有纸,只有在线版本.这被我的同事们视为一个重要的节目.
  • 条形码批处理条形码标记所有传入文档,在单个文件夹中扫描它们并将它们批量上载到存储库,然后将旧纸张分发到不同的部门.处理费用索赔的人员也会从纸张输入条形码编号.Webapp联系存储库并根据条形码编号检索扫描的文档,并将其与元数据一起保存.PPros:代码简单,缺点:很多纸张仍在四处闲逛,文件可能会扫描,可能永远不会进入数字存储库 - 例如医疗记录
  • 桌面应用程序编写基于TWAIN的小型桌面应用程序,该应用程序扫描,上传到Web应用程序并打开浏览器窗口以添加元数据.优点:良好的工作流程,缺点:每个桌面一台扫描仪,而不是Webapp /平台问题

有关上述方法之一的更好解决方案或评论的任何建议吗?

ocr web-applications barcode archiving image-scanner

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

为ndb.tasklets键入注释

GvRs App Engine的NDB库以及单片和-我的理解-现代JavaScript中使用发电机,使异步代码看起来象堵代码.

东西装饰着@ndb.tasklet.他们yield时,他们希望回馈执行到runloop而当他们有他们的结果准备好,他们raise StopIteration(value)(或别名ndb.Return):

@ndb.tasklet
def get_google_async():
    context = ndb.get_context()
    result = yield context.urlfetch("http://www.google.com/")
    if result.status_code == 200:
        raise ndb.Return(result.content)
    raise RuntimeError
Run Code Online (Sandbox Code Playgroud)

要使用这样的函数,您将获得一个ndb.Future对象并在其get_result()上调用get 函数以等待结果并获取它.例如:

def get_google():
    future = get_google_async()
    # do something else in real code here
    return future.get_result()
Run Code Online (Sandbox Code Playgroud)

一切都很好.但是如何添加类型注释?正确的类型是:

  • get_google_async() - > ndb.Future(通过yield)
  • ndb.tasklet(get_google_async) - > ndb.Future
  • ndb.tasklet(get_google_async).get_result() - > str

到目前为止,我只使用cast了异步功能.

def get_google():
    # type: () -> str
    future …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine mypy

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

如何确保mnesia的快速启动时间

带有mnesia/dets的Erlang因崩溃后启动时间慢而闻名.基本上与旧文件系统上的fsck相同.

但是在常规关机后我也经历了很慢的启动时间:在一台强劲的机器上,大约8分钟的250 MB磁盘数据.

因此,除了输入"q()"之外,我还必须在关机时做一些特别的事情.有没有办法加快启动时间?

erlang mnesia

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

如何编码大量(在URL中)?

通常,人们必须在URL中编码大(例如128或160位)数字.例如,许多Web应用程序对UUID使用md5(random()).

如果您需要将该值放在URL中,常见的方法是将其编码为十六进制字符串.

但显然十六进制编码不是一个非常严格的编码.还有哪些其他方法可以很好地适应URL?

url encoding http

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