分类: 日记

  • 二六二七

    济南济南

    我抬眼是千佛山的轮廓
    我闭眼是大明湖和护城河
    趵突泉在我耳畔喷涌着

    上周末终于去济南啦!

    周日的早上坐上了去济南的高铁,感觉济南的人真的好多啊,路上好拥挤,比泰安的人多太多啦。第一天上午我们直接去了千佛山~

    爬完山,去买了点吃的,鲍师傅的马蹄爆爆珠和原味小贝,感觉原味小贝真的好好吃😍😍😍,这是刘兰婷的狗头

    下午看了密西西里的美丽传说,然后休息了会睡一觉打算晚上去吃大学生优惠的海底捞,结果我到了十二点我们去吃的时候发现关门了??呜呜居然有十二点关门的海底捞!然后我们就在路边买了点炸串吃,打算第二天下午再吃!

    周一我们骑着小单车把周围的景点全逛了一边,五龙潭的鱼真多啊

    然后是趵突泉,我还想喝趵突泉的直饮水,结果没有开放,好可惜。

    逛完趵突泉就差不多两点啦,可以去吃海底捞啦,上次刘兰婷来泰安就想吃了,结果晚上咱俩都不想出去了就没去成,这次终于吃到啦!

    吃完海底捞去大明湖走走消消食,散步坐着聊天也好舒适

    到了六点左右我就要回泰安了,期待下次见面啦

  • OJ评测机的实现

    很久之前接触到洛谷,pta,牛客,力扣的时候就想自己实现一个在线评测平台,如果不出意外,可能我的毕设会是一个基于容器的分布式在线评测系统。

    今天尝试一下做一个最简单的cpp评测机,使用 C# 做了简单的gcc脚本评测,当然这个简易的评测脚本只支持AC(通过),WA(错误),CE(编译失败)这三种状态。

    using System.Diagnostics;
    
    
    class Judger
    {
        static void Main(string[] args)
        {
            // 获取命令行参数
            string sourcePath = args[0]; // 源代码文件路径
            string inputPath = args[1]; // 测试数据输入路径
            string answerPath = args[2]; // 答案文件路径
    
            // 编译源代码文件
            string executablePath = sourcePath.Replace(".c", "");
            ProcessStartInfo psi = new ProcessStartInfo("g++", $"{sourcePath} -o {executablePath} -O2 -Wall -lm")
                {
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                    UseShellExecute = false
                };
    
            Process process = new Process();
            process.StartInfo = psi;
            process.Start();
    
            // 等待编译完成
            process.WaitForExit();
    
            // 如果编译失败,则输出错误信息
            if (process.ExitCode != 0)
            {
                Console.WriteLine("编译错误:");
                Console.WriteLine(process.StandardError.ReadToEnd());
                return;
            }
    
            // 读入测试数据和答案
            string inputData = File.ReadAllText(inputPath);
            string answer = File.ReadAllText(answerPath);
    
            // 运行程序
            psi = new ProcessStartInfo(executablePath)
            {
                RedirectStandardInput = true,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                UseShellExecute = false
            };
    
            process = new Process();
            process.StartInfo = psi;
            process.Start();
    
            // 向程序输入测试数据
            process.StandardInput.Write(inputData);
            process.StandardInput.Close();
    
            // 读取程序输出和错误信息
            string output = process.StandardOutput.ReadToEnd();
            string error = process.StandardError.ReadToEnd();
    
            // 等待程序退出
            process.WaitForExit();
    
            // 比较程序输出和答案
            Console.WriteLine(output.Trim() == answer.Trim() ? "AC" : "WA");
            // 输出程序错误信息
            if (error.Length > 0)
            {
                Console.WriteLine("Error:");
                Console.WriteLine(error);
            }
        }
    }
  • oi.ink 新域名

    今天在西部数码刷域名市场的时候看到了 oi.ink 有点心动就拿下啦。

    暂时不知道拿来干啥,但是oi双字母还有特殊含义感觉挺不错的,就是后缀 ink 的墨水意思不知道怎么和 oi 联系

  • 二维码的生成

    起源于今天早上的微信群,甲方的新需求。

    之前的二维码生成直接用了网上的接口,返回的是单个二维码图片,不能自定义,也不太安全,刚好借着这次的需求自己写一个二维码的生成和生成后对图片进行修改变成甲方希望的样式。

    def make_qrcode(eid: str):
        base = "xxx"
        temp = qrcode.make(base + eid)
        bg_img = Image.open(dirname(dirname(abspath(__file__))) + "/bg.jpg")
        temp.thumbnail((275, 275))
        bg_img.paste(temp, (25, 30))
        draw = ImageDraw(bg_img)
        ft = ImageFont.truetype(dirname(dirname(abspath(__file__))) + "/arialuni.ttf", 40)
        draw.text((330, 260), eid, 'white', font=ft)
        output_buffer = BytesIO()
        bg_img.save(output_buffer, format='png')
        byte_data = output_buffer.getvalue()
        # noinspection PyTypeChecker
        return io.BufferedReader(io.BytesIO(byte_data))

    先在原来make_qrcode基础上修改,之前只是调用了一个接口然后返回,这次是用qrcode库生成一个二维码图片的PIL.image对象,然后新建一个image对象读取背景模板,读取后将生成的二维码粘贴到模板上,并在新的图片上添加文字,最后转化成二进制数据返回。

    @app.get("/qrcode")
    async def qrcode(eid):
        return StreamingResponse(src.util.make_qrcode(eid), media_type="image/jpeg")
    

    然后搞了一个web api来调用二维码的生成~

  • 三月五六

    和刘兰婷的这两天,午饭果然还是高估了咱俩的饭量了,根本吃不完,呜呜

    今天早上回学校的路上想买花花送给刘兰婷结果没仔细看介绍,买成了康乃馨,而且不好看!

    周一的泰山西湖,人好少呀,这样的感觉挺好的,可以安安静静的找个地方坐着聊天~