我只是个在校的 ACMer - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
takeoffyoung
V2EX    Linux

我只是个在校的 ACMer

  •  2
     
  •   takeoffyoung 2015-11-28 16:39:36 +08:00 6454 次点击
    这是一个创建于 3679 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今年的 ACM 比赛打完, 后面在校的半年多时间就是学学计算机基础知识。(因为自己是管理学科本科)然后希望能构建一个 Online Judge 系统,一方面练手增加一点项目经验,一方面方便后面学弟学妹的训练。
    因为写程序也两年了,主要以算法题目代码为主,自己做玩具做过 python 的入门爬虫, php 套 CI 和 ThinkPHP 框架搭过简单的站。累计有近二十万行代码量吧(都是题目代码,对工程理解还很浅薄)。现在做 OJ 的话,有一个大体模糊的思路,但是从哪里入手还没有头绪。
    计划用 Linux 平台,手头已经有学校给的服务器,性能带宽应该问题不大。
    希望有这方面经验或者有相同兴趣的 V 友可以给出一点指导,交流学习。

    联系方式:
    [email protected]

    61 条回复    2015-12-02 07:58:59 +08:00
    karia
        1
    karia  
       2015-11-28 16:49:12 +08:00 via Android
    可以可以,坑学弟学妹新方法
    不管怎么样,别让他们养成熬夜写代码的习惯。。,
    MrEggNoodle
        2
    MrEggNoodle  
       2015-11-28 16:57:28 +08:00
    @karia 好人。也支持你的看法。
    Hello1995
        3
    Hello1995  
       2015-11-28 17:04:41 +08:00 via Android
    先把别人开源的 OJ 源码看一遍
    873681136
        4
    873681136  
       2015-11-28 17:06:26 +08:00
    先实现后端再实现前端,我目前也在做。
    wy315700
        5
    wy315700  
       2015-11-28 17:07:43 +08:00
    https://github.com/wy315700/ecustoj
    我们学校的 OJ 系统,不过最近荒废了
    donge
        6
    donge  
       2015-11-28 17:23:30 +08:00
    新做的话,必须要时髦的技术,前端就不说了,至少可以做到 coding.net 那么花哨的 ide 。后端的代码编译,运行,测试可以在 container 中进行性能统计。限制container 的 cpu/内存,这样能比较准确的进行横向对比。还有,不建议自己搭建服务器,时间都浪费在装系统,软件库依赖上了。不如花点时间研究一下 aws ,有个分布式,可扩展系统的想法基础。虽然在校生不太容易理解真正的大型系统,不过也可以启蒙一下。
    xmoiduts
        7
    xmoiduts  
       2015-11-28 17:32:39 +08:00
    看到楼主才知道我自己是多么的荒废时间,虽然报了个计算机专业,可是一点名堂都没玩出来,小飞机(软件)倒是搭了好几个;移植别人的成品代码,一天了也没达到预想的效果。身边的人说我 i “东一耙子西一扫帚”,我觉得有些道理,可是并不能自我规划,并持之以恒。总之祝楼主成功。
    Changxu
        8
    Changxu  
       2015-11-28 17:39:15 +08:00
    Web 系统很简单,难在 judge 上,唯一难的问题是如何保证安全性
    virusdefender
        9
    virusdefender  
       2015-11-28 17:49:13 +08:00
    别造轮子了,我们来一起完善吧

    https://github.com/QingdaoU/OnlineJudge

    刚刚我还在写这个系统的代码, rpc 通信的~
    htfy96
        10
    htfy96  
       2015-11-28 17:57:08 +08:00
    r#6 @donge
    container 太重了,不适合 OJ
    建议上个 AppArmor+ulimit
    Marfal
        11
    Marfal  
       2015-11-28 17:57:33 +08:00
    @wy315700 皇家理工校友昵嚎!
    LukeXuan
        12
    LukeXuan  
       2015-11-28 18:02:33 +08:00
    vijos 现在在开发 vj4 ,有没有兴趣来合作呢, py3.5-tornado
    wph95
        13
    wph95  
       2015-11-28 18:29:28 +08:00
    @LukeXuan openvj 会咋么办 233
    wy315700
        14
    wy315700  
       2015-11-28 18:33:33 +08:00
    @a33004407 啥皇家理工。。。。


    @htfy96 用 Ptrace 最好了
    LukeXuan
        15
    LukeXuan  
       2015-11-28 18:35:54 +08:00 via Android
    @wph95 主开发人员怠工 剩下的人开始跳版本号了 XD
    wph95
        16
    wph95  
       2015-11-28 18:36:01 +08:00
    @wy315700 Ptrace 评测性能损耗太大,评测量小没关系。量大就崩了
    wph95
        17
    wph95  
       2015-11-28 18:37:26 +08:00
    @LukeXuan 666 同病相怜, 年初听到 n 手消息 vijos 要上新版本... 你们换 python 了 ?
    LukeXuan
        18
    LukeXuan  
       2015-11-28 18:39:36 +08:00 via Android
    @wph95 因为 vj4 的主开发者比较擅长 py 然后我们开始学 XD
    wph95
        19
    wph95  
       2015-11-28 18:41:37 +08:00
    @LukeXuan 我是你们隔壁那个著名跳票 oj CodeVS 的 一直想和你们聊聊 大雾 -。-
    wph95
        20
    wph95  
       2015-11-28 18:47:12 +08:00   1
    因为写程序也两年了,主要以算法题目代码为主,自己做玩具做过 python 的入门爬虫, php 套 CI 和 ThinkPHP 框架搭过简单的站。累计有近二十万行代码量吧(都是题目代码,对工程理解还很浅薄)
    > 那就 PHP 走下去呗, thinkphp 就算了 起码 laravel 走起吧 , 个人推荐用 Python ( Django ) or RoR

    现在做 OJ 的话,有一个大体模糊的思路,但是从哪里入手还没有头绪。
    > 。。。 前端 -> 后端 - > 评测 只有这个套路 , 自己选个入坑

    计划用 Linux 平台,手头已经有学校给的服务器,性能带宽应该问题不大。
    > 选择 win 的话我选择死亡。用学校给的服务器。。。 还不如换点经费上 ucloud 什么的。

    OJ 是个深坑,但也是绝佳的一个练手项目,。

    // coding.net 用的 ide 应该是 ace editor , 我自己用的是 CodeMirror
    LukeXuan
        21
    LukeXuan  
       2015-11-28 18:51:31 +08:00 via Android
    @wph95 我不是主开发者 XD
    comzyh
        22
    comzyh  
       2015-11-28 18:54:56 +08:00
    @virusdefender 你们域名没有查到备案信息啊

    我们有自己的服务器但是域名没备案就一直没敢接入
    Marfal
        23
    Marfal  
       2015-11-28 18:59:15 +08:00
    @wy315700 伊卡斯特皇家理工学院,简称 ecust -_-
    wy315700
        24
    wy315700  
       2015-11-28 19:00:29 +08:00
    @a33004407

    原来还有这称呼,,惭愧了。。
    bdbai
        25
    bdbai  
       2015-11-28 19:03:17 +08:00 via iPhone
    如果有像 LeetCode 那样的讨论区就好了。
    ----
    看到标题我想起了《 Englishman in New York 》这首歌。
    Kilerd
        26
    Kilerd  
       2015-11-28 20:03:13 +08:00
    > 累计有近二十万行代码量吧

    外个楼,到底你们是怎么统计自己写了多少代码的?吹出来的? 还是说数量级相同。写了差不多 1W ,就说写了几 W 或者几十 W 。

    像我这种不务正业,一直在同一个项目里面重构来重构去的写来写去都是那几行代码。

    面试的时候,就说,我半年来共写了几十行代码,呵呵哒。

    BTW , 重构的感觉是很爽的, webpy 到 flask 再回到 webpy 再到 flask , 每一次写都是对代码的一次深刻理解。
    virusdefender
        27
    virusdefender  
       2015-11-28 20:07:07 +08:00 via Android
    @comzyh 用的 https ,然后阿里云就不会拦截了,虽然技术上仍然能获取域名。

    不过最近域名已经在备案了,还在走流程
    nolan1864
        28
    nolan1864  
       2015-11-28 20:53:57 +08:00
    楼主大几的?想交流下
    zjbztianya
        29
    zjbztianya  
       2015-11-28 20:57:10 +08:00
    @Kilerd 刷 2000 个题目 一个平均一百行就可以了 写图论和数据结构其实很轻松就超 100 行了 不过这两个有模板可用
    lynx
        30
    lynx  
       2015-11-28 21:02:16 +08:00
    vanxining
        31
    vanxining  
       2015-11-28 21:08:50 +08:00 via Android
    三年刷 2000 个题目?这是神不是人。
    所以楼主说的二十万行代码很令人怀疑。
    Kilerd
        32
    Kilerd  
       2015-11-28 21:27:01 +08:00
    @zjbztianya 我一直觉得 ACM 算的代码行数没有参考价值,题目质量才是参考的主要因素,说实话, ACM 的有些题目核心下来就是 2,3 行,其他都是为了输入输出做处理的。
    takeoffyoung
        33
    takeoffyoung  
    OP
       2015-11-28 21:31:35 +08:00
    @vanxining 哎呀,没有什么好怀疑啦,其实题目的代码不管多少意义都不大,头文件,宏,敲模板等等...所以看数量只是说我一直在训练,不是为了凸显多么认真。不用放心上啦
    takeoffyoung
        34
    takeoffyoung  
    OP
       2015-11-28 21:32:48 +08:00
    @wy315700 代码我会研究的,先看下 HUSTOJ 的,这个开源 OJ 流传非常广泛啦,慢慢学习
    takeoffyoung
        35
    takeoffyoung  
    OP
       2015-11-28 21:39:46 +08:00
    @donge 嗯,我会认真学习您所讲。因为将来工作意向是 linux 后端,所以学一些服务器的维护知识也是很必要的。
    takeoffyoung
        36
    takeoffyoung  
    OP
       2015-11-28 21:40:22 +08:00
    @xmoiduts 共勉
    takeoffyoung
        37
    takeoffyoung  
    OP
       2015-11-28 21:41:50 +08:00
    @virusdefender 嗯,感觉很厉害,可以留个联系方式,方便探讨么?
    takeoffyoung
        38
    takeoffyoung  
    OP
       2015-11-28 21:44:39 +08:00
    @wy315700 HUSTOJ 用的就是 ptrace ,而且还有很多功能,比较值得借鉴
    zjbztianya
        39
    zjbztianya  
       2015-11-28 21:44:49 +08:00
    @Kilerd 思路其实是最重要的
    takeoffyoung
        40
    takeoffyoung  
    OP
       2015-11-28 21:48:02 +08:00
    @Kilerd 哈哈,其实做算法竞赛,代码量都是哄自己开心,让自己觉得没有虚度光阴的。这个不是考虑的重点,也没吹,旨在表明自己这两年没有闲着,都在写。
    takeoffyoung
        41
    takeoffyoung  
    OP
       2015-11-28 21:49:55 +08:00
    @nolan1864 大三了,题中有邮箱,欢迎交流
    ppdg
        42
    ppdg  
       2015-11-28 21:51:16 +08:00   1
    慢慢你会发现这里坑很多,都是让考生各种充满恶意的玩法磨练出来的.= =!
    权限控制,内存限制等都需要仔细考虑.实现功能并不难,更多需要考虑的是健壮性.
    wph95
        43
    wph95  
       2015-11-28 21:55:11 +08:00
    @vanxining
    1 年 = 2000 / 3 = 600 不过是中等选手的训练量
    1 年 做题量破 1000 的大有人在
    SCaffrey
        44
    SCaffrey  
       2015-11-28 22:32:50 +08:00
    @vanxining 3 年 2000 已经比较少了。。。不过题数对大多数人(比如我)都是没有卵用的。。。
    Kilerd
        45
    Kilerd  
       2015-11-28 22:51:25 +08:00
    @wph95 每天 3 题在我们这里,如果是认真做题的人来说算少了。

    可惜我不玩 ACM ,我只是有空就刷刷 Leetcode 而已
    Kilerd
        46
    Kilerd  
       2015-11-28 22:51:53 +08:00
    @takeoffyoung 个人感觉都大三了,对工程的了解还不够,真的不行。
    comzyh
        47
    comzyh  
       2015-11-28 22:59:35 +08:00
    @virusdefender 谢谢
    我们也在考虑备案,你们准备走个人名义还是学校名义?
    wy315700
        48
    wy315700  
       2015-11-28 23:01:45 +08:00   1
    @SCaffrey 看怎么做了,如果每道题都是认真仔细思考的,会发现对思维能力有极大帮助,如果只是背算法,抄模板,是没有用的
    shiltian
        49
    shiltian  
       2015-11-28 23:11:23 +08:00
    水一个,管科学生做 ACM ,很厉害哎!
    wph95
        50
    wph95  
       2015-11-28 23:11:48 +08:00   1
    @Kilerd
    同有空刷 LeetCode
    只是前 oier ,大学 ACM 也不太了解, 当初就是感觉 工程和 ACM 差太远, 大学没去弄 ACM 。
    virusdefender
        51
    virusdefender  
       2015-11-28 23:16:10 +08:00
    @comzyh 个人名义
    takeoffyoung
        52
    takeoffyoung  
    OP
       2015-11-28 23:22:54 +08:00
    @Kilerd 嗯,确实挺弱的。因为自己本来是管理学科,没有这方面的课程。可能自己课余真的花时间去认真学习计科基础知识的时间不多。也没有完整的做过项目,还有很大的提升空间。
    Kilerd
        53
    Kilerd  
       2015-11-28 23:36:10 +08:00
    @takeoffyoung 不是科班的学生,那你可能真的走错路了。

    非科班去搞 ACM 是没有什么意义的,还不如把计算机组成原理和数据结构学透就足够了。
    太过于注重 ACM ,说句实话,除非很有天分,不如很难出成绩。
    takeoffyoung
        54
    takeoffyoung  
    OP
       2015-11-28 23:48:26 +08:00
    @Kilerd 嗯,目前没出什么成绩,只能搞搞银牌,感觉计科讲的数据结构对我难度不是太大。计算机组成没去蹭过课,不过 linux 跟计算机网络还行,去考试的话不知道,但是应用还会一点点。感觉在大学什么专业,不影响兴趣发展呀。
    beneo
        55
    beneo  
       2015-11-29 01:41:20 +08:00
    ACM 刷完,进不了校队的话,去刷 TopCoder ,刷刷 dev
    kjreen
        56
    kjreen  
       2015-11-29 02:52:38 +08:00
    刚看这个标题吓了一跳,以为楼主想干什么
    nolan1864
        57
    nolan1864  
       2015-11-29 09:46:39 +08:00
    @Kilerd 我觉得楼主的银牌已经很不错了
    ixiaozhi
        58
    ixiaozhi  
       2015-11-30 10:31:40 +08:00
    每个 ACMer 都会想再造个 oj 轮子,不知道是个什么鬼心态
    takeoffyoung
        59
    takeoffyoung  
    OP
       2015-11-30 11:01:09 +08:00
    @ixiaozhi 可能是因为斯德哥尔摩效应。毕竟天天被虐
    ixiaozhi
        60
    ixiaozhi  
       2015-11-30 11:09:05 +08:00
    @takeoffyoung 已经见过几个人造 oj 的轮子了 然并卵。。。
    xiqingongzi
        61
    xiqingongzi  
       2015-12-02 07:58:59 +08:00
    记得华科有个。可以参考下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1181 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 17:40 PVG 01:40 LAX 09:40 JFK 12:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86