小编Moh*_*nia的帖子

在Linux中检测配额的块大小

Linux中磁盘配额的限制以块为单位计算.但是,我发现没有可靠的方法来确定块大小.我发现的教程将块大小称为512字节,有时称为1024字节.

我很困惑在LinuxForum.org上阅读一篇关于块大小真正含义的帖子.所以我试图在配额的背景下找到这个含义.

在NixCraft上找到了"确定磁盘配额的硬盘文件系统上的块大小" 提示,提示命令:

dumpe2fs /dev/sdXN | grep -i 'Block size'
Run Code Online (Sandbox Code Playgroud)

要么

blockdev --getbsz /dev/sdXN
Run Code Online (Sandbox Code Playgroud)

但是在我的系统上,这些命令返回4096,当我在同一系统上检查实际配额块大小时,我得到了1024字节的块大小.

是否有一种可编写脚本的方法来确定设备上的配额块大小,而不是创建已知大小的文件,并检查其配额使用情况?

linux scripting quota diskusage

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

Mysql SELECT FOR UPDATE - 奇怪的问题

我有一个奇怪的问题(至少对我来说:))与MySQL的锁定工具.

我有一张桌子:

create table `test` (  
  `id` int(11) NOT NULL AUTO_INCREMENT,  
  PRIMARY KEY (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

有了这些数据:

+ ---- +
| id |
+ ---- +
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 10 |
| 11 |
| 12 |
+ ---- +

现在我有2个客户端在开头执行这些命令:

set autocommit = 0;
设置会话事务隔离级别可序列化;
开始;

现在最有趣的部分.第一个客户端执行此查询:(意图插入id等于9的行)

SELECT*from test where id = 9 FOR UPDATE;
空集(0.00秒)

然后第二个客户端做同样的事情:

SELECT*from test where …

mysql locking blocking

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

C中的Ruby块/ Java闭包

我一直试图理解Ruby阻塞是如何工作的,为此我一直在尝试用C语言实现它们.

实现闭包的一种简单方法是void*将封闭堆栈传递给闭包/函数,但Ruby块似乎也处理来自使用块的作用域的返回和中断语句.

loop do
  break i if (i >= 4000)
  i *= 2
end
Run Code Online (Sandbox Code Playgroud)

我认为Java的一个闭包提案也是这样的.

那么,你将如何在C中实现Ruby-blocks/Java-closures?

c ruby java

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

我的心理障碍 - 努力学习目标C.

这是我报名后的第一个问题!无论如何继承我的问题,我在大学做了Java,我总是被告知我是一名优秀的程序员.然而,我从来没有追求它作为一种职业 - 我进入了支持和管理.我非常厌倦了我的工作,因此我开始学习Objective C,以便我可以为iphone开发应用程序.我目前正在观看几个不同的视频/书籍.

我的问题是,当我浏览Apple文档时,虽然我理解了大部分文档,但有时我会绊倒.我相信因为你/我们有Apple文档(即框架参考),所以一切都应该清楚,因此你不需要参考书或视频(为了学习如何使用特定的类).但我总是提到一本书和视频,后来感到内疚,因为我认为框架参考应该足够了.(因此我觉得我不能成为一名程序员)

我也相信你不应该需要示例代码来学习如何使用特定的类,因为Apple提供了每个类的文档,但是我再次找到我自己的google搜索示例代码,我找到了这样的答案 - 我再次感到内疚这样做.

我是否正确地说Apple文档根本不清楚?它可以参考视频/书籍或谷歌吗?还是论坛?

我有专业的程序员告诉我,我太担心了,我应该继续使用它,并使用我拥有的所有资源.我似乎无法绕过我头脑中的这种心理障碍.

当我开始一个编程项目时,我能够使用我所拥有的优秀搜索技能来找到我需要的代码,复制并粘贴它(是的我理解它)然后我感到内疚,告诉自己为什么你不认为自己编码???? 因此,你不是一个真正的程序员,你只是擅长谷歌搜索.

目前我正在阅读20多本书籍,以便我可以学习大部分框架,语法等来开发iphone应用程序.我相信如果我这样做,那么当我想到一个项目时,我可以快速完成.我应该阅读一些书,如2-3,然后只是启动项目/应用程序,如果我被卡住只是google它并获得我需要的代码?

有人可以回答我的问题吗?

编辑:

绝对BRILLIANT回答和评论从每个人收到.我非常感激.

从现在开始,我将使用我需要的所有论坛,书籍,文档和示例代码,而不会感到内疚!正如有些人所说,Apple文档并不清楚(是的,我对Objective C语法非常熟悉).我举个例子:为了让键盘在iphone上消失,你必须使用一个叫做的方法resignfirstresponder.我学会了如何从视频教程中使用这个方法!

你无法从苹果文档中学到这一点,有时甚至不能从最好的书籍中学到这些(这种方法相当奇怪,它的工作方式,Apple文档并不清楚).

这是我的抱怨 - Apple文档应该是明确的(至少有一些示例代码).看起来好的程序员(但不擅长谷歌搜索)会在这个舞台上失败.似乎不是那么好的程序员仍然可以通过谷歌搜索或观看一些视频(专业程序员无论出于何种原因无法访问).如果你问我,整个事件似乎是不公正和不平衡的.

谢谢你的回复人.

iphone objective-c

6
推荐指数
5
解决办法
1319
查看次数

为什么return关键字会导致我的'if block'出现问题?

以下代码工作正常:

person = {:a=>:A, :b=>:B, :c=>:C}
berson = {:a=>:A1, :b=>:B1, :c=>:C1}

kerson = person.merge(berson) do | key, oldv, newv |
if key == :a
  oldv
elsif key == :b
  newv
else
  key
end
end

puts kerson.inspect
Run Code Online (Sandbox Code Playgroud)

但是如果我return在"if block"里面添加,我会收到一个错误:

person = {:a=>:A, :b=>:B, :c=>:C}
berson = {:a=>:A1, :b=>:B1, :c=>:C1}

kerson = person.merge(berson) do | key, oldv, newv |
if key == :a
  return oldv
elsif key == :b
  return newv
else
  return key
end
end

puts kerson.inspect
Run Code Online (Sandbox Code Playgroud)

上面代码的错误是:

unexpected …
Run Code Online (Sandbox Code Playgroud)

ruby

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

Javascript阻止脚本执行

我需要做这样的事情:

  • 执行一段代码
  • 开始加载图像并阻止脚本执行
  • 加载图像后,继续执行
  • 执行其余代码

我知道最简单的方法是在图像的onload事件上分配一个函数,然后执行函数中的其余代码,但是如果可能的话我想要一个阻止脚本执行然后恢复的"线性"行为它.那么,有没有跨浏览器的方式来做到这一点?

javascript cross-browser execution

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

了解Ruby可枚举#map(具有更复杂的块)

假设我有一个功能

def odd_or_even n
  if n%2 == 0
    return :even
  else
    return :odd
  end
end
Run Code Online (Sandbox Code Playgroud)

我有一个简单的可枚举数组

simple = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

我使用do-end块通过map运行它,使用我的函数:

simple.map do
  |n| odd_or_even(n)
end
# => [:odd,:even,:odd,:even,:odd]
Run Code Online (Sandbox Code Playgroud)

如果不首先定义函数,我怎么能这样做呢?例如,

# does not work
simple.map do |n|
  if n%2 == 0
    return :even
  else
    return :odd
  end
end

# Desired result:
# => [:odd,:even,:odd,:even,:odd]
Run Code Online (Sandbox Code Playgroud)

是不是有效的ruby,编译器甚至在考虑它时会生我的气.但是我如何实现同等类型的东西呢?

编辑

实际上,我的问题的解决方案对我来说比它背后的动机/推理要少得多,帮助我更多地了解ruby如何阻止工作:)

ruby language-features enumerable

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

如何计算单词共生

我有一串长度为50的字符,表示abbcda....从集合中取出的字母序列A={a,b,c,d}.

我想计算在n = 2的b情况下接下来的次数b(n-gram).

类似地,特定字符连续多次重复三次n = 3,例如在输入字符串abbbcbbb等中,所以这里以b3个字母的顺序出现的次数是2.

string matlab

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

避免使用matlab命令历史时间戳

我有一个shell脚本,在for循环中调用matlab.

for i in ${list}; do 
    nohup matlab -minimize -nodesktop -nosplash function_call(i, other_variables);
done
Run Code Online (Sandbox Code Playgroud)

现在,如果我打开matlab,每次在for循环中发出function_call时,我的命令历史记录将包含一个短时间戳.例如,在为10个不同的i运行循环之后,我的matlab命令历史记录看起来像这样

%-- 08/19/2013 02:41:23 PM --%
%-- 08/19/2013 02:53:11 PM --%
%-- 08/19/2013 03:11:52 PM --%
%-- 08/19/2013 03:12:58 PM --%
%-- 08/19/2013 03:17:44 PM --%
%-- 08/19/2013 03:24:51 PM --%
%-- 08/19/2013 03:30:36 PM --%
%-- 08/19/2013 03:35:33 PM --%
%-- 08/19/2013 03:43:21 PM --%
%-- 08/19/2013 04:04:31 PM --%
Run Code Online (Sandbox Code Playgroud)

这不是很有用,它使我的命令历史变得混乱.每次从我的shell脚本启动matlab时,有没有办法避免命令历史记录添加一行?

shell matlab history

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

在迭代器上调用块方法:each.magic.collect {...}

我有一个自定义每个方法的类:

class CurseArray < Array
    def each_safe
        each do |element|
            unless element =~ /bad/
                yield element
            end
        end
    end 
end
Run Code Online (Sandbox Code Playgroud)

并且想要调用不同的块方法,例如对这些迭代元素进行"收集"或"注入".例如:

curse_array.each_safe.magic.collect {|element| "#{element} is a nice sentence."}
Run Code Online (Sandbox Code Playgroud)

我知道有一个特定的功能(我在这里称之为"魔术")来做到这一点,但我已经忘记了.请帮忙!:-)

ruby iterator

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