MinekPo1

joined 2 years ago
[–] MinekPo1@lemmy.ml 22 points 4 months ago (1 children)

fun fact : the angle is now around 3" 26' which is just slightly over ¹/₂₀ of a degree !

[–] MinekPo1@lemmy.ml 1 points 4 months ago (1 children)

I use blueprints for junctions & those funny looking train buffers since I don't feel like measuring them out every time , though I find trains relatively intuitive . tbh might add more blueprints to my arsenal further down the road as I'm only at ~150 h

[–] MinekPo1@lemmy.ml 1 points 4 months ago* (last edited 4 months ago)

note that I use a mod called logistics train network to manage train routes , though I'm not sure if that's what you are referring to .

actually one of the oopsies was caused by me misconfiguring a train stop and I had to deal with quite a few trains full of copper or iron blocking my main

 

took me a bit haha

sorry for any jump cuts, I had to fix stuff around the base (incl. an almost blackout oops) and didn't want to add to the stress by trying to record it.

[–] MinekPo1@lemmy.ml 4 points 4 months ago (2 children)

not exactly a DAW/VST but VCV Rack is a open source (though with a pro version , the pro version can work as a VST though I never used it in that way) eurorack modular synthesizer symulator if you want to experiment a bit

[–] MinekPo1@lemmy.ml 1 points 5 months ago

not entirely sure but this doesn't feel like something the fsf would like . most definetly it violates freedoms 0. because it discriminates against companies with over 5 M$ in income and against people living in Japan (see 2.14 , though I'm not sure its enough to qualify) , and possibly by restricting what you can do with the software , though I'm not sure on that one . it also violates freedoms 2. and 3. by requiring publicly releasing your changes (fsf requires that free software licenses allow for private modifications) and possibly by requiring contacting the licensor or the post-open administration though I'm unsure of if it does (entering into a post-open source zero-cost / paid contract seems to me to imply contacting either the licensor or the post-open administration) .

further reading :

[–] MinekPo1@lemmy.ml 0 points 5 months ago (1 children)

to my knowledge disabled apps do not run so you must have misunderstood something

[–] MinekPo1@lemmy.ml 1 points 5 months ago

just gonna say , rethink combines both a firewall and a DNS blocker .

[–] MinekPo1@lemmy.ml 28 points 5 months ago* (last edited 5 months ago)

No its microsofts database GUI program that's part of Microsoft Office . imagine software made for users who have a vague understanding of SQL and visual basic but then an exec. forced the designers and devs to make it accessible to everyone while giving them barely any teamembers causing a fuckton of technical debt and unintuitive quirks , making anyone who opens the software feel like they have just been placed in a highly equipped tank , in front of a wall of unlabeled levers and told to drive the tank , or at least that's how I view it.

(reposting from another account sorry if you see both comments)

[–] MinekPo1@lemmy.ml 2 points 7 months ago

I mean yeah it is very overblown , sorry I did not make it clear

[–] MinekPo1@lemmy.ml 16 points 7 months ago (2 children)

honestly , while I believe this is random=funny, I think it is interesting to interpret:

I believe that the person is a transmasc individual , who had a supportive grandma , but she died and he has been sent to conversion therapy by his unsupportive parents

 

alt

#include <type_traits>

// from https://stackoverflow.com/a/8625010/12469275
// cmath's sqrt is constexpr from c++26
constexpr std::size_t isqrt_impl
	(std::size_t sq, std::size_t dlt, std::size_t value){
	return sq <= value ?
		isqrt_impl(sq+dlt, dlt+2, value) : (dlt >> 1) - 1;
}

constexpr std::size_t isqrt(std::size_t value){
	return isqrt_impl(1, 3, value);
}

// because pack indexing is only in c++26
template <std::size_t I, typename T = void, std::size_t... V>
struct At;

template <std::size_t I>
struct At<I, void> {};

template <std::size_t V0, std::size_t... V>
struct At<0, void, V0, V...> {
	static const std::size_t value = V0;
};

template <std::size_t I, std::size_t V0, std::size_t... V>
struct At<I, std::enable_if_t<I != 0 && I <= sizeof...(V),void>, V0, V...> {
	static const std::size_t value = At<I-1, void, V...>::value;
};

template <std::size_t A, std::size_t B>
struct Add {
	static const std::size_t value = A + B;
};

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t A, std::size_t B> typename R, std::size_t I, typename _, std::size_t... V>
struct _ReduceFor;

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t A, std::size_t B> typename R, std::size_t I, std::size_t... V>
struct _ReduceFor<begin, end, step, R, I, std::enable_if_t<(begin < end),void>, V...> {
	typedef R<At<begin,void, V...>::value,_ReduceFor<begin+step, end, step, R, I, void, V...>::type::value> type;
};

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t A, std::size_t B> typename R, std::size_t I, std::size_t... V>
struct _ReduceFor<begin, end, step, R, I, std::enable_if_t<(begin >= end), void>, V...> {
	typedef std::integral_constant<std::size_t,I> type;
};

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t A, std::size_t B> typename R, std::size_t I, std::size_t... V>
using ReduceFor = _ReduceFor<begin,end,step,R,I,void,V...>;

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t I, typename T> typename V, typename T, typename _>
struct AllFor;

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t I, typename T> typename V, typename T>
struct AllFor<begin, end, step, V, T, std::enable_if_t<(begin < end), void>> {
	typedef std::enable_if_t<std::is_same<typename V<begin, bool>::type, bool>::value, typename AllFor<begin+step, end, step, V, T, void>::type> type;
};
template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t I, typename T> typename V, typename T>
struct AllFor<begin, end, step, V, T, std::enable_if_t<(begin >= end), void>> {
	typedef T type;
};

template <std::size_t begin, std::size_t end, std::size_t step, template<std::size_t I, typename T> typename V, typename T>
using AllFor_t = typename AllFor<begin, end, step, V, T, void>::type;

template <std::size_t S, typename T, std::size_t... V>
struct ValidRows {
	template <std::size_t I, typename T2>
	struct Inner {
		typedef std::enable_if_t<ReduceFor<I, I+S, 1, Add, 0, V...>::type::value == S * (S*S + 1)/2, T2> type;
	};
	typedef AllFor_t<0, S*S, S, Inner, T> type;
};
template <std::size_t S, typename T, std::size_t... V>
struct ValidColumns {
	template <std::size_t I, typename T2>
	struct Inner {
		typedef std::enable_if_t<ReduceFor<I, I+S*S, S, Add, 0, V...>::type::value == S * (S*S + 1)/2, T2> type;
	};
	typedef AllFor_t<0, S, 1, Inner, T> type;
};
template <std::size_t S, typename T, std::size_t... V>
struct ValidDiags {
	typedef std::enable_if_t<ReduceFor<0,S*S,S+1,Add, 0, V...>::type::value == S * (S*S + 1)/2 && ReduceFor<S-1,S*S-1,S-1,Add, 0, V...>::type::value == S * (S*S + 1)/2, T> type;
};

template <typename T, std::size_t... V>
struct Unique;

template <typename T, std::size_t N, std::size_t... V>
struct Unique<T,N,V...> {
	template <std::size_t I, typename T2>
	struct Inner {
		typedef std::enable_if_t<N != At<I,void,V...>::value,T2> type;
	};
	typedef AllFor_t<0,sizeof...(V),1,Inner,T> type;
};

template <typename T, std::size_t V>
struct Unique<T, V> {
	typedef T type;
};

template <typename T, std::size_t... V>
struct InRange {
	template <std::size_t I, typename T2>
	struct Inner {
		typedef typename std::enable_if<1 <= At<I,void, V...>::value && At<I,void,V...>::value <= sizeof...(V), T2>::type type;
	};
	typedef AllFor_t<0,sizeof...(V),1,Inner,T> type;
};

template <typename T, std::size_t... V>
struct Grid {
	static const std::size_t S = isqrt(sizeof...(V));
	typedef std::enable_if_t<S*S == sizeof...(V), typename ValidRows<S, typename ValidColumns<S, typename ValidDiags<S, typename Unique<typename InRange<T,V...>::type, V...>::type, V...>::type, V...>::type, V...>::type> type;
};

using ok = Grid<void,
	2, 7, 6,
	9, 5, 1,
	4, 3, 8>::type;

int main() {}

[–] MinekPo1@lemmy.ml 1 points 1 year ago (4 children)

Just as an FYI Orwell was kinda a horrible person. You can still enjoy his literature if you want but he couldn't help to find Hitler unlikable, was a colonial cop in India and didn't like how the Hindi people treated him because of it and and made lists of people who he accused of being leftists and Jewish.

[–] MinekPo1@lemmy.ml 1 points 1 year ago

Probably shattered pixel dungeon

 

I mean I know its likely gonna change once the big waves wash over but still.

Alt: Drake meme template but with a anime girl. Top row with the girl gesturing approvingly says: if reddit is gonna kill 3rd party clients then I'm just gonna switch to Lemmy. Bottom row, with the girl showing distress, says: there arent as many funny trans people on Lemmy rn

view more: next ›