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

我只是个在校的 ACMer

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

    今年的 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 看怎么做了,如果每道题都是认真仔细思考的,会发现对思维能力有极大帮助,如果只是背算法,抄模板,是没有用的
    tianshilei1992
        49
    tianshilei1992  
       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   ·   我们的愿景   ·   实用小工具   ·   3072 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 00:40 · PVG 08:40 · LAX 17:40 · JFK 20:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.