Redian新闻
>
OHT胚胎期诱导gene deletion
avatar
OHT胚胎期诱导gene deletion# Biology - 生物学
i*k
1
【 以下文字转载自 SanFrancisco 讨论区 】
发信人: inkink (inkink), 信区: SanFrancisco
标 题: 印度裔对冲基金经理被判2.76亿美金内线交易有罪
发信站: BBS 未名空间站 (Thu Feb 6 17:39:08 2014, 美东)
首先告诉你,以下是一则真实的励志故事:
今天,2014年2月6日,Satya上任后的两天,财经新闻充满了关于一个SAC资本对冲基金
经理被判内线交易,证券诈骗有罪的报道。
这个对冲基金经理名叫Mathew Martoma。乍一看之下似乎是南欧或者南美人。实际上,
这哥们是
道地的印度人,原名Ajai Mathew Mariamdani Thomas。Ajai 是咋变成Mathew Martoma
的泥?
原来这里另有一段佳话,让篡改简历的IT老印都自愧不如,至于琐男们,我不知道尔等
是何感想:
Ajai原来是哈佛法学院的学生。快毕业找工作时,Ajai非法黑进哈佛管理成绩的数据库
,改高了自己几门课的分数,随后把这些成绩发给了他正在申请职位的几个法院。
聪明伶俐的Ajai如愿以偿拿到了一所法院的职位。但是,DC法院的工作人员鬼使神差地
觉得Ajai成绩单可能有诈,就联系了哈佛。
Ajai得知此事,立刻干了两件事:
1。告知哈佛自己攻入学校计算机,篡改了成绩。但是他说这只是为了给他父母看,并
没有想到成绩被发给了法院。
2。写了一封电子邮件,邮件里告知法学院秘书千万不要把自己的成绩寄给他在申请的
法院。Ajai 把Email的日期心头改到事发前的日期,然后寄给法学院秘书,想造成自己
并非刻意欺骗雇主的假象。
不料,哈佛觉得这封邮件有蹊跷,决定雇一家信息安全侦探公司判断其真假。
牛B的人中龙凤 Ajai,找了自己通晓IT的朋友,搞了一个假冒的信息安全公司,煞有介
事地调查了一下,然后发文告诉哈佛Ajai的邮件毫无问题。
最终,这一切还是露馅了。哈佛毫不留情地开除了Ajai。
被哈佛法学院开除,从O8总统的小学弟,跌倒沟里。
这难不倒Ajai。
Ajai立刻改了自己的名字,摇身变成Mathew Martoma,洋洋洒洒写了几片Essay,大摇
大摆进了斯坦福商学院念MBA去了!
时间过去几年,斯坦福MBA毕业的Mathew已经成了大对冲基金SAC资本的红人。码工们若
是不知道这家公司,就这么说吧:它的创始人,现任CEO,是美国证监会,SEC的前主席。
Mathew手里有大笔资金投进了一家制药公司。制药公司的股票价格跟他们portfolio里
的新药大有关系。两年前的一天,在该公司一款新药临床试验接近尾声时,聪明的
Mathew私下会晤了了解该临床实验的一名纽约州立大学医学院教授。教授告诉Mathew这
药没戏。Mathew连夜开始扔这家公司的股票。不但如此,他还立刻开始short这支股票
。结果不但没赔钱,还赚了一大笔。最终,总共涉案金额达到2亿6千7百万美金。
改成绩,撒谎,再撒谎来掩盖前面的谎,造出假的公司,假的信息安全报告,改名,证
券欺诈。
Ajai被判的结果,并不是所有人都拍手称快的。金融界里不少人觉得这是政府过于严苛
的结果。尤其SEC,暗地里期望Ajai无罪的人怕是不在少数。
Ajai这一路的荣耀后面,有Ajai父母慈祥的面孔,哈佛,斯坦佛师长们赞许的目光,金
融界大佬们的互拍肩膀。如果不是政府在08金融危机后严厉打击金融诈骗,Ajai这时应
该还在数他的2亿多美金。
琐男们,颤抖吧!这就是你的对手!
avatar
q*n
2
如果我comment out line 88, 就没问题。 各为大牛, handle_database有什么问题吗?
{code}
1 var express = require('express');
2 var app = express();
3 var mysql = require('mysql');
4 var pool = mysql.createPool({
5 connectionLimit : 100, //important
6 host : 'localhost',
7 user : 'root',
8 password : '',
9 database : 'callback',
10 debug : false
11 });
12
13 function handle_database(req,res) {
14 pool.getConnection(function(err,connection){
15 if (err) {
16 connection.release();
17 return;
18 }
19 var sql = "";
20
21 connection.query("select COUNT(*) from notifications",
function(err,rows){
22 if(!err) {
23 if(req.body.eventType == ‘TEST_START'){
24 sql = {test_id: ''' + req.body.testID + ''',
25 event_type: ''' + req.body.eventType + ''',
26 report_id: ''' + req.body.reportID + ''',
27 test_start: + req.body.testStart,
28 agent: ''' + req.body.agent + '''};
29 connection.query('INSERT INTO notifications SET
?', sql, function(err, result) {
30 if (err) throw err;
31 });
32 }
33 else if(req.body.eventType == ‘TEST_ISSUE'){
34 sql = {test_id: ''' + req.body.testID + ''',
35 event_type: ''' + req.body.eventType + ''',
36 report_id: ''' + req.body.reportID + ''',
37 timestamp: + req.body.timestamp,
38 severity: ''' + req.body.severity + ''',
39 message: ''' + req.body.message + '''};
40 connection.query('INSERT INTO notifications SET
?', sql, function(err, result) {
41 if (err) throw err;
42 });
43 }
44 else if(req.body.eventType == ‘TEST_COMPLETE'){
45 sql = {test_id: ''' + req.body.testID + ''',
46 event_type: ''' + req.body.eventType + ''',
47 report_id: ''' + req.body.reportID + ''',
48 test_end: + req.body.testEnd,
49 duration: + req.body.duration ,
50 test_status: ''' + req.body.testStatus + ''
'};
51 connection.query('INSERT INTO notifications SET
?', sql, function(err, result) {
52 if (err) throw err;
53 });
54 }
55 else if(req.body.eventType == 'REPORT_AVAILABLE'){
56 sql = {test_id: ''' + req.body.testID + ''',
57 event_type: ''' + req.body.eventType + ''',
58 report_id: ''' + req.body.reportID + ''',
59 timestamp: + req.body.timestamp ,
60 failure_message: ''' + req.body.
failureMessage + '''};
61 connection.query('INSERT INTO notifications SET
?', sql, function(err, result) {
62 if (err) throw err;
63 });
64 }
65 else {
66 console.log("ERROR: unknown messagern");
67 console.log(req.body);
68 }
69 sql = null;
70 }
71 });
72
73 connection.on('error', function(err) {
74 console.log("ERROR: unknown DB errorrn");
75 return;
76 }).setMaxListeners(0);
77 connection.release();
78 });
79 }
80
81 var port = process.env.PORT || 8080;
82 var bodyParser = require('body-parser');
83 app.use(bodyParser.json()); // support json encoded bodies
84 app.use(bodyParser.urlencoded({ extended: true })); // support
encoded bodies
85
86 // POST http://localhost:8080/callback/forfun
87 app.post('/callback/forfun’, function(req, res) {
88 handle_database(req,res);
89 res.sendStatus(200);
90 res.end();
91 }).setMaxListeners(0);
92
93 // start the server
94 app.listen(port);
95 console.log('Server started! At http://localhost:' + port);
{code}
avatar
i*0
3
我做的gene (A)在胚胎早期deletion导致lethal phenotype,我想看看在胚胎发育中期
或者晚期 (从15.5开始)deletion, A
gene 对发育的影响. 我的一个line的老鼠是A gene flox/flox, ER-cre+ 的,我想用
OHT 或者4-OHT 在E15.5的时候诱导
A gene deletion, 目前考虑两种方法:一是做ip注射好,二是是通过drinking water.
我只看过一些在成体做Ip 的paper,但是
用的volume都比较大,我也不想给怀孕老鼠更多的stress. drinking water倒是没有伤
害,但是我担心deletion的效率不高.
不知道那位有更好的办法,或者comment一下我列举的.
谢谢!
avatar
s*i
4
有可能是connection.query 还没有返回结果,提前connection.release()了。注意
javascript asynchronous的。我感觉你应该把connection.release()放到query的
callback body里。
avatar
c*e
5
86 // POST http://localhost:8080/callback/forfun
87 app.post('/callback/forfun’, function(req, res) {
88 handle_database(req,res);
89 res.sendStatus(200);
90 res.end();
91 }).setMaxListeners(0);
说明你没弄懂node.js的异步是啥意思,还有callback.

吗?

【在 q******n 的大作中提到】
: 如果我comment out line 88, 就没问题。 各为大牛, handle_database有什么问题吗?
: {code}
: 1 var express = require('express');
: 2 var app = express();
: 3 var mysql = require('mysql');
: 4 var pool = mysql.createPool({
: 5 connectionLimit : 100, //important
: 6 host : 'localhost',
: 7 user : 'root',
: 8 password : '',

avatar
d*n
6
87 app.post('/callback/forfun’, function(req, res) {
88 handle_database(req,res);
89 res.sendStatus(200);
90 res.end();
91 }).setMaxListeners(0);
==>
app.post('/callback/forfun', function(req, res){
async.series([
function handleDatabase(callback){
//db operations,
mysqlQuery = "select * from table";
query.exec(function (e ,r ){
if (e) return callback(e);
return callback(null, r);
})

},
function saveTodatabase(callback){
r.key = 1234; //mock update
r.save(callback); //if r can save
},
function closeDb(callback){
db_handler.close(callback);
}
],
function done(e, r){
if (e) return res.badRequest(e);

return res.ok(r);
});
})
avatar
r*i
7
最后一个对res操作的人负责close
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。