Redian新闻
>
Windows7下 用什么设计引物
avatar
Windows7下 用什么设计引物# Biology - 生物学
c*6
1
用自己的checking account的钱还信用卡的outstanding balance,不会对自己有不好
的影响吧?注:都是同一个银行的。
这个属于bt么?不是很懂。。。。。。谢谢!
avatar
t*r
2
大家好,请教一个关于J1的问题.拿自己的情况做例子吧
目前国内高校博士在读, 2012末-2013年初,J1, short-term visiting student的身份
走国内项目短期访问美国实验室4个月,之后美国实验室愿意继续资助,所以回去后2个月
再次J1,research schloar的身份回到实验室,一待又是一年. 6个月后就要回国博士答
辩了.国内工作情况也不景气,现在想咨询一下以后,博士答辩后是否还可以继续来美国
做博后?
1, 回国2年服务??
2, 我已经用掉2个J1的签证类型,以后如果再来美国是不是这两个不能再用了?
期待筒子门的Relpy,非常感谢,也欢迎各位朋友多多拍砖,撒花,贴王道
avatar
w*g
3
GC: immediate solution,表面上看似解决了问题,实际上只是部分
解决了问题,而且同时创造了不止一个新的问题。
RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
解决),而且同时也解决了所有其他资源分配的问题。
从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
// C++
{
fstream out("xxx");
out << "foo" << endl;
}
//java
OutputStream out = new FileOutputStream("xxx");
out.write("foo\n");
out.close();
可以看到,C++写法里既没有new,也没有close。一对花括号限死了
fstream中所有相关资源的生存期。
而java里,从C++借鉴来一个完全没有必要的new,却没有对应的delete,
而后面的close又没有对应的open。代码没有一点对称性。现在看来,
用来分配内存的new在C++里出现得反而越来越少了,倒是java,
写不了5行程序就得new。
大部分时候,追求全局最优解会比追求局部最优解开销更大,见效更慢,
需要有很有远见的人下狠心坚持下来。但是稍微放长远一点看,效果就会
非常明显。
这种类似的情况在C++和java两个语言里非常多。比如实现generic,
C++是一种全局最优解,到后来都能发展出函数式语言这种开始完全不在
计划之中的写法。而java的type erasure则是一种局部最优解,解决了
大部分问题,但是没法扩展,语言再要发展,去掉也不是,不去掉也不是。
再比如编译,一开始图方便用stack-based虚拟机(为什么是stack-based,
国内上过编译课写过mini pascal的都知道,连汇编语言都不用学,
就可以写编译器),然后性能搞不定了才折腾
JIT编译,又过了这么多年,性能还是搞不定,又要折腾AOT编译。
整个语言都是假设虚拟机设计的,这么多库也都是假设虚拟机设计的,
现在要搞编译谈何容易。看看pypy就知道,解决兼容性问题的开销可能是
做编译器开销的100倍都不止。从哪儿找那么多人擦屁股去?
再比如支持多继承,C++的做法虽然繁杂,但是干净,就一个class。
java的interface就是一个部分的解决方法(java没有多继承跟GC做不好
也有关系,一个局部最优解导致另一个局部最优解)。到了scala,
还是得弄出trait来颠覆interface。但trait也不是全局最优解,因为
按继承顺序不同,不同的trait的构造函数是否被调用是不确定的。
C++和java的生命期估计都不下几十年,未来发展的路还很长。
为什么C++往标准里加个GC都翻来覆去好几年决定不了,非不能也,
是不为也,因为你现在加进去,将来再想拿出来就难了。有一句话叫
人无远虑必有近优,用在C++和java上都合适。
我这是纯从技术角度出发思考,实际可能很多事情则是由经济文化等
因素甚至是人的本性决定的。GC比RAII更popular这个结果,早在100
年前亨利福特的攒钱消费理念败给GMVC的借钱消费理念那时就已经定了,
再往前推,其实早在2000年前蔡桓公讳疾忌医那时候就已经定了。
avatar
r*m
4
电脑装了windows7,发现很多软件不支持32或者64的了
大家都用什么设计引物?
avatar
m*o
5

不会,绝大多数都是这样还款
不是bt,反过来是

【在 c********6 的大作中提到】
: 用自己的checking account的钱还信用卡的outstanding balance,不会对自己有不好
: 的影响吧?注:都是同一个银行的。
: 这个属于bt么?不是很懂。。。。。。谢谢!

avatar
t*r
6
沉的好快
avatar
x*k
7
坐等原教旨java programmer来喷lz
avatar
a*a
8
vector不能用了,悲剧

【在 r****m 的大作中提到】
: 电脑装了windows7,发现很多软件不支持32或者64的了
: 大家都用什么设计引物?

avatar
t*r
9
up up
avatar
d*i
10
写的不错顶一个,C++里面和C一样如无特殊必要尽量使用stack variable,这样可以保
证stack unwinding自动释放清除资源而不用任何GC,而且速度比使用heap快很多。

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
a*d
11
很多在线工具,primer3等等
avatar
t*r
12
down down
avatar
p*o
13
拿啥喷? Java 7里面的try-with-resources吗?

【在 x****k 的大作中提到】
: 坐等原教旨java programmer来喷lz
avatar
O*e
14
Invitrogen会不会很快出upgrade?

【在 a***a 的大作中提到】
: vector不能用了,悲剧
avatar
t*r
15
大家好,请教一个关于J1的问题.拿自己的情况做例子吧
目前国内高校博士在读, 2012末-2013年初,J1, short-term visiting student的身份
走国内项目短期访问美国实验室4个月,之后美国实验室愿意继续资助,所以回去后2个月
再次J1,research schloar的身份回到实验室,一待又是一年. 6个月后就要回国博士答
辩了.国内工作情况也不景气,现在想咨询一下以后,博士答辩后是否还可以继续来美国
做博后?
1, 回国2年服务??
2, 我已经用掉2个J1的签证类型,以后如果再来美国是不是这两个不能再用了?
期待筒子门的Relpy,非常感谢,也欢迎各位朋友多多拍砖,撒花,贴王道
avatar
y*t
16
顶!
avatar
r*m
17
原来序列对比
两端测序结果拼接
同源性比较
一个软件都能完成,现在都得上网找在线工具
听说微软出了虚拟机,不知道板上有没有人用
avatar
t*r
18
沉的好快
avatar
N*K
19
彰显我辈用c+的优越性和先进性

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
a*d
20
APE,does most things vector NT can do, and is free
avatar
t*r
21
up up
avatar
d*t
22
顶!

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
a*e
23
bioedit
avatar
t*r
24
down down
avatar
n*n
25
不懂咖啡,不过给的代码确实是C++漂亮

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
b*n
26
是不是可以用primer3plus在线设计呢?

【在 r****m 的大作中提到】
: 电脑装了windows7,发现很多软件不支持32或者64的了
: 大家都用什么设计引物?

avatar
t*r
27
up up
avatar
g*g
28
RAII is a partial solution at best.
1. It's far from elegant once you allocate from heap and start using smart
pointer. And smart point has the fatal issues of not able to dealing with
circular pointers etc. And let's face it, not everything can be stored in
stack. i.e. It's a mumbo jumbo technique at best.
2. It's not enforced by compiler at all. You can't even count on your
colleague doing it consistently, let alone 3rd party.
At the end of the day, memory leak is still consistently an issue, a big one
for C++, while on Java side is almost non-existent and easy to identify.
Everybody writing code in the right way is daystreaming and you need to wake
up from it. I never count on others to do the right thing, I count on
JVM to do the right thing (proper GC), and tools to show me the right
information to debug when the wrong
thing is done.

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
x*e
29
我用的老版本的 vector NTI 7.0,用的挺好的啊,我的win7是32位的。

【在 a***a 的大作中提到】
: vector不能用了,悲剧
avatar
g*n
30
你这些都是专业问题,如果不是所在公司的人,不会费劲给你回答的,及时律师对你的
这些问题,也是不明白的,建议你找个学校的律师问一下。你的问题没交代清楚,你回
国期间,是J-1回国探亲,还是又申请了一个J-1回到美国?这个会造成不同结果。给你
piano文章读读。
j-1持有者為非資助人工作的問題
一般說來,根據美國移民局的相關規定,J-1持有者應該為資助人工作。但是在某些情
況下,如果J-1持有者符合相關規定,可以為非資助人工作。
J-1研究學者可以在原資助人的書面同意下為非資助人工作,但是必須是與其原專業密
切相關的專業,而且時間最長不超過6個月。
對於J-1學生來說,可以選擇利用實踐培訓計劃(Practical Training Program)。J-1
大學學生在畢業後可以選擇參加這一計劃,一般說來學士和碩士的時間為18個月,博士
以上則有長達36個月。而且申請參加這一計劃不需要美國國務院和美國移民局的批准。
申請參加這一計劃應該遞交指定交流計劃官員的同意書、申請人的護照、填寫完畢的I-
AP66表和I-94。
根據交流訪問計劃的不同,J-1簽證持有者的留美時間也有所不同。一般來說:
高中學生:12個月
學院/大學學生:整個學習期間都可以保持合法身份(duration of status),若畢業
後參加「實踐培訓計劃(practical training program)」,這個計劃的期間內也都可
以保持合法身份,學士和碩士有18個月,博士有36個月。
學院/大學中的無學位學生:24個月
職業受訓者:18個月
航空飛行計劃受訓者:24個月
小學和中學教師:36個月
大學教授:36個月
研究學者:36個月
居住在美國接受醫學培訓的醫師:居住期間身份均合法,但最多不超過7年
專家:12個月
國際訪問者:12個月
政府訪問者:18個月
J-1簽證的好處
一般的非移民簽證都是不允許家屬在美國工作的,J-1是唯一的例外。J-1持有者的配偶
和未成年子女(J-2)身份在向移民局遞交I-765申請並獲批准後,就可以在美國工作了
。但是必須保證的是,J-2持有者的收入必須用來資助J-1持有者。
J-1簽證的限制性規定——回國服務兩年(Foreign Residency Requirement)
J-1簽證回國服務兩年的規定,是指該簽證持有人在其參加的交流計劃結束後,不得在
美國境內申請延期、轉換其他非移民身份或者申請永久居住權,而必須返回原居住國,
2年以後才可以再次申請以H或L的身份進入美國或者申請永久居住權。但是,並非所有
的J-1簽證都受到回國服務兩年的限制,只有以下幾種情況受到這種限制。
J-1持有者參加的項目全部或者部分地、直接或者間接地由美國政府或J-1持有者本國政
府資助。
J-1持有者所從事的專業是其本國人才短缺的專業。
J-1持有者在美國接受醫學培訓。
在回國服務兩年的期間內,前J-1持有者雖然不可以申請H類和L類的簽證進入美國,也
不能申請永久居住權,但可以以其他類別簽證進入美國,比如B1/B2旅遊考察簽證。但
是,他在本國以外的國家居住的時間不計入「回國服務兩年」期間內。比如說,A的J-1
簽證到期後,他回到了自己的國家。一年以後,A申請了B-1簽證進入美國,並在美國居
住了六個月。六個月後他又回到了自己的國家,如果他想申請H類、L類簽證或申請永久
居住權,那麼他還要在自己的國家居住1年,才滿足了「回國服務兩年」的要求,除非
他已經申請到了J-1豁免。
來判斷自己是否受回國兩年的限制最簡單的方法就是看自己的IAP-66表J-1簽證。如果
你的IAP-66中「受回國服務兩年的限制」欄被勾選,或者你的簽證上出現「適用212(E
)回國兩年條款」,這就證明你是受「回國服務兩年」的限制的。當然,如果你的IAP-
66表和簽證上沒有出現上述情況,並不證明你就不受「回國服務兩年」的限制。由於情
況的可變性,我們建議您咨詢專業的移民律師。
注意,要完成「回國服務兩年」的要求,原J-1持有人必須回到在獲得J-1簽證時自己的
永久居住國。
我們舉例說明。A是中國公民,在獲得J-1簽證時也居住在中國。他的J-1身份到期後,
由於受到「回國服務兩年」的限制,他被要求回中國完成「兩年」的要求。但是A並沒
有回到中國,而是舉家移民加拿大,成為加拿大公民。在加拿大居住兩年後,A以TN身
份來到美國,不久又轉換為H-1B身份。他想申請成為美國永久居民。但是,由於這兩年
他並不是在中國度過的,所以如果他想成為美國永久居民,就必須回到中國兩年後才有
資格成為美國永久居民。
在開始申請J-1簽證之前,必須已經有一個美國的交流訪問計劃同意接收申請者,申請
者必須有贊助機構。由於J-1簽證不允許申請者有移民傾向,申請者還應該向簽證官表
示,自己只是在美國停留一段時間,並且自己有足夠的資金來支持自己在美國的生活,
還有在本國有非常重要的聯繫,比如說,申請者在本國有固定的工作和收入,父母都在
本國生活等等,向簽證官證明自己一定會回到自己的國家。
J-1簽證可以在大使館或領事館申請,14至79歲之間的申請人均須經過面試。
申請J-1簽證需遞交以下材料:
由資助人提供給申請人的DS-2019表,並已經被輸入美國學生和交流訪問學者信息系統
(SEVIS)
DS-156非移民簽證申請表
DS-157非移民簽證補充信息表
DS-158 非移民簽證申請人聯繫方式及工作經歷調查表
有效護照,注意該護照應該在
一張2』x 2』照片
簽證申請費
在J-1簽證被批准後,如果申請人申請簽證時所在的國家對美國公民申請類似簽證時收
取費用,申請人也將會被收取相應的費用。
J-1豁免
受「回國服務兩年」限制的J-1持有者可以基於以下理由申請豁免:
「不反對」豁免,原居住國政府不反對此種豁免。由該國政府向美國國務院出具「不反
對書」,證明該國政府不反對申請人申請豁免「回國服務兩年」。一般情況下,「不反
對書」的正本將由申請人原居住國政府通過外交渠道直接送達美國政府。對基於這種「
不反對」理由的豁免申請,只要申請人參加交流計劃的費用不是由美國政府出資的,一
般都可以獲得批准。
由相關美國政府機構(Interested Government Agency)出面要求豁免。如果申請人在
由某個美國聯邦政府機構資助的,或者說對這個聯邦政府機構有重要意義的項目中工作
,並且根據項目進展情況需要該J-1持有者繼續留在美國從事工作或者研究,那麼這個
政府機構可以出面要求J-1豁免。此種申請的批准與否一般取決於申請人留在美國隊有
關政府機構或交流計劃主辦者的重要性有多大而定。
如果申請人可以證明自己回到原居住國將會由於種族、宗教或者政治觀念不同而遭受迫
害,「回國服務兩年」的要求也可以豁免。申請人必須證明自己「將會」受到迫害,而
無須證明自己以前遭受過迫害。
如果申請人按照「回國服務兩年」的要求回原居住國居住兩年會給其作為美國公民或者
綠卡持有者的配偶或子女帶來極大的困難,也可以申請豁免。
指定的州衛生機構出面要求豁免,這一項僅對醫師適用。如果申請人在美國缺乏醫療人
才的地區獲得了在醫療衛生機構的全職工作的機會,可以由指定的州衛生機構或其他相
應的機構出面要求豁免。申請人必須書面承諾在提供其工作機會的醫療衛生機構每週至
少工作40個小時,至少工作三年,並且在豁免被批准以後90天內開始工作。
1.如果原居住國出具「不反對書」,證明政府不反對申請人不回國「服務兩年」,那
麼「回國服務兩年」就可以被豁免。
「不反對」豁免的程序如下
2.填寫美國國務院表格DS-3035,在線或者手工填寫J-1簽證豁免推薦申請。
如果手工填寫,還需要以下申請材料:
填寫完畢的J-1簽證豁免推薦申請表;
2個已貼郵票的標準尺寸的回郵信封;
以銀行支票或者匯票形式支付的申請費。
3.將申請材料交付以下地址:
郵寄地址:
U.S. Department of State
Waiver Review Division
Box 952137
快遞地址:
U.S. Department of State
Waiver Review Divison
P.O. Box 952137
1005 Convention Plaza
St. Louis, MO 63101-1200
4.國務院豁免審批部門在收到申請材料後,會用申請人提供的回郵信封,將相關指導
性材料連同指定給申請人的案件編號寄回給申請人。
5.申請人應聯繫設在華盛頓的原居住國大使館的領事部門,通知其將簽發給申請人的
「不反對書」交送美國國務院。
6.收到「不反對書」後,國務院會將他們的推薦意見交送移民局。如果申請被否決,
國務院會直接通知申請人。
7.移民局將最終結果通知申請人。
從國務院網站上公佈的情況來看,一般此種豁免申請的處理時間是6-8周。
相關美國政府機構IGA出面要求豁免
申請IGA豁免的步驟如下:
決定豁免申請資助人,即相關的IGA。申請人不必必須為為其資助的IGA工作,比如說,
美國衛生和公眾服務部可以為申請人資助申請IGA豁免,只要他的工作可以為改善美國
公民健康水平作出貢獻。每一個IGA都有資助這種豁免的範圍。
填寫國務院的J-1豁免審議申請表。此表由美國國務院豁免審議部門提供,其中包括一
系列關於申請人基本信息的問題,有關申請人為之工作的項目的資助情況問題,還有有
關申請豁免的理由的問題。
材料準備完畢後,將填好的J-1豁免審議申請表、所有的DSP/IAP-66表、申請費連同一
個回郵信封一起遞交至美國國務院的豁免審議部門。之後國務院豁免審議部會將相關指
導性材料連同指定給申請人的案件編號寄回給申請人。
向IGA申請要求資助。由申請人的僱主或者未來的僱主代表申請人向相關的IGA提出這種
申請要求。提出這種申請時應該遞交一份詳細而具有說服力的證明材料,解釋為什麼這
項豁免對該IGA是有好處的,同時還應該證明如果這項豁免得到批准是符合美國的公共
利益的,而如果申請人的這項豁免沒有獲得批准,他要受「回國服務兩年」的限制回到
原居住國,這將對該IGA產生負面的不利影響。在向IGA申請資助豁免時,可以同時遞交
其他支持性材料,如在相關研究領域中的專家寫的推薦信。除此之外,還應該遞交有關
國務院豁免審議部受理豁免申請的數量的文件給IGA。如果IGA決定資助這項豁免申請,
就會向國務院豁免審議部出具推薦信。
國務院對申請人遞交的材料進行審議,然後將最後的推薦意見交送移民局。與「不反對
」豁免類似,如果國務院持反對意見的話,移民局就不會批准此項豁免申請。反之,移
民局將極有可能會批准這項豁免。
申請IGA豁免的過程比較複雜,我們建議您咨詢有經驗的移民律師。
一般說來,受「回國服務兩年」限制的J-1持有者如果不能順利申請到「不反對」豁免
,IGA豁免也是一種選擇。但是並不是所有人都適合來申請IGA豁免。在考慮申請IGA豁
免時,應考慮一下幾個因素:
IGA資助人:如果要申請IGA豁免,必須有相關的IGA來作申請資助人。如果申請人為某
一政府機構資助的項目或計劃工作,如能源部、國防部等,這些出資的政府機構就可以
作為申請人的IGA資助人。但是,能夠弄清楚項目的資助人,獲得IGA的幫助並非易事。
資深的移民律師可以幫助您找到合適的IGA來資助您的J-1豁免,所以我們建議您向資深
的移民律師進行咨詢。
僱主/未來僱主的支持:大多數情況下,IGA僅受理由申請人的僱主或者未來的僱主提出
的要求資助豁免的申請。這就意味著申請人不能自己直接向IGA提出申請。申請人不僅
要獲得自己的直接導師的支持,還需要獲得上級行政官員的支持。通常情況下,IGA會
要求僱主簽署IGA申請、提供申請人所工作的項目情況的材料,或者組織招聘活動來證
明不受「回國服務兩年」限制的人不符合該職位的要求。不同的IGA對僱主的要求也不
同。
時間:一般說來,如果J-1持有者在美國保持合法身份的時間(甚至加上延期的時間)
不足以完成該研究項目的目的,且如果他受到「回國服務兩年」的限制需要回到原居住
國的話會對該研究項目產生不利影響,才可以申請IGA豁免。IGA豁免申請人必須證明自
己在該研究項目中的重要地位,並且應加入該研究項目至少兩年。考慮到IGA豁免申請
的複雜性,一般在準備正式遞交IGA申請前的六個月就應該著手進行準備。
申請人在研究項目中的作用:證明申請人在其工作的項目中的重要地位對於IGA豁免申
請來說是非常重要的。申請人可以通過自己發表的文章、專利或者在研究過程中取得的
突破性進展來證明自己在研究項目中的重要地位和作用。
推薦信:申請人與自己工作的研究項目中的領導人員或者教授良好的人際關係對於IGA
豁免申請來說也很重要,因為申請IGA需要來自這些人的推薦信。除此之外,獲得來自
此研究項目之外的專家學者的推薦信也是非常有用的,因為這些推薦信可以證明申請人
的研究能力,還有在自己的研究領域中的成就得到認可
獨立政府機構出面為J-1醫師要求豁免
在醫療衛生設施和人才短缺的地區,醫師可以申請J-1豁免。如果某外籍醫學畢業生已
經在上述地區獲得在醫療衛生機構的全職工作機會,並且許諾在該工作單位每週工作40
小時,至少工作三年,並且在豁免批准90天內即開始工作,就有資格申請J-1豁免。J-1
醫師可以通過獨立政府機構或者州醫療衛生機構出面要求J-1豁免。
通過獨立政府機構出面要求豁免的申請過程如下:
第一步:
申請人必須遞交以下材料:
填寫完畢的DS-3035 J-1簽證豁免推薦申請表
所有的DS-2019/IAP-66表
簡歷
下列聲明應由申請人簽字,並標注簽字日期:「本人,(姓名),在此聲明,(1)我
已經獲得了XXX(填入將出面為申請人要求J-1豁免的獨立政府機構的名稱)政府機構的
支持合作並且(2)現在沒有,我也將不再申請其他美國政府機構或其他相關機構出面
為我要求J-1豁免。」
G28表,或者律師事務所出具的其他證明證明此律師事務所的律師與申請人的代理關係
兩個已貼郵票的標準尺寸的回郵信封,交給美國國務院的以銀行支票或匯票形式支付的
申請費
資助此項豁免申請的獨立政府機構必須遞交以下材料:
該獨立政府機構的長官出具的證明信,證明此項豁免的批准將有利於美國的公共利益
申請人與接受其工作的衛生機構之間簽訂的有關每週工作準40小時,至少工作三年的合同
證明接受申請人工作的衛生機構處於美國聯邦醫療專業人員短缺地區(Health
Professional Shortage Area)或者醫療服務資源短缺地區(Medically Underserved
Area)的證據
如果申請人所在的交流項目由政府資助,則申請人原居住過政府出具的「不反對」此項
豁免的證明
由接受申請人工作的衛生機構的長官簽字的證明,證明該衛生機構處於HPSA或者MUA地
區,為醫療補助計劃、醫療保險制度和資金短缺的病人提供醫療服務。同時還應該提供
該衛生機構所在地區的聯邦信息處理標準(Federal Information Processing
Standards)地區編號及人口普查區編號。
證明沒有相應的美國醫師適合此職位的證據。
第二步:
國務院豁免審議部收到申請人的J-1簽證豁免推薦申請後,會寄回指定給申請人的案件
編號和相關的指導性材料,如應該遞交何種文件來支持自己的豁免,等等。在收到指定
給自己的案件編號後,申請人應該在所有要遞交的文件材料上標明此編號,包括郵寄材
料的信封。如果申請人沒有這樣做的話,遞交的申請材料極有可能會被退回。
第三步:
申請人應將所有的申請材料遞交到國務院。一些材料應由申請人原居住國的駐美大使館
直接送交美國國務院豁免審議部,比如「不反對書」。申請人應告知大使館相關人員在
「不反對書」以及信封上標明自己的案件編號。
申請人有責任保證申請材料的齊全。申請人可以通過撥打(202)663-1600電話來查詢
自己的申請處理進程,查詢時應提供案件編號,否則無法查詢。
第四步:
國務院豁免審議部審議完畢後,會將自己的推薦意見交給美國移民局,同時按照申請人
J-1簽證豁免推薦申請表上提供的地址郵寄給申請人一份。如果申請被否決,申請人會
直接收到移民局的通知。
有關「回國會給作為美國公民或永久居民的家屬帶來極端困難」的豁免申請
如果J-1持有者可以證明如果自己受到「回國服務兩年」的限制而回到原居住國,而其
作為美國公民或者永久居民的配偶或者孩子因此會遭受極端的困難,就可以基於此理由
申請豁免。一般情況下,僅僅「兩地分居」並不構成「極端困難」。這種豁免申請的步
驟如下:
第一步:
向美國移民局遞交I-612表和申請費;
向美國國務院遞交DS-3035表格,兩個已貼郵票的標準尺寸的回郵信封和以銀行支票或
匯票形式支付的處理費。
第二步:
國務院豁免審議部收到申請人的J-1簽證豁免推薦申請後,會寄回指定給申請人的案件
編號和相關的指導性材料,如應該遞交何種文件來支持自己的豁免,等等。在收到指定
給自己的案件編號後,申請人應該在所有要遞交的文件材料上標明此編號,包括郵寄材
料的信封。如果申請人沒有這樣做的話,遞交的申請材料極有可能會被退回。
第三步:
申請人應將所有的申請材料遞交到國務院。申請人有責任保證申請材料的齊全。申請人
可以通過撥打(202)663-1600電話來查詢自己的申請處理進程,查詢時應提供案件編
號,否則無法查詢。
第四步:
國務院豁免審議部審議完畢後,會將自己的推薦意見交給美國移民局,同時按照申請人
J-1簽證豁免推薦申請表上提供的地址郵寄給申請人一份。如果申請被否決,申請人會
直接收到移民局的通知。
「懼怕迫害」豁免申請
如果J-1持有者可以證明如果自己受到「回國服務兩年」的限制回到原居住國,會遭受
種族、宗教或者政治觀點方面的迫害,就可以基於此理由申請豁免。從國務院網頁上公
佈的情況來看,此類豁免的處理時間大概是3-4個月。這種豁免的申請過程如下:
第一步:
向美國移民局遞交I-612表和申請費;
向美國國務院遞交DS-3035表格,兩個已貼郵票的標準尺寸的回郵信封和以銀行支票或
匯票形式支付的處理費。
第二步:
國務院豁免審議部收到申請人的J-1簽證豁免推薦申請後,會寄回指定給申請人的案件
編號和相關的指導性材料,如應該遞交何種文件來支持自己的豁免,等等。在收到指定
給自己的案件編號後,申請人應該在所有要遞交的文件材料上標明此編號,包括郵寄材
料的信封。如果申請人沒有這樣做的話,遞交的申請材料極有可能會被退回。
第三步:
申請人應將所有的申請材料遞交到國務院。申請人有責任保證申請材料的齊全。申請人
可以通過撥打(202)663-1600電話來查詢自己的申請處理進程,查詢時應提供案件編
號,否則無法查詢。
第四步:
國務院豁免審議部審議完畢後,會將自己的推薦意見交給美國移民局,同時按照申請人
J-1簽證豁免推薦申請表上提供的地址郵寄給申請人一份。如果申請被否決,申請人會
直接收到移民局的通知。
州衛生機構出面要求豁免(僅對醫療專業人員短缺地區的J-1醫師適用)
在醫療專業人員短缺地區,J-1醫師可以申請豁免。如果某外籍醫學畢業生已經在上述
地區獲得在醫療衛生機構的全職工作機會,並且許諾在該工作單位每週工作40小時,至
少工作三年,並且在豁免批准90天內即開始工作,就有資格申請J-1豁免。
每個財政年度,每個州有30個此種J-1豁免的名額,其中有5個名額可以分配給並不在醫
療專業人員短缺地區從事醫療工作的專家學者。
如果申請人的豁免資助人是州衛生機構,申請過程如下:
第一步:
申請人應遞交以下材料:
填寫完畢的DS-3035 J-1簽證豁免推薦申請表
所有的DS-2019表或者IAP-66表
簡歷
「不反對」書
G28表,或者律師事務所出具的其他證明證明此律師事務所的律師與申請人的代理關係
兩個已貼郵票的標準尺寸的回郵信封,交給美國國務院的以銀行支票或匯票形式支付的
申請費
資助申請人的州衛生機構應遞交以下材料:
該州衛生機構的長官出具的證明信,證明此項豁免的批准有利於美國公眾的利益,應包
括以下內容:申請人的姓名;最後居住國;接受其工作的衛生機構的名稱和地址;美國
衛生和公共服務部制定的該醫療專業人員短缺地區的編號。
接受申請人工作的衛生機構出具的證明信,說明為何需要僱傭申請人
證明接受申請人工作的衛生機構處於HPSA或MUA地區的證據
申請人與接受其工作的衛生機構之間簽訂的有關每週工作40小時,至少工作三年的合同
第二步:
國務院豁免審議部收到申請人的J-1簽證豁免推薦申請後,會寄回指定給申請人的案件
編號和相關的指導性材料,如應該遞交何種文件來支持自己的豁免,等等。在收到指定
給自己的案件編號後,申請人應該在所有要遞交的文件材料上標明此編號,包括郵寄材
料的信封。如果申請人沒有這樣做的話,遞交的申請材料極有可能會被退回。
第三步:
申請人應將所有的申請材料遞交到國務院。一些材料應由申請人原居住國的駐美大使館
直接送交美國國務院豁免審議部,比如「不反對書」。申請人應告知大使館相關人員在
「不反對書」以及信封上標明自己的案件編號。
申請人有責任保證申請材料的齊全。申請人可以通過撥打(202)663-1600電話來查詢
自己的申請處理進程,查詢時應提供案件編號,否則無法查詢。
第四步:
國務院豁免審議部審議完畢後,會將自己的推薦意見交給美國移民局,同時按照申請人
J-1簽證豁免推薦申請表上提供的地址郵寄給申請人一份。如果申請被否決,申請人會
直接收到移民局的通知。
J-1和綠卡
即使J-1持有者要受「回國服務兩年」的限制,也可以隨時遞交移民申請。但是如果持
有者受到「回國服務兩年」的限制,又沒有申請到豁免,那麼,在「兩年」結束之前,
他無法申請進行身份調整(Adjustment of Status)或者在美國以外申請移民簽證。「
兩年」結束後,或者J-1持有者申請到了豁免,就可以申請進行身份調整且最終取得綠
卡。
J-1持有者申請綠卡有如下三種選擇:
移民申請和J-1豁免申請同時遞交
先遞交J-1豁免申請,在獲得批准後遞交移民申請
先遞交移民申請,獲得批准後遞交J-1豁免申請
舉個例子。傑妮是一個J-1學者。她同時遞交了移民申請和J-1豁免申請。如果這兩項申
請都被批准了,她就可以不離開美國直接申請身份調整進而取得綠卡。如果她的移民申
請被批准,而J-1豁免被否決的話,她就必須回到原居住國居住兩年以後在申請移民簽
證來到美國,獲得綠卡。
avatar
s*u
31
写的非常的赞
很多把smart pointer误解为C++的GC,但真正的精髓在于stack variable和unwinding
到处写满shared_ptr的人其实都没有得到C++

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
b*s
32
就是轻量级解决和重量级解决的区别。轻量级的好维护,容易扩展。重量级的对应用层
程序猿要求低,不是科班也能混混,出活虽然污糟但快。
不管轻重,基本功不够的走不远
avatar
d*r
33
C++ 高手们展开说说, 如果有很多地方都 share 了同一块内存,
比如一个 shared Object in heap (难道说这个应用场景 C++ 高手不使用?)
内存回收逻辑放入 shared Object destructor 吧.
如何总是能简洁并保险地回收内存? 还是能用 RAII 风格来回收?
avatar
w*z
34
Memory leak is one problem, the other one is dangling references. For most
of the applications, GC is good enough.
Of course, for latency sensitive applications, Java might not be a good fit.

I used to spend days, hours to figure out what the heck is the segment fault
coming from.

one
wake

【在 g*****g 的大作中提到】
: RAII is a partial solution at best.
: 1. It's far from elegant once you allocate from heap and start using smart
: pointer. And smart point has the fatal issues of not able to dealing with
: circular pointers etc. And let's face it, not everything can be stored in
: stack. i.e. It's a mumbo jumbo technique at best.
: 2. It's not enforced by compiler at all. You can't even count on your
: colleague doing it consistently, let alone 3rd party.
: At the end of the day, memory leak is still consistently an issue, a big one
: for C++, while on Java side is almost non-existent and easy to identify.
: Everybody writing code in the right way is daystreaming and you need to wake

avatar
g*9
35
jvm还有不用gc的,不过要花银子,c++已经末日黄花了。

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
w*g
36
你给个具体的需求,我帮你想怎么样能干净地解决。你说的这个是解决方案,并不是需
求。你的解决方案可能不是最优的,所以会出现程序难写的情况。
shared object in the heap经常用。谁分配的谁负责释放。
这样基本上不需要shared_ptr。甚至不需要new,而是用&获取局部变量的指针
传出去。一般一个设计方案做到内存分配简化了,往往还会有别的好处。
实现和维护都能变容易。

【在 d*******r 的大作中提到】
: C++ 高手们展开说说, 如果有很多地方都 share 了同一块内存,
: 比如一个 shared Object in heap (难道说这个应用场景 C++ 高手不使用?)
: 内存回收逻辑放入 shared Object destructor 吧.
: 如何总是能简洁并保险地回收内存? 还是能用 RAII 风格来回收?

avatar
y*j
37
Use Shared_ptr

【在 d*******r 的大作中提到】
: C++ 高手们展开说说, 如果有很多地方都 share 了同一块内存,
: 比如一个 shared Object in heap (难道说这个应用场景 C++ 高手不使用?)
: 内存回收逻辑放入 shared Object destructor 吧.
: 如何总是能简洁并保险地回收内存? 还是能用 RAII 风格来回收?

avatar
w*z
38
you mean zing?
http://www.azulsystems.com/products/zing/whatisit
They claimed it to be pauseless. I went to a few of their talks. But never
tried.
Do you use it?

【在 g*********9 的大作中提到】
: jvm还有不用gc的,不过要花银子,c++已经末日黄花了。
avatar
y*j
39
Use smart pointer correctly, you will never have segment fault.
If your code is old and cannot use smart pointer, just follow big three
rules.

fit.
fault

【在 w**z 的大作中提到】
: Memory leak is one problem, the other one is dangling references. For most
: of the applications, GC is good enough.
: Of course, for latency sensitive applications, Java might not be a good fit.
:
: I used to spend days, hours to figure out what the heck is the segment fault
: coming from.
:
: one
: wake

avatar
s*u
40
share使用同一块内存没有问题,但是注意使用权不等于所有权,一块内存一般只属于
单一的一个owner,然后由这个owner来决定什么时候把这块内存收回。ownership可以
transfer,但是co-ownership的话通常意味着设计可能有点问题
做设计的时候内存(变量)的ownership和lifetime都是非常重要的概念。

【在 d*******r 的大作中提到】
: C++ 高手们展开说说, 如果有很多地方都 share 了同一块内存,
: 比如一个 shared Object in heap (难道说这个应用场景 C++ 高手不使用?)
: 内存回收逻辑放入 shared Object destructor 吧.
: 如何总是能简洁并保险地回收内存? 还是能用 RAII 风格来回收?

avatar
w*g
41
就是这样。我发现很多人写程序没有设计这一步,上手就写,思维混乱。
这种人就会特别依赖gc或者smart_ptr。

【在 s******u 的大作中提到】
: share使用同一块内存没有问题,但是注意使用权不等于所有权,一块内存一般只属于
: 单一的一个owner,然后由这个owner来决定什么时候把这块内存收回。ownership可以
: transfer,但是co-ownership的话通常意味着设计可能有点问题
: 做设计的时候内存(变量)的ownership和lifetime都是非常重要的概念。

avatar
y*j
42
Use weak_ptr to break circular reference。
一个设计合理的程序应该不会出现Circular reference。

one
wake

【在 g*****g 的大作中提到】
: RAII is a partial solution at best.
: 1. It's far from elegant once you allocate from heap and start using smart
: pointer. And smart point has the fatal issues of not able to dealing with
: circular pointers etc. And let's face it, not everything can be stored in
: stack. i.e. It's a mumbo jumbo technique at best.
: 2. It's not enforced by compiler at all. You can't even count on your
: colleague doing it consistently, let alone 3rd party.
: At the end of the day, memory leak is still consistently an issue, a big one
: for C++, while on Java side is almost non-existent and easy to identify.
: Everybody writing code in the right way is daystreaming and you need to wake

avatar
y*j
43
还是用smart pointer 简单省事,毕竟机器比人可靠,当然要少用,只有heavy object
用,light object 放stack 上就可以了。

【在 w***g 的大作中提到】
: 就是这样。我发现很多人写程序没有设计这一步,上手就写,思维混乱。
: 这种人就会特别依赖gc或者smart_ptr。

avatar
x*k
44
再把多线程,加解锁,granularity,lockless,atomic之类弄上,够某些bad programmer喝
一壶的.呵呵

【在 s******u 的大作中提到】
: share使用同一块内存没有问题,但是注意使用权不等于所有权,一块内存一般只属于
: 单一的一个owner,然后由这个owner来决定什么时候把这块内存收回。ownership可以
: transfer,但是co-ownership的话通常意味着设计可能有点问题
: 做设计的时候内存(变量)的ownership和lifetime都是非常重要的概念。

avatar
y*j
45
以前看巜儒林外史》有这么一段:
八股文若做的好,随你做什么东西,要诗就诗,要赋就赋,都是一鞭一条痕,一掴一掌
血。
c++ 和这八股文有异曲同工之妙

【在 x****k 的大作中提到】
: 再把多线程,加解锁,granularity,lockless,atomic之类弄上,够某些bad programmer喝
: 一壶的.呵呵

avatar
k*j
46
一点屁大点的编译器特性,让你说的跟诈尸了似的。。。
楼主肯定没读过c++ standard doc
RAII是编程范式
GC是内存管理机制
完全两种不同概念,有什么好混在一起谈的

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
x*k
47
c/c++是基础的东西,掌握好了在弄那些jvm base language不难.反过来只知道上层语言
规则,不理解内在运行机制,如果出了问题就不好弄.当然了用上层语言的目的就是少出
问题.

【在 y*j 的大作中提到】
: 以前看巜儒林外史》有这么一段:
: 八股文若做的好,随你做什么东西,要诗就诗,要赋就赋,都是一鞭一条痕,一掴一掌
: 血。
: c++ 和这八股文有异曲同工之妙

avatar
g*g
48
It's an ad hoc practice at best and it's not easy to detect when a mistake
is made, that's far inferior to a GC solution.
If you think you can write GC better than dedicated GC deveoper, think again
. It's OK to use C++ when latency is critical, but if you believe RAII is a
better solution in general, you must be smoking.

【在 y*j 的大作中提到】
: Use weak_ptr to break circular reference。
: 一个设计合理的程序应该不会出现Circular reference。
:
: one
: wake

avatar
d*r
49
我以前就是写 C++ 的, 我觉得 smart pointer 挺难用的, 11版的没用过.
自己手动管理内存的话, 自己一人的程序还好, 人多了的大项目也挺麻烦的.
以前每次改个 bug, 费时最久的步骤, 就是把里外3层的内存管理代码看一遍, 因为每
个人管理内存的 style 还不太一样, 得按照原作者的思路加东西.
avatar
y*j
50
Java GC 对付Circular reference 确实很高明,我承认我达不到他们的水平。但我总
感觉这是个人造问题,如果设计差到出现循环引用,那他也可以写出死循环的程序,
java一样完蛋。再说了,如果是非内存资源,java就不如c++好管理了。

again
a

【在 g*****g 的大作中提到】
: It's an ad hoc practice at best and it's not easy to detect when a mistake
: is made, that's far inferior to a GC solution.
: If you think you can write GC better than dedicated GC deveoper, think again
: . It's OK to use C++ when latency is critical, but if you believe RAII is a
: better solution in general, you must be smoking.

avatar
b*s
51
and it is not difficult to find circular ref by using static analysis tools

【在 y*j 的大作中提到】
: Use weak_ptr to break circular reference。
: 一个设计合理的程序应该不会出现Circular reference。
:
: one
: wake

avatar
b*s
52
you don't get him

object

【在 y*j 的大作中提到】
: 还是用smart pointer 简单省事,毕竟机器比人可靠,当然要少用,只有heavy object
: 用,light object 放stack 上就可以了。

avatar
y*j
53
那是因为很多人写C++,实际上是写C,如果严格遵循big three rules,不用smart
pointer 也可以。

【在 d*******r 的大作中提到】
: 我以前就是写 C++ 的, 我觉得 smart pointer 挺难用的, 11版的没用过.
: 自己手动管理内存的话, 自己一人的程序还好, 人多了的大项目也挺麻烦的.
: 以前每次改个 bug, 费时最久的步骤, 就是把里外3层的内存管理代码看一遍, 因为每
: 个人管理内存的 style 还不太一样, 得按照原作者的思路加东西.

avatar
g*g
54
Circular ref is not an issue for GC at all. If there's no other ref into the
loop, the entire loop can be reclaimed.
Java has checked exception, it's harder to forget reclaiming resource than C
++ in general. If that's not enough, when a bug is hit, a nice exception
stack makes debugging much easier.

【在 y*j 的大作中提到】
: Java GC 对付Circular reference 确实很高明,我承认我达不到他们的水平。但我总
: 感觉这是个人造问题,如果设计差到出现循环引用,那他也可以写出死循环的程序,
: java一样完蛋。再说了,如果是非内存资源,java就不如c++好管理了。
:
: again
: a

avatar
y*j
55
java exception check helps。很多人写c++忘了这一点。
如果用RAII,非内存资源会自动释放的

the
C

【在 g*****g 的大作中提到】
: Circular ref is not an issue for GC at all. If there's no other ref into the
: loop, the entire loop can be reclaimed.
: Java has checked exception, it's harder to forget reclaiming resource than C
: ++ in general. If that's not enough, when a bug is hit, a nice exception
: stack makes debugging much easier.

avatar
w*g
56
RAII和GC是解决资源管理问题的两种不同的方法。一种通过编程范式解决,另一种通过
runtime/库解决。GC也可以用来解决别的资源,比如文件,锁等的自动释放问题。
混在一起谈很合适啊。

【在 k***j 的大作中提到】
: 一点屁大点的编译器特性,让你说的跟诈尸了似的。。。
: 楼主肯定没读过c++ standard doc
: RAII是编程范式
: GC是内存管理机制
: 完全两种不同概念,有什么好混在一起谈的

avatar
m*s
57
恰恰相反,GC是更高瞻远瞩的技术路线,RAII是局部优化对付对付。
GC假定机器比人可靠,假定算法最终能自动释放资源。
RAII强迫码农采用特定的范式去编程,它假定人对范式的理解是一致的,并且人是不犯
错误的。
回到现实世界,GC并不最优因为算法不够牛;RAII也一样,再牛的码工也不可能不写出
bug,而且码工越资深,埋的bug越隐蔽越致命。

GC: immediate solution,表面上看似解决了问题,实际上只是部分解决了问题,而且
同时创造了不止一个新的问题。RAII: 本质的解决方案,不止解决了内存分配一类....
....

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
q*c
58
总是有人相信共产主义,总是有人认为(很多人的情况下)人能靠的住。
3000 万人都没把这种人死绝啊。。。

【在 d*******r 的大作中提到】
: 我以前就是写 C++ 的, 我觉得 smart pointer 挺难用的, 11版的没用过.
: 自己手动管理内存的话, 自己一人的程序还好, 人多了的大项目也挺麻烦的.
: 以前每次改个 bug, 费时最久的步骤, 就是把里外3层的内存管理代码看一遍, 因为每
: 个人管理内存的 style 还不太一样, 得按照原作者的思路加东西.

avatar
q*c
59
如果人人都大公无私,共产主义不就实现了嘛。 要不要去最接近的北朝鲜体验一下下?

【在 y*j 的大作中提到】
: 那是因为很多人写C++,实际上是写C,如果严格遵循big three rules,不用smart
: pointer 也可以。

avatar
s*t
60
很久以前操作系统课上一个用c写的内存分配一类的程序就是segfault,死活都找不出问
题,TA也帮忙找了还是不行,最后因为在gdb里面能跑出结果还是给了分。
当然这和我写代码的水平不高有关,渐渐就不怎么写软件了。最近才开始学rust,突然
明白以前搞不清楚的问题所在了,痛苦折腾中领悟到了你们说的ownership和lifetime
,不过还没有完全转过来,都是靠编译器报错来找的。
大牛如果有机会指导指导。
avatar
g*g
61
没给人擦过屁股的总是想着自己多么牛逼,给人擦过屁股的总是不惮怀疑别人比见识过
的还傻逼,实力其实两下就看出来了。

【在 q*c 的大作中提到】
: 总是有人相信共产主义,总是有人认为(很多人的情况下)人能靠的住。
: 3000 万人都没把这种人死绝啊。。。

avatar
y*j
62
如果抬杠的话,写GC的大牛们更资深,所以埋的Bug更隐蔽更致命?

..

【在 m**********s 的大作中提到】
: 恰恰相反,GC是更高瞻远瞩的技术路线,RAII是局部优化对付对付。
: GC假定机器比人可靠,假定算法最终能自动释放资源。
: RAII强迫码农采用特定的范式去编程,它假定人对范式的理解是一致的,并且人是不犯
: 错误的。
: 回到现实世界,GC并不最优因为算法不够牛;RAII也一样,再牛的码工也不可能不写出
: bug,而且码工越资深,埋的bug越隐蔽越致命。
:
: GC: immediate solution,表面上看似解决了问题,实际上只是部分解决了问题,而且
: 同时创造了不止一个新的问题。RAII: 本质的解决方案,不止解决了内存分配一类....
: ....

avatar
y*j
63
我经常给别人擦屁股,看过各种烂Code,在这过程中其实学到很多东西,水平提高很多。

【在 g*****g 的大作中提到】
: 没给人擦过屁股的总是想着自己多么牛逼,给人擦过屁股的总是不惮怀疑别人比见识过
: 的还傻逼,实力其实两下就看出来了。

avatar
y*j
64
其实说的没错,每次看到这种用C++写C程序的时候,还不如完全用C得了,不要像中国
朝鲜一样,挂社会主义的羊头,卖资本主义,封建主义的狗肉。

下?

【在 q*c 的大作中提到】
: 如果人人都大公无私,共产主义不就实现了嘛。 要不要去最接近的北朝鲜体验一下下?
avatar
b*s
65
号称自己是写c++的,十个有八个是这种,还有一个是写mfc的

【在 y*j 的大作中提到】
: 其实说的没错,每次看到这种用C++写C程序的时候,还不如完全用C得了,不要像中国
: 朝鲜一样,挂社会主义的羊头,卖资本主义,封建主义的狗肉。
:
: 下?

avatar
J*s
66
Bingo.
smart pointer 的陷阱太多,虽说每种smart pointer用在不同的场合使用。新手能很
快的入门掌握,但是要熟练用到大项目对程序员要求高。
我曾经就被lifetime的问题搞个半死。还有smartpointer乱用导致内存暴增。

【在 s******u 的大作中提到】
: share使用同一块内存没有问题,但是注意使用权不等于所有权,一块内存一般只属于
: 单一的一个owner,然后由这个owner来决定什么时候把这块内存收回。ownership可以
: transfer,但是co-ownership的话通常意味着设计可能有点问题
: 做设计的时候内存(变量)的ownership和lifetime都是非常重要的概念。

avatar
d*r
67
关键是 C++ 因为 C 的历史负担, 开发工具落后 (gcc/g++, make, 长时间没好的 IDE)
,
没有建立起好的生态圈, 很多时候, 连些像样的 lib 都没有, 结果就是一堆人自己写
自己的,
工程上和生态圈上都不成功.

【在 y*j 的大作中提到】
: 其实说的没错,每次看到这种用C++写C程序的时候,还不如完全用C得了,不要像中国
: 朝鲜一样,挂社会主义的羊头,卖资本主义,封建主义的狗肉。
:
: 下?

avatar
y*j
68
c++ 最大的问题确实是缺少一个好的生态环境。boost 算是部分解决方案。但我感觉
Boost作者的水平比Java库作者的水平要差一些。
还有缺少reflection.

IDE)

【在 d*******r 的大作中提到】
: 关键是 C++ 因为 C 的历史负担, 开发工具落后 (gcc/g++, make, 长时间没好的 IDE)
: ,
: 没有建立起好的生态圈, 很多时候, 连些像样的 lib 都没有, 结果就是一堆人自己写
: 自己的,
: 工程上和生态圈上都不成功.

avatar
n*n
69
看烂代码肯定比起好代码学的少,有时候还负作用。

多。

【在 y*j 的大作中提到】
: 我经常给别人擦屁股,看过各种烂Code,在这过程中其实学到很多东西,水平提高很多。
avatar
n*n
70
缺feature这个见仁见智。

【在 y*j 的大作中提到】
: c++ 最大的问题确实是缺少一个好的生态环境。boost 算是部分解决方案。但我感觉
: Boost作者的水平比Java库作者的水平要差一些。
: 还有缺少reflection.
:
: IDE)

avatar
d*i
71
你要理解C++的主要focus是performance,所以任何drag performance的东西都不会引
入,比如反射是要以牺牲performance为代价的,这对于C++是不可接受的。

【在 y*j 的大作中提到】
: c++ 最大的问题确实是缺少一个好的生态环境。boost 算是部分解决方案。但我感觉
: Boost作者的水平比Java库作者的水平要差一些。
: 还有缺少reflection.
:
: IDE)

avatar
d*i
72
你的认识是错误的。恰恰相反,GCC/GDB,Makefile加上vi/vim是最好的写代码的工具
,当然对于初学者来说你可以用一长串的IDE的list来点fancy的GUI,但是没有在UNIX/
Linux下用过GCC/Makefile/vim的程序员不算是真正的程序员。

IDE)

【在 d*******r 的大作中提到】
: 关键是 C++ 因为 C 的历史负担, 开发工具落后 (gcc/g++, make, 长时间没好的 IDE)
: ,
: 没有建立起好的生态圈, 很多时候, 连些像样的 lib 都没有, 结果就是一堆人自己写
: 自己的,
: 工程上和生态圈上都不成功.

avatar
y*j
73
那是。刚开始学的时候看烂代码,那会误入歧途。有一定基础再去修补烂代码,你会收
获不少,你会深刻理解为什么需要那些好东西。

【在 n******n 的大作中提到】
: 看烂代码肯定比起好代码学的少,有时候还负作用。
:
: 多。

avatar
y*j
74
这我理解,但是一个稍微成熟的反射库都没有,不过也许我孤陋寡闻

【在 d****i 的大作中提到】
: 你要理解C++的主要focus是performance,所以任何drag performance的东西都不会引
: 入,比如反射是要以牺牲performance为代价的,这对于C++是不可接受的。

avatar
h*c
75
is it said new/delete in benchmarking cause more ticks than streamlined GC?
avatar
h*c
76
Just like vb, Java was written in oo style c. I think today c/c++ usually is
the same compiler.
avatar
w*z
77
ide 不仅是fancy UI. 你对现代ide的认识不够。把两个能熟练运用ide 和 vim 的人放
在一起, 我不相信用vim的效率会高。

UNIX/

【在 d****i 的大作中提到】
: 你的认识是错误的。恰恰相反,GCC/GDB,Makefile加上vi/vim是最好的写代码的工具
: ,当然对于初学者来说你可以用一长串的IDE的list来点fancy的GUI,但是没有在UNIX/
: Linux下用过GCC/Makefile/vim的程序员不算是真正的程序员。
:
: IDE)

avatar
d*r
78
这些工具真的很原始...
用过, 会用这些工具, 并且认识到他们的原始性,
只有在不得不用的时候才用, 才是与时俱进 :)

UNIX/

【在 d****i 的大作中提到】
: 你的认识是错误的。恰恰相反,GCC/GDB,Makefile加上vi/vim是最好的写代码的工具
: ,当然对于初学者来说你可以用一长串的IDE的list来点fancy的GUI,但是没有在UNIX/
: Linux下用过GCC/Makefile/vim的程序员不算是真正的程序员。
:
: IDE)

avatar
d*i
79
我也不是vim的高手,不过我写Java的话从来不用vim都是用Eclipse,但是写C,C++,PHP
,JavaScript,Python等其他语言的时候还是经常会用,尤其如果你要上server写的话,
不用vim的话就没法了。我们公司一个同事才是厉害,写code从来不用IDE,全部vi(不
是vim),用的是一台HP-UX的工作站,写起来嗖嗖的飞快, 让我想起当年我在国内工作
的时候在Solaris下直接用vi写C程序的时代。

【在 w**z 的大作中提到】
: ide 不仅是fancy UI. 你对现代ide的认识不够。把两个能熟练运用ide 和 vim 的人放
: 在一起, 我不相信用vim的效率会高。
:
: UNIX/

avatar
s*u
80
所以在你看起来所有字符界面的都是原始,GUI就是先进的?呵呵

【在 d*******r 的大作中提到】
: 这些工具真的很原始...
: 用过, 会用这些工具, 并且认识到他们的原始性,
: 只有在不得不用的时候才用, 才是与时俱进 :)
:
: UNIX/

avatar
g*g
81
你这个说明的是Linux上写C/C++没有趁手的工具,当年写MFC有人不用VS的吗?

PHP

【在 d****i 的大作中提到】
: 我也不是vim的高手,不过我写Java的话从来不用vim都是用Eclipse,但是写C,C++,PHP
: ,JavaScript,Python等其他语言的时候还是经常会用,尤其如果你要上server写的话,
: 不用vim的话就没法了。我们公司一个同事才是厉害,写code从来不用IDE,全部vi(不
: 是vim),用的是一台HP-UX的工作站,写起来嗖嗖的飞快, 让我想起当年我在国内工作
: 的时候在Solaris下直接用vi写C程序的时代。

avatar
d*r
82
你这是乱扣帽子了, 我哪里说过 GUI vs 字符 的问题?
Make, vim/emacs VS IDE 这种讨论本版太多了, 你可以考考古

【在 s******u 的大作中提到】
: 所以在你看起来所有字符界面的都是原始,GUI就是先进的?呵呵
avatar
n*n
83
前两个可以,也有改进空间。后两个老掉牙的东西,趁早废了吧。

UNIX/

【在 d****i 的大作中提到】
: 你的认识是错误的。恰恰相反,GCC/GDB,Makefile加上vi/vim是最好的写代码的工具
: ,当然对于初学者来说你可以用一长串的IDE的list来点fancy的GUI,但是没有在UNIX/
: Linux下用过GCC/Makefile/vim的程序员不算是真正的程序员。
:
: IDE)

avatar
n*n
84
找个不需要修补烂代码的工作吧。烂代码越修越烂。

【在 y*j 的大作中提到】
: 那是。刚开始学的时候看烂代码,那会误入歧途。有一定基础再去修补烂代码,你会收
: 获不少,你会深刻理解为什么需要那些好东西。

avatar
n*n
85
我有个朋友骑车嗖嗖的快。可他还是买了汽车。

PHP

【在 d****i 的大作中提到】
: 我也不是vim的高手,不过我写Java的话从来不用vim都是用Eclipse,但是写C,C++,PHP
: ,JavaScript,Python等其他语言的时候还是经常会用,尤其如果你要上server写的话,
: 不用vim的话就没法了。我们公司一个同事才是厉害,写code从来不用IDE,全部vi(不
: 是vim),用的是一台HP-UX的工作站,写起来嗖嗖的飞快, 让我想起当年我在国内工作
: 的时候在Solaris下直接用vi写C程序的时代。

avatar
k*g
86
刚复习了一次Java的 Closeable, AutoCloseable 文档,蓦然回首,发现葵版感觉的很
穿越。。。
早就說了 RAII 的名字改得不好,應該是 Scope-based resource management 才對。
avatar
z*e
87
让我想起马车和汽车的赛跑
落后于时代的人总会认为一些老旧的东西是无法被淘汰的

【在 w**z 的大作中提到】
: ide 不仅是fancy UI. 你对现代ide的认识不够。把两个能熟练运用ide 和 vim 的人放
: 在一起, 我不相信用vim的效率会高。
:
: UNIX/

avatar
w*w
88
你的意思是在多线程情况下,如何保证share的 object的 功能正确吧?
你这个问题非常好。特别是在多线程情况下,什么时候释放一个share 的object,如何
释放一个share的object,解决办法是用著名的 smart pointers 可以解决这个问题。
当然在运用的时候还是有很多的小技巧的。
BTW,我想这样的细节著名的大 Java 程序员们是不会care的!
:)

【在 d*******r 的大作中提到】
: C++ 高手们展开说说, 如果有很多地方都 share 了同一块内存,
: 比如一个 shared Object in heap (难道说这个应用场景 C++ 高手不使用?)
: 内存回收逻辑放入 shared Object destructor 吧.
: 如何总是能简洁并保险地回收内存? 还是能用 RAII 风格来回收?

avatar
z*e
89
几个遗老遗少而已
已经沦为笑话了

【在 k**********g 的大作中提到】
: 刚复习了一次Java的 Closeable, AutoCloseable 文档,蓦然回首,发现葵版感觉的很
: 穿越。。。
: 早就說了 RAII 的名字改得不好,應該是 Scope-based resource management 才對。

avatar
w*w
90
1 可以用 weak pointer 这种智能pointer 解决你的concern
2 不讲以前的legacy code, 现代的C++ 的开发人员,已经比较难写出来 memory
leaking 的code了。 当然了 如果是刚写C++ 时间不长的人,那另当别论!

one
wake

【在 g*****g 的大作中提到】
: RAII is a partial solution at best.
: 1. It's far from elegant once you allocate from heap and start using smart
: pointer. And smart point has the fatal issues of not able to dealing with
: circular pointers etc. And let's face it, not everything can be stored in
: stack. i.e. It's a mumbo jumbo technique at best.
: 2. It's not enforced by compiler at all. You can't even count on your
: colleague doing it consistently, let alone 3rd party.
: At the end of the day, memory leak is still consistently an issue, a big one
: for C++, while on Java side is almost non-existent and easy to identify.
: Everybody writing code in the right way is daystreaming and you need to wake

avatar
z*e
91
去掉goto就是局部最优解
如果有全局最优解的话
傻子都会做出来,选择意味着放弃
c对于汇编来说,到处也都是局部最优解
如果你纠缠于全局最优解的话
人类是没法进步的
因为数学本身就不自洽,你的最优解从一开始就崩塌了
物理学,硬件这些根本无从谈起,数学理论根本就无法成立

【在 w***g 的大作中提到】
: GC: immediate solution,表面上看似解决了问题,实际上只是部分
: 解决了问题,而且同时创造了不止一个新的问题。
: RAII: 本质的解决方案,不止解决了内存分配一类问题(这个也是部分
: 解决),而且同时也解决了所有其他资源分配的问题。
: 从技术的角度上来说,我觉得这两者高下立判。看似都没有显式的
: 资源回收,前者是纵容用户,后者则是培养一种思维方式,写出来
: 的东西都是防患与未然的。就是代码写出来,也是C++的更简洁:
: // C++
: {
: fstream out("xxx");

avatar
z*e
92
你从一开始就不应该上server去写代码
只有不得不做的时候才这么做
绝大多数时候你应该在ide中完成代码的书写测试甚至部署工作
你在server上写代码,难道你们连java code都放server上去?

PHP

【在 d****i 的大作中提到】
: 我也不是vim的高手,不过我写Java的话从来不用vim都是用Eclipse,但是写C,C++,PHP
: ,JavaScript,Python等其他语言的时候还是经常会用,尤其如果你要上server写的话,
: 不用vim的话就没法了。我们公司一个同事才是厉害,写code从来不用IDE,全部vi(不
: 是vim),用的是一台HP-UX的工作站,写起来嗖嗖的飞快, 让我想起当年我在国内工作
: 的时候在Solaris下直接用vi写C程序的时代。

avatar
y*j
93
咦,你不正好说明Java也开始用RAII管理资源吗?

【在 k**********g 的大作中提到】
: 刚复习了一次Java的 Closeable, AutoCloseable 文档,蓦然回首,发现葵版感觉的很
: 穿越。。。
: 早就說了 RAII 的名字改得不好,應該是 Scope-based resource management 才對。

avatar
w*g
94
你真是少见多怪。我所有的code都是在server上的。

【在 z****e 的大作中提到】
: 你从一开始就不应该上server去写代码
: 只有不得不做的时候才这么做
: 绝大多数时候你应该在ide中完成代码的书写测试甚至部署工作
: 你在server上写代码,难道你们连java code都放server上去?
:
: PHP

avatar
z*e
95
prod. server?
你好意思
这种做法要是被我以前的公司看到
这个理由是可以fire掉的,代码是需要保密的
不是放到server给维护人员随便偷的
生产server和放code的git server必需分离
不过你们没有跨平台,脚本是解释执行,所以这两个都决定了无法像java一样
把编译后的byte code和source code分开存放
因为需要放到server上去compile,和debug

【在 w***g 的大作中提到】
: 你真是少见多怪。我所有的code都是在server上的。
avatar
z*e
96
source code里面有一堆app key之类的这key那key
尤其是social website经常给各种key,比如twitter
你把key交出去,就等于把商业机密交了出去,你也真敢做啊
佩服

【在 w***g 的大作中提到】
: 你真是少见多怪。我所有的code都是在server上的。
avatar
g*g
97
只要正确得写代码,内存泄漏是不会出现的。你没发现你跟没说一样?

【在 w******w 的大作中提到】
: 1 可以用 weak pointer 这种智能pointer 解决你的concern
: 2 不讲以前的legacy code, 现代的C++ 的开发人员,已经比较难写出来 memory
: leaking 的code了。 当然了 如果是刚写C++ 时间不长的人,那另当别论!
:
: one
: wake

avatar
z*e
98
顺便,你放在db里面的密码是不是明文保存?
加盐了吗?

【在 w***g 的大作中提到】
: 你真是少见多怪。我所有的code都是在server上的。
avatar
w*g
99
production server也有,development server也有。我自己的台式机也是
linux,配的raid,基本上就是我的development server。就是偶尔要用
笔记本写程序做实验,也是ssh到台式机上。偶尔出差,也可以ssh到台式
机上。
对于跟数据打交道的人,其实没有别的办法。最近python和R开始出了一些
可以在网页上处理数据的东西,但远还没有达到不用ssh的地步。
我跟你做的东西差得太远,不指望你能理解。

【在 z****e 的大作中提到】
: prod. server?
: 你好意思
: 这种做法要是被我以前的公司看到
: 这个理由是可以fire掉的,代码是需要保密的
: 不是放到server给维护人员随便偷的
: 生产server和放code的git server必需分离
: 不过你们没有跨平台,脚本是解释执行,所以这两个都决定了无法像java一样
: 把编译后的byte code和source code分开存放
: 因为需要放到server上去compile,和debug

avatar
z*e
100
c++不能做到跨平台,当然不能像我们这样控制了
这就是c++的傻逼之处,跨平台这种东西早就该解决掉
而不是丢给程序员去搞,最后一身屎
r和python都有跨平台,但是一旦涉及到c的pkg,那就难说了
呵呵,所谓跨平台噩梦说的就是如此
java当初广告里面一个跨平台就打动了无数人,gc什么还是次要的

【在 w***g 的大作中提到】
: production server也有,development server也有。我自己的台式机也是
: linux,配的raid,基本上就是我的development server。就是偶尔要用
: 笔记本写程序做实验,也是ssh到台式机上。偶尔出差,也可以ssh到台式
: 机上。
: 对于跟数据打交道的人,其实没有别的办法。最近python和R开始出了一些
: 可以在网页上处理数据的东西,但远还没有达到不用ssh的地步。
: 我跟你做的东西差得太远,不指望你能理解。

avatar
s*u
101
那你为什么说gcc/gdb原始呢?
vim和IDE没什么好吵的,一个是文本编辑软件,一个是IDE,完全两个概念,根本没有
放在一起比较的必要

【在 d*******r 的大作中提到】
: 你这是乱扣帽子了, 我哪里说过 GUI vs 字符 的问题?
: Make, vim/emacs VS IDE 这种讨论本版太多了, 你可以考考古

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