英特尔刚刚推出了新的48核CPU("Intel显示48核x86处理器作为单芯片云计算机",作者Ryan Shrout,2009年12月2日;芯片是"单芯片云计算机",也称班加罗尔).这个新架构不仅仅是内核的数量,似乎还引入了许多有趣的功能,例如:
事情变得有趣 - 英特尔表示他们已经删除了硬件缓存一致性,这实际上意味着每个"磁贴"将完全独立于它存储在本地L2缓存中的内容.因此,核心和瓦片之间的所有高速缓存通信将由网格数据通信系统和每个瓦片上的专用"消息缓冲器"处理.
这些新架构对我们程序员意味着什么?我们如何解决tomorow CPU的复杂性?
我正在为一个项目构建某种迷你框架,并提出这个解决方案.我尝试了很多,但在我看来这非常方便(代码简化为了简化):
# Basically it's just a Registry pattern
class Repository {
private static $objects = array();
public function loadObject($alias, $object) {
self :: $objects[$alias] = $object;
return true;
}
public function __get($name) {
if ($this->objectExists($name)) {
return self::$objects[$name];
} else {
return false;
}
}
}
class Database extends Repository {
/* database class */
}
class Session extends Repository {
public function some_func($key, $value) {
/* i can access database object using $this in any class that extends Repository …Run Code Online (Sandbox Code Playgroud) 是什么在差异Dictionary.add(key, value)和Dictionary[key] = value?
我注意到最后一个版本ArgumentException在插入重复密钥时没有抛出,但有没有理由更喜欢第一个版本?
编辑:有没有人有权威的信息来源?我尝试过MSDN,但它一如既往的野鹅追逐:(
这不是一个如何实现它的问题,但这个方法的目的是什么?我的意思是 - 好吧,我知道在搜索时需要它,但为什么它被埋没为"对象"类的方法?
故事发生了 - 我有一些类,默认情况下(逻辑意义上)对象不具有可比性.每次要比较/搜索它们时,都必须准确指定匹配方式.在这种情况下最好的是:
没有像Equals这样无处不在的方法,问题解决了,没有程序员(我班级的用户)会因为在搜索时省略自定义匹配而陷入陷阱
但既然我无法改变C#
隐藏继承的,不需要的方法来阻止调用(编译时)
但这也需要改为C#
override Equals并抛出异常 - 至少在运行时通知程序员
所以我问,因为我被迫丑陋(c),因为(b)是不可能的,因为缺乏(a).
简而言之 - 迫使所有对象具有可比性(Equals)的原因是什么?对我来说,这是一个过分的假设.提前感谢您的启示:-).
我写了一个下面的结构下拉菜单.它应该在点击时下拉,并在点击时关闭.
这是HTML
<ul id="nav" class="nav">
<li>
<a id="menu1" class="menu">MENU 1</a> <!-- top menu -->
<div id="submenu1" class="submenu"> <!-- hidden by default -->
<a href="#">SUBMENU ITEM 1</a> <!-- submenu item -->
<a href="#">SUBMENU ITEM 2</a>
</div>
</li>
<li>
<a id="menu2" class="menu">MENU 2</a>
<div id="submenu2" class="submenu">
<a href="#">SUBMENU ITEM 1</a>
<a href="#">SUBMENU ITEM 2</a>
<a href="#">SUBMENU ITEM 2</a>
</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这就是JavaScript(使用jQuery)
$("#menu1").click(function() {
$("div.submenu").hide(); // hide all menus
$("#submenu1").toggle(); // open this menu
});
$("#menu2").click(function() {
$("div.submenu").hide(); // hide all menus …Run Code Online (Sandbox Code Playgroud) 所以,我只是站起来一个Spring Hibernate应用程序,我似乎无法正确获取我的映射文件.我正在使用MySql 5和一个自动递增键.这是我的映射文件的ID部分.
<hibernate-mapping>
<class name="org.XXXXXXX.Contact" table="contact">
<id name="id" column="id" type="int" unsaved-value="null">
<generator class="native" />
</id>
Run Code Online (Sandbox Code Playgroud)
这是SQL生成的
插入联系人(title,first_name,middle_name,last_name,suffix,job_title,dob,passport_number,passport_expiration,employer,dietary_restrictions,secondary_contact_fname,secondary_contact_lname,secondary_contact_mname,secondary_contact_title,secondary_contact_suffix,secondary_contact_job_title,emergency_contact_name,emergency_contact_phone,emergency_contact_notes,is_company)值(?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
这是堆栈跟踪的重要部分:
org.hibernate.AssertionFailure:org.XXXXXXX.Contact条目中的null id(发生异常后不刷新会话)
我已经尝试将unsaved-value设置为"0"和"-1"并通过线路发送它们.关于我做错了什么的任何想法?
我知道这里讨论的方法:
解决Linq to Sql中针对高需求ASP.NET网站的编译查询的常见问题
...但这对我的情况不起作用,因为我得到了:
"从查询返回结果后,不允许设置加载选项."
我使用Codesmith PLINQO脚本生成实体和管理器代码,管理器代码如下所示:
public partial class SearchManager
{
#region Query
// A private class for lazy loading static compiled queries.
private static partial class Query
{
internal static readonly Func<MyDataContext,IOrderedQueryable<Search>>
GetAll = CompiledQuery.Compile(
(MyDataContext db) =>
from s in db.Search
orderby s.Name
select s);
}
#endregion
public IQueryable<Search> GetAll()
{
return Query.GetAll(Context);
}
}
Run Code Online (Sandbox Code Playgroud)
我首先尝试将静态DataLoadOptions拖放到Searchmanager类中,如下所示:
public static readonly DataLoadOptions MyOptions =
(new Func<DataLoadOptions>(() =>
{
var option = new DataLoadOptions();
option.LoadWith<Search>(x => x.Rule);
return option; …Run Code Online (Sandbox Code Playgroud) 我发现软件开发最令人沮丧的方面之一就是找到问题的解决方案,忘记它,然后在将来遇到同样的问题而忘记你以前如何解决它.或者编写一些有用的代码,然后在以后的项目中找不到这段代码.
我的一般问题是:如何在编程时跟踪每天学到的所有新内容?有没有人有系统的方法来捕捉知识,并在将来轻松有效地应用它?
更新:感谢您的回复,以下是您提出的建议:
社会
代码存储库
桌面
我是一本字典(字典字典)
old_dict = {
'1':{'A':1, 'check': 0, 'AA':2, 'AAA':3 , 'status':0},
'2':{'A':11,'check': 0, 'AA':22, 'AAA':33 ,'status':1},
'3':{'A':111,'check': 0, 'AA':222, 'AAA':333 ,'status':0},
'4':{'A':1111,'check': 1, 'AA':2222, 'AAA':3333 ,'status':0},
}
Run Code Online (Sandbox Code Playgroud)
我想在['check']!= 0之前和['status']之前得到一本新词典!= 0所以将会是
new_dict = {
'1':{'A':1, 'check': 0, 'AA':2, 'AAA':3 , 'status':0},
'3':{'A':111,'check': 0, 'AA':222, 'AAA':333 ,'status':0},
}
Run Code Online (Sandbox Code Playgroud)
如果是列表,我确实喜欢这个
ouputdata = [d for d in data if d[1] == ' 0' and d[6]==' 0']
Run Code Online (Sandbox Code Playgroud)
我试过了
for field in old_dict.values():
if field['check'] !=0 and field['status'] != 0
line = field['A'] + field['AA']+field['AAA']
#write …Run Code Online (Sandbox Code Playgroud) c# ×3
dictionary ×2
agile ×1
cpu ×1
frameworks ×1
hibernate ×1
javascript ×1
jquery ×1
linq ×1
loadoptions ×1
mysql ×1
optimization ×1
organization ×1
php ×1
python ×1