duangsuse::Echo
718 subscribers
4.26K photos
130 videos
583 files
6.48K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
羽毛的小白板
博客园首页发现一篇奇怪的文章,然后发现这个人还真是脑洞清奇。所以说,奇怪的问题只因为奇怪的人用奇怪的方法产生出来 js.es5 map循环一大坑:循环遍历竟然出现逗号! https://www.cnblogs.com/soyxiaobi/p/9898762.html
现在看来其实也没有什么好奇怪的呢... 毕竟尤其是中国,开发者水平差异是巨大。而再重灾区一点的就是 web 前端... 因为他们真的是可以做到干一辈子前端当一辈子码农的 — 你可能看不到他们的技术较 n 年前有什么变化 — 可能都是差不多的,或者说他们对自己代码的「理解层次」根本不会有变化,都只知其一不知其二。
duangsuse::Echo
所以说啊成天写了那么多字在自己的频道上,如果哪天 Telegram 爆炸了,王八蛋 leader durov 跑路了,然后我的数据写了这么多个月的东西全部爆炸 lost 了我都可以进抢救室了... 还是备份一下吧 #telegram #emmm #life #tech
然后我回忆当时 @drakeet 删频道的时候我真的很惊讶啊,他闭源项目和博客也就算了因为数据没有丢失,但如果他没有备份而频道数据丢失了呢... 那自己这么多年积攒的广播都没有了... 他不会珍惜这些东西吗...
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse 不会 coroutine 呢... 其实我接触 #lua 也是很早之前(十几个月)的事情了,但当时 coro 对我来说只不过是技术名词而已。现在好像也是... 我只知道 Fiber 这种 coro...
#Threading in #Kotlin 的 coroutine 「Green Threads 绿色线程」 concept
C# FCL 线程池... QueueUserWorkItem...
Forwarded from duangsuse::Echo
正是因为知道的多,所以才知道自己的无知
真正有知识的人的成长过程,与麦穗的成长过程一样:

麦穗空的时候,麦子长得很快,麦穗骄傲地高高昂起;

但当麦穗成熟饱满时,它们开始谦虚地垂下麦芒。

正是因为能透过问题的表象看到本质、透过宏观看到微观,能站在比别人低、比别人靠近本质的地方观察,才能做到「知其变」,才能在技术更新越来越快,各色语法糖变化、语言特性换上新包装的时代里坚守自己永恒不变的真知「守其恒」

正是因为懂得多,看得细致、能够透过一行行 C# 代码看到生成的 IL、看到 JIT 编译出的机器代码,才可以发现底层以微粒子形式存在的数据竞争风险和值类型装箱操作的隐患,而不是等到程序已经公开部署、安全漏洞已经被大量利用才迟迟修复

只有肯沉下心来学习知识,才有可能从理解 -> 使用 -> 创造一步步走上去,只有有了更高层次的视角 才能解决别人“不能解决”“无从寻觅”的问题
duangsuse::Echo
我觉得这人(就这篇文章的各种例子而言)有点 low... 😶 有时候感觉知其然并且知其所以然是一种幸福,在别人都只看到表象的时候你能看到本质,所以你不会被各种清奇的问题迷惑也不会被花里胡哨的技巧蒙蔽双眼,总是选择最合适的,而这是只知道 how to 所不能做到的 看到这篇文章突然感觉 Ruby 之类掺了函数式理念的 OOP 真是对工业界帮助好大啊... 区区一个 block 表达能力和自然性(符合直觉、容易理解)吊炸天 别说现在 Enumerable 的集合处理方法了... 接受一个 lambda、block…
rt,这些「大道理」总结起来再修补一下就是这样 #life #tech #dev #statement

+ 正是因为知道的多,所以才知道自己的无知。
真正有知识的人的成长过程,与麦穗的成长过程一样:

麦穗空的时候,麦子长得很快,麦穗骄傲地高高昂起;

但当麦穗成熟饱满时,它们开始谦虚地垂下麦芒。

+ 正是因为能透过问题的表象看到本质、透过宏观看到微观,能站在比别人低、比别人靠近本质的地方观察,才能做到「知其变」,才能在技术更新越来越快,各色语法糖变化、语言特性换上新包装的时代里坚守自己永恒不变的真知「守其恒」

正是因为懂得多,看得细致、能够透过一行行 C# 代码看到生成的 IL、看到 JIT 编译出的机器代码,才可以发现底层以微粒子形式存在的数据竞争风险和值类型装箱操作的隐患,而不是等到程序已经公开部署、安全漏洞已经被大量利用才迟迟修复

只有肯沉下心来学习知识,才有可能从使用 -> 理解 -> 创造一步步走上去,只有有了更高层次的视角 才能解决别人“不能解决”“无从寻觅”的问题

+ 有时候感觉知其然并且知其所以然是一种幸福,在别人都只看到表象的时候你能看到本质,所以你不会被各种清奇的问题迷惑也不会被花里胡哨的技巧蒙蔽双眼,总是选择最合适的,而这是只知道 how to 所不能做到的

+ 奇怪的问题只因为奇怪的人用奇怪的方法产生出来

+ 进入互联网、移动互联网时代,软件开发方面的好书层出不穷,绝大部分是技术新、方法新。然而,本书很独特,其出版于 1995 年,至尽已有 20 余年,而其前身 The Little LISPer 更是出版于 1987 年,堪称”古董“!
为什么一本老书还有出版的必要?因为”经典“!因为其内容揭示了计算的一般本质,其价值历经时光的检验而含金量不减! — The Little Schemer 中文翻译译者序
比起这个还是写 C++/CMake 吧...

Win32 Native 应用程序比较难搞因为这里没部署 Windows 开发环境也很难部署... 除了 Wine...
Qt 可以考虑一下,正在尝试 Qt
实在不行可以上 C++/Rust Win32 bindings + Wine 测试

算法上主要考虑是一个很简单的算法,程序启动就创建悬浮窗和通知区域图标,点悬浮窗就弹出大号黑框显示被选项目,点通知区域图标就打开设置,允许设置弹窗背景和颜色、悬浮窗背景颜色、点名文件路径
默认文件 randomItems.txt 以系统默认的行结束符切分,如果一行长度为 0 或者全都是空格/Tab 就无视那行

考虑到最可能失败的情况是文件无法读取、文件是空白的,都弹出窗口提示错误
如果文件不存在,它提示是否创建文件,如果是,则创建此文件并在记事本里打开

其他错误都弹窗提示
#ifndef FLOAT_WIDGET_H
#define FLOAT_WIDGET_H

#include <QWidget>

#include <QMouseEvent>

#include <QPoint>
#include <QPixmap>

#include <QDesktopServices>
#include <QUrl>

class Widget : public QWidget
{
Q_OBJECT

public:
Widget(QWidget *parent = 0);
~Widget();

private:
QPoint relativePos;

protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
};

#endif // FLOAT_WIDGET_H

#include "float_widget.h"
#include <QPixmap>
#include <QMouseEvent>
#include <QPoint>
#include <QLabel>
#include <QBoxLayout>

Widget::Widget(QWidget *parent): QWidget(parent, Qt::FramelessWindowHint)
{
QLayout *layout = new QBoxLayout(QBoxLayout::TopToBottom);
QLabel *label = new QLabel;

QPixmap *pixw = new QPixmap(size());
pixw->fill(QColor(0x3f,0x51,0xb5,150));

label->setPixmap(*pixw);
label->setText("点名");
layout->addWidget(label);
setLayout(layout);

adjustSize();
}

void Widget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton){
relativePos = this->pos()- event->globalPos();
}
}

void Widget::mouseMoveEvent(QMouseEvent *event)
{
this->move(event->globalPos() + relativePos);
}

Widget::~Widget()
{
}

现实很骨感:花了很长时间才做了一个悬浮窗...
有第三方库。😶
OK 现在基本满意,如果无视我熬了一整晚的话... 至少写了六个小时..........\
This media is not supported in your browser
VIEW IN TELEGRAM
写得我连哪些在哪里分配 & 是什么 * 是什么都搞不明白了...
duangsuse::Echo
#project #Cplusplus https://github.com/duangsuse/randomSelection 1+ packaged ❤️
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
OK 现在基本满意,如果无视我熬了一整晚的话... 至少写了六个小时..........\
有没有人有 Qt5 Windows 开发环境的... 😶 MXE 的交叉编译环境只到 4.7