Show newer

跑了一下 openharmony v1.1.1 LTS 的编译

编译是这样的:

$ hb set
# 然后让你选择一个目标
$ hb build
# 就开始了

我要自己跑编译的原因是,内核子系统但看 Makefile 根本看不出来是怎么编译那玩意,更别说看代码了。

然后就是能不能 cd 进 kernel/liteos_a 进去 make?不能,里面还有 BUILD.gn 等东西,都试了,不知道怎么跑的那玩意。

结论:
我根本不配研究这玩意。

虚拟机和源码都删了

js 书过了一遍,然后得干一个项目往简历上写(淦

@mashiro 我现在知道了,是 ubuntu 的 cache 实在是太多了,我查询语句写的有问题

无能而怒 

全院暴毙!随便做了几个题,真的,我他妈学了个锤子!我他妈学了个锤子!我他妈学了个锤子!实习你妈逼,找你妈逼里的工作,安你妈逼了个排!

垃圾 prettier 没法自定义 CSS 格式
大括号换行行不行,妈的

反正就是警告 

msvc是什么垃圾

吐槽 java 生态 

我今天用了 JOOQ,看了下 Hibernate 和 EBean 的例子,还是默默用了最讨厌的 MyBeatis。
Java 众是不是对 ORM 有什么误解?Java 的 ORM 都是垃圾
就不能出一个像 SQLAlchemy 那样的 ORM?
还有 JPA 是什么脑瘫设计?为什么非得让实体必须有一个 id?

GitHubDaily  

推荐一款比较实用的互联网资源存档工具:ArchiveBox,可离线保存你浏览过网页内容,其中包括 HTML 页面、PDF 文件、图像视频等内容。

其中较为强大的部分,是开发者可通过命令行工具,自定义网站的提取内容以及输出格式,并在后期通过 ArchiveBox 提供的可视化界面管理离线内容,操作轻松便捷。

如果担心数据的安全性及私密性,亦可选择自行托管服务器。ArchiveBox 支持 Windows、Linux、macOS 等主流操作系统,拥有多种不同方式的安装方式。

GitHub:github.com/ArchiveBox/ArchiveBox

:icon_weibo: weibo.com/5722964389/KnLSRd95c

航天投资控股的破事警告 

😅

后来据王晋年院士回忆,在被打期间,他隐约记得张陶一直在叫嚷“老子就是要当、老子有花不完的钱、老子就是要打死你......”

mp.weixin.qq.com/s/cvjmypNEO3N

为了方便本科生撰写小型论文或实践报告,浙大一名学生在 GitHub 开源了一个仿 LaTeX 主题:Typora LaTeX theme。

让创作者能更注重于内容输出,而非样式排版。在书写时,凭借简单标记,并替换样例模板中的个人信息,便可输出媲美卷王由 LaTeX 排版的精美论文与报告。

GitHub:github.com/Keldos-Li/typora-latex-theme

:icon_weibo: weibo.com/5722964389/KnrwPefEv

说出来你可能不信,我昨晚梦到紫老太婆了

多项式解析

#include <cstdlib>
#include <ctype.h>
#include <stdio.h>
#include <sstream>
#include <vector>

// 项
struct term
{
    int mul;
    int exp;
};

// 多项式
typedef std::vector<term> poly;

enum poly_parse_state
{
    ppoly_init, // 初始状态
    ppoly_mul,  // 系数
    ppoly_var,  // 变量
    ppoly_exp,  // 指数
    ppoly_tem,  // 产生一个项
    ppoly_suc,  // 产生一个多项式
    ppoly_err   // 错误
};

// 状态转移
#define transfer_state(s) {state = s; continue;}

// 解析多项式
poly parse_poly(std::string polystr)
{
    std::istringstream is(polystr);
    std::string buff;
    term t{.mul = 0, .exp = 0};
    poly p;

    int state = ppoly_init;
    while(1)
    switch(state)
    {
        case ppoly_init:
        {
            int ch = is.get();

            if(isdigit(ch))
            {
                buff.push_back(ch);
                transfer_state(ppoly_mul);
            }

            if(isalpha(ch))
            {
                t.mul = 1;
                transfer_state(ppoly_var);
            }

            if(ch == EOF)
            {
                transfer_state(ppoly_suc);
            }
            
            transfer_state(ppoly_err);
        }
        case ppoly_mul:
        {
            int ch = is.get();

            if(isdigit(ch))
            {
                buff.push_back(ch);
                transfer_state(ppoly_mul);
            }

            if(isalpha(ch))
            {
                t.mul = (int)strtol(buff.c_str(), NULL, 10);
                buff.clear();

                transfer_state(ppoly_var);
            }

            if(ch == '+')
            {
                t.mul = (int)strtol(buff.c_str(), NULL, 10);
                buff.clear();
                t.exp = 0;
                transfer_state(ppoly_tem);
            }

            if(ch == EOF)
            {
                t.mul = (int)strtol(buff.c_str(), NULL, 10);
                t.exp = 0;
                buff.clear();
                transfer_state(ppoly_tem);
            }
        }
        case ppoly_var:
        {
            int ch = is.get();

            if(ch == '^')
            {
                transfer_state(ppoly_exp);
            }

            if(ch == '+')
            {
                t.exp = 1;
                transfer_state(ppoly_tem);
            }

            if(ch == EOF)
            {
                t.exp = 1;
                transfer_state(ppoly_tem);
            }
        }
        case ppoly_exp:
        {
            int ch = is.get();

            if(isdigit(ch))
            {
                buff.push_back(ch);
                transfer_state(ppoly_exp);
            }

            if(ch == '+')
            {
                t.exp = (int)strtol(buff.c_str(), NULL, 10);
                buff.clear();
                transfer_state(ppoly_tem);
            }

            if(ch == EOF)
            {
                t.exp = (int)strtol(buff.c_str(), NULL, 10);
                buff.clear();
                transfer_state(ppoly_tem);
            }
        }
        case ppoly_tem:
        {
            p.push_back(t);
            transfer_state(ppoly_init);
        }
        case ppoly_suc:
        {
            return p;
        }
        case ppoly_err:
        {
            fprintf(stderr, "poly parse error\n");
            p.clear();
            return p;
        }
    }
}

// 输出多项式
void print_poly(poly p)
{
    for(term t : p)
    {
        printf("%d * x ^ %d\n", t.mul, t.exp);
    }
}

// 多项式测试
void poly_test(std::string name, std::string s)
{
    printf("test [%s] | input: %s\n-----\n", name.c_str(), s.c_str());
    print_poly(parse_poly(s));
    puts("");
}

int main()
{
    poly_test("pure mul", "2");
    poly_test("pure exp", "x^2");
    poly_test("pure var", "x");

    poly_test("mul & var", "2x");
    poly_test("mul & exp", "2x^2");

    poly_test("poly", "x^2+2x+2");

    return 0;
}

反正就是警告 

以此来时刻提醒自己,人贵有自知之明,不可自视清高。

GitHub 上一款开源的语音聊天软件:mumble,具备低延迟、通信质量高、安全私密性强等特点,适合用于通话或游戏交流。

该软件服务器端与客户端源码均已开源,用户可自行托管到自己服务器,客户端支持 Windows、Linux、FreeBSD、macOS 等主流操作系统。

官网: 网页链接

GitHub:github.com/mumble-voip/mumble

:icon_weibo: weibo.com/5722964389/KmnsYvvmB

内容十分幼稚 

也许只要我没有爱好,没有追求,就不会有苦恼了。
或者怪就怪我不像正常人一样逃课,理解他们的黑话,最大限度的不守规矩,老实人必死,我就不是正常,完整的人,也注定了我永远也长不大,自从我从小逃避人群开始。
我对大人的世界不感兴趣,可是整个世界都是大人的世界。

我可能从来没有过属于我自己的时间

Show older
小森林

每个人都有属于自己的一片森林,也许我们从来不曾走过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。愿这里,成为属于你的小森林。