duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from dnaugsuz
……啥信息,只要身段不够低,我觉得他们的“法眼”都过不去,笑话
我是不是要变成狗,才能爬进 @Pythonzh 然后在某些狗管理的眼皮下苟且偷生?

那些平等的讨论呢?是不是又被他们 Delete all from 'duangsuse' 了?
Forwarded from duangsuse::Echo (duangsuse)
#pragma once
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow: public QMainWindow { Q_OBJECT
public:
MainWindow(QWidget* parent = nullptr);
~MainWindow();
private slots:
void onShowToastClicked();
void onShowProgressSpinnerClicked();
void onShowProgressHorizontalClicked();
private:
Ui::MainWindow* ui;
};
🤔 很久没 Qt 了,应该默写下这个
Forwarded from Node.js | ==
@duangsuse 這不應該是 IDE 要自動生成的嗎?(
Forwarded from dnaugsuz
是啊,
#pragma once
#include <QMainWindow>

namespace Ui {
class MainWindow;
}
class MainWindow: public QMainWindow {
public:
MainWindow(QWidget* parent = null);
~MainWindow();
private slots:
void onShowToast();
void onShowProgressBar();
void onShowHorizontalProgress();
private:
Ui::MainWindow* ui;
}
Forwarded from dnaugsuz
不管是不是自动生成的,只要足够有用,就会再写一遍
Forwarded from dnaugsuz
extern crate azul;
use azul::{ prelude::*, widgets::{ label::Label, button::Button } };

struct DataModel {
counter: usize
}
impl Layout for DataModel {
fn layout(&self, _info: LayoutInfo<Self>) -> Dom<Self> {
let label = Label::new(format!("{}", self.counter)).dom();
let btn_inc = Button::with_text("+1").dom().with_callback(On::MouseUp, Callback(onIncClicked));
Dom::div().with_child(label).with_child(btn_inc)
}
fn onIncClicked(info: CallbackInfo<DataModel>) -> UpdateScreen {
info.state.data.counter += 1
Redraw
}
}
fn main() {
let mut app = App::new(DataModel { counter = 0 }, AppConfig::default()).unwrap();
let win_main = app.create_window(WindowOptions::default(), css::native()).unwrap();
app.run(win_main).unwrap()
}
🤔 Rust 怎么那么喜欢用 optional value 啊……
Forwarded from dnaugsuz
可是虽说“理论上”是这样,真正实现这个东西的也就是“脚本语言”了(但我也不喜欢它们的另一些特质),说得到做不到的事情多了。
Forwarded from Yuze Wu | 女子高中生 | 喵!
然后Adapter就写了个这
duangsues.is_a? SaltedFish
然后Adapter就写了个这
enum Mode { NORMAL, DELETE } //< 有必要?

public class ModListAdapter extends BaseDynmaicGridAdapter {
private Mode mode = NORMAL;
public ModeListDynamicGridViewAdapter(Context ctx) { super(ctx, new ArrayList<>(), 1); }
@Override
public View getView(int position, View view_convert, Group parent) {
ModViewHolder holder;
if (view_covert != null) { holder = (ModViewHolder) view_convert.getView();
else {
View convertView = LayoutInflater.from(getContext()).inflate(R.layout.mod_item, null); //TODO: use overloads
holder = new ModViewHolder(contentView);
convertView.setTag(holder); //TODO extract (new ViewHolder) + View.setTag
}
view_convert/*merge...*/.setOnTouchListener((v, event) -> {
if (mode == Mode.REMOVE && (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) { // TODO: extract getAction()&ACTION_MAST
TextView tvTitle = v.findViewById(R.id.mod_item_title);
Switch enable = v.findViewById(R.id.mod_item_enabled);
GoodmodEntry entry = (GoodmodEntry) getItem(position);
boolean toRemove = !entry.isToRemove();
entry.setToRemove(toRemove);
tvTitle.setTextColor(toRemove? Color.RED : enable.isEnabled()? Color.BLACK : Color.GRAY);
return true;
} else return false;
});
holder.build((GoodmodEntry) getItem(position));
return view_convert;
}
}
Forwarded from fiepi
Forwarded from dnaugsuz
草,如此模板化的代码你都不用 IDEA 功能抽提的么
fun boilerplate(menuId: Int, navControllerId: Int) {
navigation.menu.clear()
menuInflater.inflate(menuId, navigation.menu)
navController.graph = navController.navInflater.inflate(navControllerId)
}

when (booru?.type) {
Booru.SANKAKU -> boilerplate(R.menu.navigation_sankaku, R.navigation.main_navigation_sankaku)
Booru.GEL -> boilerplate(R.menu.navigation_gel, R.navigation.main_navigation_gel)
null -> boilerplate(R.menu.navigation, R.navigation.main_navigation)
}
Forwarded from Unicream
(回到主题)有没有更好的存法呢
Forwarded from dnaugsuz
如果你是想实现客户端“可信计算”,可能木有了。

如果你的模块解耦足够好(加密存储是抽象的,接口和普通存储没有任何区别),那么你可以延续现有的操作
否则我建议直接削掉

上面也说了,有 root 直接读内存甚至 call 你自己的 JNI exports (甚至没存符号表的 C/++ 函数都能给你找出来),
无 root Xposed 都可以 hook 拿到你解密出的数据
计算设备是别人的,理论就没有绝对的安全,所以要么放服务器要么不放
Forwarded from dnaugsuz
🤔 三级缓存?我只知道 LRU 缓存
缓存不是一级已经够了吗…… 难不成你写一个 repeat(10) { println() } 还用递归来着
Forwarded from dnaugsuz
举个例子,某回合塔防游戏把一局的“金钱”数存在 JNI 里并且只有进行加减法时解密。
但这个游戏还是被 dalao 破解了,教程也很容易看——因为加密算法是 consistent,一致也即同输入一定同输出的,所以先弄到教程指定的“金钱”,然后再拿修改器搜内存,两次确定,锁一下数值就可以直接给破解了。
Forwarded from ag
三级缓存 概念 (本地,内存,网络)啊
Forwarded from dnaugsuz
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from dnaugsuz
奇怪的知识增加了
我只知道会用内存缓存(这个对应用开发者理应是透明的)
和本地文件缓存