小编tyl*_*erl的帖子

通用mod_rewrite引用者检查

我正在寻找一个通用的(独立于主机的)mod_rewrite规则集,用于对资源进行HTTP_REFERER检查.我提出了以下似乎很直观的内容,但遗憾的是它不起作用:

RewriteCond %{HTTP_REFERER} !^https?://%{HTTP_HOST}/.*
# RewriteRule .* - [F]  # <- or whatever
Run Code Online (Sandbox Code Playgroud)

显然你不能在比较的两边都有变量.所以,一个黑客:

RewriteCond %{HTTP_HOST}##%{HTTP_REFERER} !^([^#]*)##https?://\1/.*
Run Code Online (Sandbox Code Playgroud)

但哇,这很难看 - 如果你不确切知道发生了什么,那就非常混乱了.

是否有更好(更清洁)的方式来编写这些规则?

apache .htaccess mod-rewrite

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

基于LLVM的编译器的语言

我正在考虑使用玩具语言进行初步测试和实验,并构建基于LLVM的编译器以获得一些可基准的结果.

我意识到C++是LLVM的"本机"和最佳支持的语言,但我真的不想使用C或C++.所以我正在寻找一种更高级的语言,它对使用LLVM API有稳定和既定的支持.

我最初使用Python LLVM库的工作有点令人失望,因为该项目似乎已被放弃,尽管我听到有关PyPy将LLVM支持集成到其框架中的有希望的新闻,但我想知道人们在下沉之前的体验是什么很多时间进入任何给定的路线.

所以我的问题是,你们中有没有人使用更高级别的语言和/或框架与LLVM合作?如果是这样,哪个?或者你会说要避免吗?

compiler-construction llvm

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

新项目的C与C++之间的比较优势

对于我在POSIX系统上编写的每个新的低级程序或库,我总是要从最初的决定开始:我是用vanilla C编写的,还是使用C++?我想每次我做出一个相对明智的决定,但我想知道是否有一些我缺少的东西.

这不是一个更好的问题,而是每个方面哪个方面更好?据推测,每个人都有引人注目的优势.在哪种情况下我应该选择一个而不是另一个?

例如,下面是我考虑的一些观点.我还缺少什么?

偏爱C

  • 兼容性:实际上,每种语言和框架都有一些与C语言编写接口的机制.
  • 简单:调试模板代码可以让您更快地老化
  • 受欢迎程度:想想所有您喜欢的应用程序,服务器,解释器和其他工具.它们中的大多数都是用C语言编写的,尽管C++在它们启动时可用.所有酷孩子都使用C.

偏爱C++

  • STL:你当然可以实现自己的RB树,快速排序算法或双链表.但它可能不会那么好.
  • 模板:当然,它是一种伪装成语言功能的预处理器功能,但它确实很方便.
  • :C++并不完全是小问题,但至少它不是花哨的汇编语言.
  • 兼容性:您仍然可以在C++项目中使用C.

c c++ linux comparison

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

档案文件系统或格式

我正在寻找一种文件类型来存储已被淘汰的系统档案.目前,我们主要使用tar.gz,但是从200GB tar.gz存档中查找和提取几个文件是不实用的,因为tar.gz不支持任何类型的随机访问读取条款.(在你了解之前,使用FUSE安装tgz并不能让它变得更好.)

这是我们到目前为止所发现的 - 我想知道还有其他选择:

  • tar.gz - 糟糕的随机访问读取
  • zip - 缺乏对某些高级文件系统功能的支持(例如:硬链接,xattrs)
  • squashfs - 创建一个大型存档(很多小时)和糟糕的用户空间工具需要很长时间.

我正在尝试一种简单的方法来创建一个功能齐全的文件系统映像到尽可能小的空间 - 一个cloop图像中的ext2,但它似乎不是一个特别用户友好的解决方案.

大概这个问题以前已经解决了 - 有没有我错过的选择?

linux compression filesystems archive

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

哪个CMS作为自定义Web应用程序的基础

我正在为客户(在这种情况下是一个专门的拍卖网站)构建自定义Web应用程序,我们正在评估使用一些现有的CMS作为应用程序的"支架".

理由是,对于许多自定义Web应用程序项目,编写的代码中约有70%用于添加CMS功能,用户管理和基本管理CRUD.据推测,如果我们从现有的CMS开始,那么已经构建了那些组件.

我们决定坚持使用PHP来解决分发和部署问题.我们评估的顶级CMS是Wordpress,Drupal和Joomla.这是我们迄今为止的分析(按顺序列出):

Wordpress
优点:简单的设计.非常受欢迎和理解.最近非常稳固的安全历史.
缺点:也许有点过于简单 - 可以使它起作用吗?

Drupal
专业人士:对自定义应用程序开发可能更友好.体面的安全历史.
缺点:更复杂,更难理解.

Joomla
职业选手:受欢迎且易于理解.
缺点:一些安全问题

我们遇到的最大问题之一就是,我们希望从SO社区获得的是了解这些可以轻松定制成为自定义应用程序.举个例子,当客户进入他的管理区域时,他会不会觉得这是"带有内置wordpress CMS的拍卖网站",还是会成为"带有拍卖插件的wordpress网站"?我们希望前者而不是后者.但它可以做到吗?

或者我们可能正朝着错误的方向前进?我们应该寻找像CakePHP这样的东西吗?(请注意,由于分发和部署原因,像RoR和Django这样的选项是非常规的.)

以下是一些相关(但不完全相同)的问题,这些问题包含一些有用的信息:
使用CMS为自定义应用程序设计Web应用程序
CMS

php wordpress joomla drupal web-applications

4
推荐指数
2
解决办法
5744
查看次数

索引数组

我发现自己经常在Python中使用平面列表制作索引列表.这是一项非常常见的任务,我想知道是否有一个标准实用程序,我应该使用它.

上下文是这样的:给定一个数组,我需要使用一些键进行分组来创建一个较小数组的dict.

例如:
["Andy","Alice","Bob","Beth","Charlie"]成为
{"A":["Andy","Alice"],"B":["Bob","Beth"],"C":["Charlie"]}

我的解决方案如下所示:

def make_index(data,key,value=lambda x:x):
    d={}
    for item in data:
        k = key(item)
        v = value(item)
        try: d[k].append(v)
        except KeyError: d[k]=[v]
    return d
Run Code Online (Sandbox Code Playgroud)

这很简单,但是我是否正在重新发明在其他地方更好地实施的东西?

python

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

CSS涵盖现有元素

我正在使用jQuery创建一个完全覆盖任何现有元素的元素.这至少就是这个意图.

上下文与此处的内容类似:
列表分离:使压缩表单更易于访问

这个想法是你有一个元素,比如a <input>,在某些条件下你会显示另一个元素(在这种情况下为a <label>)绝对位于它上面作为提示.虽然一般原则在其他场景中也很有用.

有几个现有的库可以做这种事情,但它们似乎都沿着相同的路线分解.

天真的方法:

  • display:block和创建封面元素position:absolute.
  • 设置封面元素的lefttop,以匹配您的封面元素

问题:只要页面布局发生变化,封面的位置就不再匹配,例如隐藏段落或调整显示大小.

稍微改进的方法:

  • display:block和创建封面元素position:absolute
  • 在DOM中的覆盖元素之前添加封面元素
  • 将盖子的底部和右边缘设置为盖子的负高度和宽度

这种方法解决了流体布局的问题,但是它增加了一个问题,即如果被覆盖的元素在inline块内,则封面将在它出现时创建一个换行符(因为插入了一个块元素).

据推测,这是一个已经被某人解决过的问题.

html css jquery layout

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

python导入忽略本地包

请注意,这样做不是一个好主意.它容易混淆,容易出错,而且通常完全没必要.

但是为了争论,假设你有一个与全局包同名的本地包:

module/
   __init__.py
   os.py
   thisfile.py
Run Code Online (Sandbox Code Playgroud)

在里面thisfile.py,您可以使用以下方法之一明确指定要导入本地版本os.py:

from . import os
from .os import foo
Run Code Online (Sandbox Code Playgroud)

但事实上,使用python 2.x,本地包解析是默认的.只需一个简单的import os加载本地os.py而不是系统包.

那么我如何在thisfile.py导入系统级os包而不是本地定义的替代方案中呢?

python python-2.x

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

浮点数,小数,价格和部分数量

虽然这个特定实例中的问题涉及Django和Python,但我想这个问题也出现在其他地方.

浮点值存在精度问题,当用于货币时有时会导致不准确,因此在大多数情况下,固定精度十进制是选择的存储类型.

但是如果价格与非整数数量相结合,例如在发票或收据中.说仙尘成本每克$ 19.99,和客户购买3.5克的东西.价格是十进制,而数量是浮点数.

那总是Decimal(19.99) * float(3.5).但是不允许乘以浮点数和小数:

>>> from decimal import *
>>> Decimal(19.99) * float(3.5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'Decimal' and 'float'
Run Code Online (Sandbox Code Playgroud)

当然,我们可以先将价格转为浮动价格,但是我们会失去通过将价值存储为小数而获得的任何优势.或者我们可以将数量存储为小数,但这意味着任意选择数量的范围和精度.但是在设计时,开发人员不一定知道数量所需的范围/精度(这就是存在浮点数的原因).有没有更好的办法?

我相信这个问题以前已经解决了; 这种计算的最佳方法是什么?

python database django floating-point decimal

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