怎样做一个sicily online judgee

Tongji Online JudgeWelcome to Tongji Online Judge!&User ID:Password:&&&同济大学第十二届程序设计竞赛决赛排名by &感谢大家参与!2015同济大学第十二届程序设计竞赛网络赛通知by &网络预赛将于日晚19点至22点举行比赛地址 http://acm./contest?cid=10582015年同济大学第十二届大学生程序设计竞赛通知by &一、竞赛宗旨本次同济大学大学生程序设计竞赛的宗旨是:借助竞赛普及计算机程序设计活动,提高大学生计算机程序设计水平和运用计算机分析问题、解决问题的能力。此次校内竞赛也将为我校组队参加第40届ACM国际大学生程序设计竞赛亚洲区预选赛选拔队员、锻炼队伍。二、竞赛组织本次竞赛由同济大学教务处主办,电子与信息工程学院承办,软件学院、交通运输工程学院、机械与能源工程学院、铁道与城市轨道交通研究院等协办。三、竞赛方式及要求1、竞赛要求:选手以2人组队形式参赛,面向我校所有本科生,专业、年龄不限。比赛期间,允许使用各种纸质参考资料,不允许携带任何电子设备及电子文档。参赛人员不得抄袭他人的程序,一旦发现程序雷同,取消成绩。题目为中文。2、报名方式:本次竞赛采用网上报名的方式。请到programming_下载报名表,密码为programming并发送报名邮件到指定信箱;邮件标题注明“2015程序设计竞赛报名”;邮件中注明【学号、姓名、院系、专业、联系电话、电子邮件、所在校区】;可以自行组队后报名,也可以以个人名义报名(由组委会协助组队)。以收到大赛组委会“回复确认信”的方式确认报名成功。3、报名时间: &&&日——日4、网络练习时间:日——日5、网络预赛时间:日19:00—22:006、热身赛时间: &日9:30—11:30(嘉定校区计算机中心)7、竞赛时间: &&& 日13:00—18:00 (嘉定校区计算机中心)四、竞赛奖励机制为表彰和鼓励在竞赛中获奖的同学,本竞赛将实施如下奖励措施:拟设立奖项等级一等奖: &&&&&&&&&&5组 &&&&&&二等奖: &&&&&&&&&10组 &&&&&&三等奖: &&&&&&&&&20组 &&&&&&最佳女生组: &&&&&&1组 &&&&&&&参赛人员均可获得由学校颁发的荣誉证书。获一、二等奖的同学可加入同济大学ACM集训队,所获奖项可计入队内积分,并有机会入选学校代表队代表同济大学于2015年下半年参加第40届ACM国际大学生程序设计大赛亚洲区比赛。&&&咨询电话:
&陈健同学&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&同济大学第十二届大学生程序设计竞赛组委会同济大学第十一届程序设计竞赛决赛排名by &感谢大家参与!网络赛热身赛通知by &网络赛热身赛时间
18:00-23:00比赛进行期间,选择导航栏Running Contests进入比赛。比赛结束后,选择导航栏Past Contests查看练习赛题目。2014年第十一届同济大学大学生程序设计竞赛通知by &一、竞赛宗旨&&&&&&&&本次同济大学大学生程序设计竞赛的宗旨是:借助竞赛普及计算机程序设计活动,提高大学生计算机程序设计水平和运用计算机分析问题、解决问题的能力。此次校内竞赛也将为我校组队参加第39届ACM国际大学生程序设计竞赛亚洲区预选赛选拔队员、锻炼队伍。二、竞赛组织&&&&&&&&&本次竞赛由同济大学教务处主办,电子与信息工程学院承办,软件学院、交通运输工程学院、机械与能源工程学院、铁道与城市轨道交通研究院等协办。三、竞赛方式及要求1、竞赛要求:&&&&&&&&选手以2人组队形式参赛,面向我校所有本科生,专业、年龄不限。比赛期间,允许使用各种纸质参考资料,不允许携带任何电子设备及电子文档。参赛人员不得抄袭他人的程序,一旦发现程序雷同,取消成绩。题目为中文。2、报名方式:&&&&本次竞赛采用网上报名的方式。&&&&请到下载报名表,密码为woyaobaoming&&&&并发送报名邮件到指定信箱;&&&&邮件标题注明“2014程序设计竞赛报名”;&&&&邮件中注明【学号、姓名、院系、专业、联系电话、电子邮件、所在校区】; &&&&可以自行组队后报名,也可以以个人名义报名(由组委会协助组队)。&&&&以收到大赛组委会“回复确认信”的方式确认报名成功。3、报名时间: &&日——日4、网络练习时间:日——日5、网络预赛时间:日19:00—22:006、热身赛时间: &日9:30—11:30(嘉定校区计算机中心)7、竞赛时间: && 日13:00—18:00 (嘉定校区计算机中心)四、竞赛奖励机制&&&&为表彰和鼓励在竞赛中获奖的同学,本竞赛将实施如下奖励措施:&&&&拟设立奖项等级&&&&一等奖: &&&&&&&&&&5组 &&&&&&&&&&&二等奖: &&&&&&&&&10组 &&&&&&&&&&&三等奖: &&&&&&&&&20组 &&&&&&&&&&&最佳女生组: &&&&&1组 &&&&&&&&&&&参赛人员均可获得由学校颁发的荣誉证书。获一、二等奖的同学可加入同济大学ACM集训队,所获奖项可计入队内积分,并有机会入选学校代表队代表同济大学于2014年下半年参加第39届ACM国际大学生程序设计大赛亚洲区比赛。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&咨询电话: &&&刘老师&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 常成同学&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&同济大学第十一届程序设计竞赛组委会&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&日同济大学第十届程序设计竞赛决赛排名by &,获奖名单稍后公布。感谢大家参与!网络练习赛通知by &本次大赛共安排三场网络练习赛,安排时间如下:第一场: 3月26日 18:30-22:30第二场: 3月27日 18:30-22:30第三场: 3月28日 13:30-17:30比赛进行期间,选择导航栏Running Contests进入比赛。比赛结束后,选择导航栏Past Contests查看练习赛题目。2013年第十届同济大学大学生程序设计竞赛公告by &竞赛要求:&&&&选手以2人组队形式参赛,面向我校所有本科生,专业、年龄不限。比赛期间,允许使用各种纸质参考资料,不允许携带任何电子设备及电子文档。参赛人员不得抄袭他人的程序,一旦发现程序雷同,取消成绩。题目为中文。竞赛奖励机制:&&&&为表彰和鼓励在竞赛中获奖的同学,本竞赛将实施如下奖励措施:&&&&拟设立奖项等级&&&&一等奖: &&&&&&&&&5组 &&&&&&&&&&&二等奖: &&&&&&&&&10组 &&&&&&&&&&&三等奖: &&&&&&&&&20组 &&&&&&&&&&&最佳女生组: &&&&&&1组 &&&&&&&&&&&参赛人员均可获得由学校颁发的荣誉证书。获一、二等奖的同学可加入同济大学ACM集训队,所获奖项可计入队内积分,并有机会入选学校代表队代表同济大学于2013年下半年参加第38届ACM国际大学生程序设计大赛亚洲区比赛。时间安排:&&&&报名时间: &&&日——日&&&&网络练习时间:日——日&&&&网络预赛时间:日19:00—22:00&&&&热身赛时间: &日9:30—11:30(嘉定校区计算机中心)&&&&竞赛时间: &&&日13:00—18:00 (嘉定校区计算机中心)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&第十届同济大学程序设计竞赛组委会&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&日  活动通知by &本周六(5.12)下午13:00在嘉定电信学院203举办活动,届时将会讲解10年福州赛区题目。题目链接:http://acm./search.php?field=problem&key=2011%20Asia%20Fuzhou%20Regional%20Contest%20&source=1&searchmode=source敬请关注! Designed by
@ Tongji University. All Rights Reserved.收藏,1.1k 浏览
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
服务器后端用PHP还是Python?两者有什么优劣呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
online-judge的后端其实是分为两块的,一快是web,还有一块是judge。
web部分就是负责输入输出,界面显示,和平常做网站没什么区别,不管是php还是python都很快。
judge部分至少需要以下几个功能:
1.沙盒,执行代码的时候要保证系统的安全,必须把代码限制在沙盒里。
2.监控调用,由于在线执行代码很有可能会调用系统的资源(包括对文件进行请求,对网络/系统命令的请求),这些应该以安全优先,禁止某些调用的执行。
3.统计,大多数judge是带内存统计、执行时间统计的,从而算出排名或者分数,所以这个功能也很重要。
所以judge部分这些特点导致它需要一个能够精密控制系统的语言,这也是为什么大多数judge都是用C++/C写的,然后用socket/IPC来和web部分进行相互通信。
此时php/python才是前端,它把代码执行部分请求到后端的judge,然后返回对应的结果。
如果想用php/python来做judge,虽然理论上是可行的,但实际上貌似没人做,你需要实现太多东西,没有上面那个方案靠谱。
记住:没有严格的执行沙盒的语言是做不成judge的!有沙盒但是简陋/性能差的也是难以承担重任的(那些虚拟机们)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
之前大学acm社团使用的是开源的系统,使用java开发的。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
写这个系统的话,我觉得就是一个一个跑程序检测结果就行了啊,不同的语言调用不同的脚本运行环境就好了。最后比对结果,然后打分。easy!
同步到新浪微博
分享到微博?
与我们一起探索更多的未知
专业的开发者技术社区,为用户提供多样化的线上知识交流,丰富的线下活动及给力的工作机会
加入只需一步
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要举报该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知1725人阅读
程序设计(10)
下面是几个比较大的在线提交系统(Online Judge)
浙江大学 Online Judge(ZOJ)
国内最早也是最有名气的OJ,有很多高手在上面做题。特点是数据比较刁钻,经常会有你想不到的边界数据,很能考验思维的全面性。
北京大学 Online Judge(POJ)
建立较晚,但题目加得很快,现在题数和ZOJ不相上下,特点是举行在线比赛比较多,数据比ZOJ上的要弱,有时候同样的题同样的程序,在ZOJ上WA,在POJ上就能AC。
同济大学 Online Judge (TOJ)&
这个OJ题数上不能与上两个相比,推荐这个OJ的原因是它是中文的,这对很多对英文不太感冒的兄弟是个好消息吧。它也因此吸引了众多高中的OIer,毕竟他们的英文还差一些呵呵,上面的题目也更偏向高中的信息学竞赛一些。
西班牙Valladolid大学 Online Judge(UVA)
世界上最大最有名的OJ,题目巨多而且巨杂,数据也很刁钻,全世界的顶尖高手都在上面。据说如果你能在UVA上AC一千道题以上,就尽管向IBM、微软什么的发简历吧,绝对不会让你失望的。
俄罗斯Ural立大学 Online Judge(URAL)
也是一个老牌的OJ,题目不多,但题题经典,我在高中的时候就在这上面做题的。
俄罗斯萨拉托夫国立大学(Saratov State University)(SGU)&
SGU 是俄罗斯萨拉托夫国立大学(Saratov State University)用于培养ACM选手的训练网站。这个网站的建成时期较晚,但随着比赛的举行以及新题目的加入,这个题库的题目也日渐丰富。这个题库的一大特点就是Online Judge功能强大,它不仅使你避开了多数据处理的繁琐操作,还能告诉你程序错在了第几个数据。这一点虽然与ACM的Judge有些出入,但是却方便了调试程序。与UVA相比,这里的题目
在时间空间上要求都比较严格,而且更多的考察选手对算法的掌握情况,所以特别推荐冲击NOI的选手也来做一做。
UsacoGate Online Judge(USACO)&
全美计算机奥林匹克竞赛(USACO)的训练网站,特点是做完一关才能继续往下做,与前面的OJ不同的是测试数据可以看到,并且做对后可以看标准解答,所以如果大家刚开始的时候在上面那些OJ上总WA却找不到原因的话,可以试着来这里做做,看看测试数据一般是从什么地方阴你的。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1004989次
积分:12115
积分:12115
排名:第579名
原创:186篇
转载:101篇
评论:546条
欢迎站内联系
转载或使用本博客原创和翻译文章,请标明出外并附上链接。
欢迎关注微信:思维与睿智
JavaQQ群:
C/C++QQ群:
文章:19篇
阅读:58677
文章:22篇
阅读:66499
文章:19篇
阅读:73595
文章:11篇
阅读:31211
文章:22篇
阅读:207068
文章:17篇
阅读:37557
(2)(3)(3)(11)(4)(2)(13)(11)(8)(5)(4)(8)(1)(8)(2)(2)(3)(14)(5)(5)(10)(8)(4)(8)(9)(5)(8)(17)(4)(10)(5)(13)(13)(8)(1)(7)(6)(8)(9)(6)(7)(6)(1)(2)(3)【网站】开发与维护好一个Online Judge需要学习哪些知识?_科技_易房网
开发与维护好一个Online Judge需要学习哪些知识?
作者:admin
学校judge组要招人啦。 本人软工大二现在只学过了数据库,其他和网站有关的基本一无所知。现在维护judge的都是大三大四的学长。 下学期空闲时间比较多。想进行judge的维护和开发,
学校judge组要招人啦。 本人软工大二现在只学过了数据库,其他和网站有关的基本一无所知。现在维护judge的都是大三大四的学长。 下学期空闲时间比较多。想进行judge的维护和开发,那需要学习哪些知识,怎么有效的提高自己。 ps:judge组人少需要比较全面的人才。易房网小编为您精选了网友的解决办法,供您参考-----------------------------------------------------网友回答:
易房网小编为您精选了网友的解决办法,供您参考-----------------------------------------------------网友回答:
谢学弟邀。这个问题必有阴谋。昨天刚在群里吼了一下,2015 OJ开发组招人,今天就有了这么一个问题,并且还邀请了我。不论出于什么目的,既然问了,就得好好回答一下。其实一个OJ开发组和学校里其他的技术性社团没有什么太大区别,也高端不到哪里去。有区别,也就在于,我们开发的东西,不像所谓的课设一般,最终是要上线让用户使用的。在OJ组做的东西,是真的像是一个产品,从需求的调研到设计,开发,测试,部署,上线,直到面对用户的吐槽,然后修改,维护。我想谈点虚的。那就是热情,或者说是兴趣。不知道题主想加入OJ开发组的目的是什么?是觉得那里的学长都好牛,想进去让自己也变得很牛?这样的想法很正常,也很值得推荐。与比自己牛的高手交流,才能更快的成长。但是不得不泼一盆冷水,你真的对技术有热情吗?在大学里见识了太多向我咨询,交流,企图在技术上有所成就,因为缺乏真正的热情,最终无所成的人了。没有热情,就算在一个牛逼团队里,最终也只能沦为看客。2014年初,计划开发新版的Online Judge。我作为Team的Leader,带领几个核心开发人员,从2月26日开学,正式开始开发工作,到4月7日,清明假期结束,正式上线。几乎每天早上8点多到活动室,晚上10点左右回宿舍,不分平时还是周末,除去中间去上课的时间,其他的时间都泡在这上面了。清明节假期前一天,进行黑客马拉松,持续coding到凌晨,完成最终Judge的各种细节。清明假期期间,进行测试和服务器部署工作。假期结束前,最终上线。其中,来说说
的事情。因为时间关系,不能把原来的判题部分也给重构掉。所以只能暂时先继续使用原有的程序。但是原有的程序,是一个学长写的,8000行Java代码,没有文档,没有注释,各种高大上的设计模式,基于socket编程,自定义的通信协议。为了能和原来的程序通信,只能硬生生的看这么头疼的代码,不停的调试、运行,解析协议,最终搞定这个东西。再说说我自己,明明4月12号要考雅思。但是一直为了这个平台搞到了4月7号最终上线。搞得自己的雅思考的是一塌糊涂。你说我们这么拼是为了什么?钱?没有。表扬?得不到任何学院或者老师的表彰。最终能得到啥?只有产品最终上线的成就感。但,这就够了。你说,如果没有热情,如何推动团队的前进?谈完WHY的问题,再来说说HOW。当你和学长们交流的时候,当听到Python、Django、Celery、Git、Redis、RabbitMQ、Nginx等之前没有听说过的名词的时候,你是直接忽略,还是自己回去好好查一查资料,理解一下这些东西的作用,并向学长请教呢?既然题目里提到了如何有效提高自己,那就再说说。就两个字:学、问。遇到不懂的东西,自己去学,去看,看文档,看书;实在不理解,问学长们。搞技术的,大多都是乐于分享的。所以遇到问题,不要害羞,尽管去问。上个月得到一个学妹对我的印象是『高冷大神,不敢接近的学长,讲话有点严肃呢』(已哭瞎)。我只是和不熟的人不大乐意说话罢了,怎么就变得高冷了。根据我长期的观察,搞技术的人,其实大多都比较逗逼,所以尽管放心,不要被外表蒙蔽,有问题尽管去问,混熟了自然会发现其逗逼的一面。当谈到上面这些听起来高大上的东西的时候,是不是觉得,我靠,好牛逼啊,好难啊。给题主打一剂强心针,明确的说,一个合格的本科生,完全是有能力写一个Online Judge这种网站,而且难度确实不大。尽管用到了这么多高大上的东西,但是实际上,很多都只需要最简单,最基础的功能就可以了。学习成本并没有想象中的那么高。比如使用Redis,对于Online Judge这种小网站,单个实例就足够了,不需要考虑什么主从的问题,不需要考虑扩容的问题,不需要考虑集群的问题。所以不要把事情想的太复杂。再来透露一个事实。在上面的Online Judge正式开发之前,整个团队里,正儿八经学过Python的只有我一个,就我还是处于写写简单爬虫的水平。团队成员的实际的项目经验都是只有课设的水平,基本算是零。Django啊,Celery啊什么的,全部都是现学现卖的。既然题主提到需要学习哪些知识,就简单的介绍一下吧,各个团队的选择都不一样。一个典型的Web开发配置就是前端+后端+运维。鉴于这种小团队,大家基本上都是多功能兼职。我们团队里,比如我是后端兼职运维, @Comzyh 是前后端一起搞, @zheng yang 是专职前端。前端无非就是HTML+CSS+JS。后端选择就多了。Python、Ruby、PHP、Go、Java、C#等等,选择太多了。根据团队的实际情况选择吧。我们团队选择的是Python,使用Django Web框架。数据库是MySQL,尝试搭配了少量的Redis和Memcache。运维工作就比较繁琐了。你得会装Linux系统,得会配置Nginx、Supervisor,各种用到的工具的安装配置,网络配置,SSH配置,VPN配置等等。要看大量的文档,踩各种坑。还有一个比较特殊的工作。就是判题核心的开发,也就是最最核心的沙盒。这个得对Linux的系统调用和机制比较熟悉。虽然现在网上也有不少开源的实现可以参考。还有通用性质的核心课程。比如操作系统,基本的进程线程什么的总得知道吧;比如计算机网络,TCP/IP得稍微了解些吧,搞Web开发,HTTP总得熟悉熟悉吧。嗯,先扯到这里吧。
易房网小编为您精选了网友的解决办法,供您参考-----------------------------------------------------网友回答:
谢 @江以臣邀先把我们的Judge贴出来 首页 - NJUST OnlineJudge,感觉做的大概是国内平均水平,也有一些自己的特色。记得我之前写过一个答案在大学时你对编程付出了多大努力? - 用户的回答 里面有提到 @江以臣所说的清明节黑客马拉松。其实我进入ACM集训队来一直对加入Judge组感兴趣,但我记得我没有和任何人说过。13年末,教练突然就把我给拉进Judge组了。我挺意外的,也挺开心。要说为什么,我觉得可能是我在内部论坛Judge建议和反馈模块发了很多帖子?然后就司马昭之心了?学弟如果感兴趣可以多去找找bug,没准哪天就被拉进去了。首先来支持一下“兴趣”。我记得我刚刚注册的时候,签名是“对计算机相关专业有广泛的兴趣”,后来觉得这个签名似乎有点装逼,于是改成了这个签名。我觉的,作为一个学生,搞这些没有经济回报的项目,激励你做下去的原因无非三点,一是提高自己的技术实力,二是责任心,三是兴趣。其中,兴趣非常的重要。在Judge 开发组这样的小团队中,分工肯定不能像大公司那么明确,要求基本每个人都能够打全栈。一个人能够打全栈,靠的是平常的积累,平常的积累就特别需要有兴趣。比如你看到了别人的网站上实现了一个特别酷炫的效果,你会不会好奇它是如何实现的?然后按下F12对着网页分析半小时。当然,在此之前,你要知道要按F12,而这可能来自于你某一次想要修改网页内容伪造截图给人看啥的。第二点,要搞。我在这次Judge开发中前端后端一起搞。这部分只说为什么我会去打前端。13年暑假的时候, @黄莘有一个查看别人过掉的题自己有没有过掉的需求,正巧我也有,遂决定搞(参见CheckAC 在Chrome WebStore 上架),于是我们搞了一个Chrome插件。在此之前我的前端是“网页制作”的水平,布局知道要用div不要用table却不知道为什么,大学加了个社团搞网页一开始依然用table,css选择器 知道id,知道:hover,连class都不知道。知道ul不知道dl。JS只会抄,顶多改个getElementById里的id;连有没有var 有啥区别都不知道,更别提闭包了,哦对,唯一会写的事件是onclick,还不会用匿名函数。因为毕竟之前并没有做过很多网页,水平就这样。如果你有闲工夫去看我在CheckAC里的JS的话,你会看到整个代码风格的变化。一开始用C++的方式写JS,所有函数全部命名,然后有些函数是在太小了,而且就一个函数调用它,感觉是不是可以简单一些?遂知道了一个东西叫匿名函数,于是就去找 @zheng yang 吹JavaScript如何叼,有匿名函数这种逆天的特性。这个插件要抓远程的数据来分析,网上搜到啥用啥,至今代码里还是裸用XMLHttpRequest,因为写这段代码的时候jQuery只听过名字。然后第二天在集训休息的时间,我去W3School上看了jQuery。jQuery 能用几行代批量创建一堆元素,并且能让它们按顺序淡入淡出的时候,我简直惊呆了,然后就去找 @zheng yang 吹,说jQuery 如何如何叼。再之后有要存储信息的需求,一开始只是简单信息,随后信息变为有结构的复杂信息了,Google之,搜到名词JSON。看了阮一峰的博客,感觉又惊呆了,JavaScript支持这玩意,完全不用自己手写嘛。(顺便知道了“序列化”)这个词。然后页面太难看,遂抄袭印象笔记剪藏,CSS一股脑抄上去,然后删删删。一天后直接Google“前端框架”,找到BootStrap 又是叼叼叼。 上面说的这么多没用的,其实就是要说一点,有需求,大干快上,在搞的过程中,能学到很多东西。上面说的那些东西,都有详细的入门教程,可以去看看。学的都是很快的,如果看不下去,必须反思一下自己有什么问题。另外一个,就是我经常开玩笑的“天下代码一大抄”,代码抄过来能用就可以着手改了。第三点,学而不思则罔,思而不学则殆代码不能闷头写不抬头看。我看到好多的同学,学会了最基本的东西之后,就真的大干快上了,比如前端全屏position:absolute,用以控制元素的位置。虽然说天下代码一大抄,但是抄完了能用了,你得看懂然后删删删啊,留着别人的CSS,最后自己的页面出现奇怪的样式。写代码得有一点审美或者洁癖,这样,当你感到自己的代码写的很丑的时候你就会去想找点框架或者自己造点轮子了。要不然到时候全是bug都不知道从何调起。不要只自己瞎想,多去Google一下解决方案,还要多对比一下,毕竟网上人的水平也良莠不齐,多看几个找个最适合的方案拿来用。————————————题目问的是哪些知识,我觉得其实重要的是上面说的虚的那些,而不是你现在有掌握了哪些知识。知识积累固然重要,但是就像 @江以臣所说的,我们在开始开发之前,也并没有什么水平。基本都是开发过程中学习的。HOW:具体到我们现在线上的这版Judge (NJUST_OnlineJudge_M6)编写语言是Python ,框架是Django 。配合的技术 @江以臣的答案里都有列举。不过作为一个网站的开发,无论采用什么语言,必须对HTTP有基本的了解。大概要知道从你在浏览器里输入一个网址到页面呈现在你面前,都经过了哪些步骤。知道的越清楚越好。没事可以按下F12看看Network 把里面的每一项都看懂。具体到Njust的Judge,我们需要自己维护几台实体服务器,对计算机网络也要有基本的了解。对Linux 操作系统也要有基本的了解。判题部分我没有参与编码,参考 @江以臣还有,项目是很多人一起写代码的,必须学会使用版本控制工具,具体到我们的Judge,必须学会Git。还有,大学里面学的那些核心课程,都是很有用的,不管考得好不好,上课听不听,也得吧里面讲的东西尽量搞清楚。其实HOW 里面的东西都不重要,上面那些虚的才是最重要的,作为一个学生,只要学得快,HOW是问题吗?如果那些虚的里面全都做不到,那么就从搞开始,随便搞点什么,建个个人博客啦,写个Python爬虫啦之类的。有什么意见提出我继续补充,先写到这里。
易房网小编为您精选了网友的解决办法,供您参考-----------------------------------------------------网友回答:
在扯之前我先来宣传一下我们学校的oj. Github: /ZJGSU-Open-Source/GoOnlineJudge.git 已经在http://acm.跑了快半年了。 我也算是参与过这个oj的开发,虽然贡献不多。现在版本基本已经稳定下来了。主要是@姜冲 (/sakeven)在维护。我们学校最早的时候用的是poj免费版,后来迁移到了hustoj。但是当时用的是hustoj相当早期的版本,bug很多。虽然说名义上有人在维护,但是实际上就是个烂摊子。bug很多但是根本没人修。所以后来就有了重新造轮子的想法。现在在跑的这个oj,后端用的是go,数据库是MongoDB,前端一开始扒的PAT的css,后来改成bootstrap造的material design的轮子。后端一开始用的是go原生的http包,后来为了RESTful api,@姜冲 用go重新造了一个后端的轮子。其实技术细节并不重要。我只是想谈点技术之外或许有些偏题的东西。现在国内有很多oj其实一开始都是acmer做毕设搞的原型。poj是这样,我们学校的也是如此。从技术上来说,造一个oj出来并不难。更重要的,还是oj里面的题目的质量。毕竟oj做出来是要用的嘛。要是没题目,或者是题目质量上不去,比如充斥着水题,或者是测试数据不够强,其实都是没啥意思的一件事。当然了,题目这个事,不是一天两天,一两个人就能搞定的事了。(这一段或许有些off topic了)先扯到这。
易房网小编为您精选了网友的解决办法,供您参考-----------------------------------------------------网友回答:
开发的都说的差不多了,说下维护。要时不时想着备份下数据,升级下系统,清理一下日志。还要经常看看新加的题目有没有0AC的情况,有的话需要查查数据,有问题及时修补和重判。如有可能,让系统支持freeproblemset的导入导出,方便跟其他系统交流题目。(夹带私货了,轻喷)对于由学生维护的系统,要在毕业前找好接班人,要在硬盘挂点前申请到新的服务器,以免人去楼空,推倒重来。竞赛队的训练系统和日常教学的系统分开,对于没有足够题源的学校,竞赛训练可能vjudge更适合。刷oj,高端算法牛写oj,中端应用狗跑oj,运维矮矬穷
易房网小编为您精选了网友的解决办法,供您参考-----------------------------------------------------网友回答:
前些日子尝试着写了个ojweb部分node.js,express数据库mongodb前端bootstrapjudge部分node.js作为框架,负责与web通信及编译,之后调用c艹写exe进行judge总之我来简单说一下我的经验及看法吧oj这个东西,虽然有些特殊,不过仍旧是一个网站。于是搞网站的一套不可少一门web开发语言数据库css,javascript等前端知识用这些写好web部分,用户,论坛,排名,比赛等等接着便是judge这个特殊的部分开发judge评测需要了解相关平台(win/linux)的一些细节拿windows来说,创建进程,stdio重定向,安全问题等等主要是安全略麻烦,在win下我使用了hook干掉了一些危险函数。当然最好是用linux,权限控制方便太多。judge还要和web通信,根据使用需要选择合适的方法上面说了这么多,不过实现起来还是不难的,一个简单oj的话,一个人一两个月基本能鼓捣的出来
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将
追究责任;3.作者投稿可能会经我们编辑修改或补充。
印度计划在印巴边界设激光墙 用于防止恐怖袭击
女子陈述被拐卖后的性奴生活:曾一天接客120人
吉林延吉:白丰社区认真开展反宣清缴工作
吉林延吉:民旺社区开展新增低保入户调查工作
连云港:323省道白塔收费站 冬日里坚持爱心送暖
江苏省泗洪县半城镇违法乱象久查无果
老人携黄碟乘车被拘 收藏数百张闲暇时竟经常观看
棉花糖拌炸酱面
惊现韩国中餐馆味道残暴吃货看哭
友情链接、商务合作QQ:

我要回帖

更多关于 uva online judge 的文章

 

随机推荐