<infinisil>
gchristensen: Yeah, they also post them on youtube :) (I think these 3 min shorts much more interesting though)
jtojnar has quit [Remote host closed the connection]
<gchristensen>
ok so yesterday I hacked together that nixops thing, this afternoon the idea was approved. do I dare do the actually hard work of _doing_ it?
{`-`} has quit [Ping timeout: 264 seconds]
sphalerit has quit [*.net *.split]
Guanin has quit [*.net *.split]
lassulus has quit [*.net *.split]
noefk_ has quit [*.net *.split]
clever has quit [*.net *.split]
tilpner has quit [*.net *.split]
ldlework has quit [*.net *.split]
aither has quit [*.net *.split]
adisbladis[m] has quit [Ping timeout: 245 seconds]
dtz has quit [Ping timeout: 260 seconds]
Drakonis[m] has quit [Ping timeout: 245 seconds]
hedning[m] has quit [Ping timeout: 260 seconds]
unlmtd has quit [Ping timeout: 260 seconds]
<infinisil>
gchristensen: What are the chances this gets finished before you lose motivation for it? (I can lose motivation rather quick when something isn't interesting anymore)
mudri[m] has quit [Ping timeout: 256 seconds]
pstn has quit [Ping timeout: 276 seconds]
<gchristensen>
depends how annoyed I get :P but ... possibly low chance I finish it.
<gchristensen>
in reality I'm quite busy with things to do and have to take care to keep on top of important projects like ofborg
Guanin has joined #nixos-chat
aither has joined #nixos-chat
clever has joined #nixos-chat
lassulus has joined #nixos-chat
noefk_ has joined #nixos-chat
tilpner has joined #nixos-chat
ldlework has joined #nixos-chat
pie__ has quit [Remote host closed the connection]
pie__ has joined #nixos-chat
Lisanna has joined #nixos-chat
unlmtd[m] has joined #nixos-chat
jtojnar has joined #nixos-chat
pie__ has quit [Remote host closed the connection]
<infinisil>
kalbasit: While yes go is typed, it doesn't have as good of a type system as other languages
<kalbasit>
can you give me a for instance? :)
<infinisil>
Swift, Haskell, Idris all have a more powerful type system
<gchristensen>
there is no `map`
<gchristensen>
and I don' like null
<gchristensen>
but Go is fine probably
<kalbasit>
gchristensen: no map?
<kalbasit>
`map[string]string`
<gchristensen>
kalbasit: you've sort of walked in to a lions den of people who like functional programming, hehe
<kalbasit>
gchristensen: I know lol
<gchristensen>
like a list comprehension in python
<kalbasit>
I love Go, well for the use case of Web servers it really shines
<gchristensen>
basically my gripe about map is the same gripe about no generics :P
<kalbasit>
especially doing multi-thread owork
<gchristensen>
nice
<infinisil>
Really the generics thing is what annoys me the most lol
<kalbasit>
gchristensen: I had an issue with no generics before, but I came quickly to realize that you do not need generics at all
<infinisil>
That's the only thing I know of in which the type system sucks
<infinisil>
...
<kalbasit>
that's mostly because we are used to use generics
<gchristensen>
infinisil: be nice :)
<kalbasit>
give it time :)
ghasshee has joined #nixos-chat
<infinisil>
I honestly don't agree at all
<kalbasit>
there's also `// go:generate` thing that can replace generics (well sort of)
<gchristensen>
kalbasit: yeah, I used Go to build a small distributed database a couple years ago. it was pretty good!
Linus[m] has joined #nixos-chat
adisbladis[m] has joined #nixos-chat
dtz[m] has joined #nixos-chat
philipp[m] has joined #nixos-chat
Drakonis[m] has joined #nixos-chat
<gchristensen>
it isn't my cup of tea, though :)
<kalbasit>
but it's amazing how lack of generics makes things simple. We have two web-devs at the company that really knows nothing outside of JS. Go was was a breath to understand the 30k+ project we have
<kalbasit>
gchristensen: not functional I know I know lol
<gchristensen>
it is definitely optimized for that use case, which I totally respect
<kalbasit>
yea
<gchristensen>
kalbasit: I'm not such a functional programmer, but I do like Rust, which does have generics and no null :)
<kalbasit>
I don't and will never claim a language X is the only thing you need
<infinisil>
I respect it too, the tooling seems to be great and fast compile times and fast execution
<kalbasit>
it's by use case
<gchristensen>
kalbasit++
<{^_^}>
kalbasit's karma got increased to 1
<kalbasit>
:)
<samueldr>
no list comprehensions in Go?
<gchristensen>
samueldr: it was a bad example, I meant to be saying generics
<infinisil>
But using generics and co. in Haskell really makes me appreciate them
<kalbasit>
I like Rust too, unfortunately I haven't had a chance to use it yet
* samueldr
still isn't sure what generics are
<kalbasit>
infinisil: until you learn that they are not necessary :P lol
<samueldr>
even though I probably undrstand what they are
<gchristensen>
yeah, Rust is pretty good. a bit intimidating to start :D
<kalbasit>
samueldr: something like `sort<T>` where T can be anything
<gchristensen>
samueldr: an array of type List<String>, means a List which only contains Strings
<samueldr>
ah, so I knew :)
<kalbasit>
yep
<gchristensen>
samueldr: List<_> is a generic list which can contain any type
<samueldr>
I love me some good list comprehension
<kalbasit>
Go does not have that, you are forced to write a sort for every time out there
<infinisil>
And Go apparently does have generics, but only for a couple of its standard library types
<kalbasit>
or, you know, use reflect instead with an `interface{}`
<infinisil>
You can't use generics in your own code..
<gchristensen>
samueldr: generics let you do cool stuff, like if you have `function head(items: List<A>) -> A` you know it can only do one thing, take a thing from the list and give it to you.
<gchristensen>
because it doesn't know what "A" is
<kalbasit>
infinisil: sure, interface allows you to pass in anything, so for instance,`func say(msg interface{}) { fmt.Printf("hello %s\n", msg) }`
<samueldr>
yeah, I knew what they were, turns out I never looked up what "generics in go" meant, and never really made the connection :)
<gchristensen>
:D
<kalbasit>
say can take anything really, including other functions
<infinisil>
kalbasit: Oh.. So it's like a dynamic thing that can be anything? Whew
<kalbasit>
yea with one exception
<kalbasit>
you can ask it, what type are you?
<kalbasit>
you have to know that at compile time
<kalbasit>
let me write a quick play.golang.org brb in 5g
<kalbasit>
s/5g/5m/
<gchristensen>
cool
<gchristensen>
is star trek VOY any good?
<infinisil>
Function in Haskell often use almost only generics lol, example:
<infinisil>
bimap :: Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
<infinisil>
There's absolutely no concrete type in there
<kalbasit>
infinisil: I don't know Haskell at all, but yea that looks overwhelming compared to Go
<kalbasit>
simple syntax
<infinisil>
kalbasit: I see
<infinisil>
so it doesn't allow explicit types
<kalbasit>
infinisil: it does of course
<gchristensen>
interface{} is just a bit of an escape hatch
<infinisil>
gchristensen: kalbasit: It's really not that complicated once you get into Haskell, and soon enough you end up wanting to play with all kinds of fancy things you can't even dream of in other languages :P
<infinisil>
And then you discover Idris and your mind explodes
<samueldr>
there's the issue here: I'll never learn haskell, otherwise I won't be able to work
<gchristensen>
samueldr: same :D
<kalbasit>
lol same here
<kalbasit>
having trouble wrapping my head around Nix when I have trillion things to deal with
<gchristensen>
don't worry, don't rush in to it. you'll learn as you need
<kalbasit>
but I can't go back anymore, no way going to Arch!
<kalbasit>
gchristensen: yea, true
<gchristensen>
I didn't know any FP when I started Nix... Nix was my first functional programming langueg.
<infinisil>
Haskell has the tendency to stick around with you, once you are into it, you'll never want to use anything else
<gchristensen>
infinisil: that is what I'm afraid of!
<kalbasit>
hehe
<samueldr>
oh, I'm applying so much functional paradigms in JS and Ruby, only way to stay sane
<kalbasit>
I should stay clear of that then :)
<kalbasit>
where are you guys located?
<infinisil>
That's a good thing!
<infinisil>
You learn a lot
<gchristensen>
America/New_York, kalbasit
<kalbasit>
I love the timezone syntax lol
<kalbasit>
I'm in SF bay area
<samueldr>
America/Montreal
<samueldr>
oh no, I'm not willing to relocate
<samueldr>
(is that meme now too old?)
<gchristensen>
right on, I do some contracting for a few co's out that way.
<kalbasit>
lol
<kalbasit>
gchristensen: cool!
<infinisil>
Switzerland for me
<kalbasit>
yea it's pretty crazy here
<kalbasit>
infinisil: wow, what time is it there now? :)
<infinisil>
3:14 :)
<infinisil>
am
<kalbasit>
I used to live in France, other side of Geneve from lake Annecy
<kalbasit>
wow
<samueldr>
π o'clock
<infinisil>
3:14:59
<infinisil>
Oh shit
<infinisil>
It should be 15
<infinisil>
3.1415926535..
<kalbasit>
lol
* infinisil
was the kind of kid that learned 100 digits of pi because he wanted to impress everybody
<kalbasit>
oh brb, shit on fire at work :(
<gchristensen>
good luck
* samueldr
wonders how impressed infinisil's friends were
<infinisil>
samueldr: Very!
<samueldr>
let's hope no literal combustion
<infinisil>
Oh, just one more thing regarding Haskell: I'm now afraid of every mutation when I see imperative code, and will want to rewrite it into a purely functional form
<infinisil>
Not very good when university almost exclusively uses java & co.
<samueldr>
:)
<infinisil>
kalbasit: Oh, does Go have sum types?
<samueldr>
infinisil: ever worked on a mess that only worked *because* of the bugs, side-effects and mutations from the whole mess?
<gchristensen>
infinisil: no
<infinisil>
Not really, but that sounds like fun :)
<samueldr>
had a client in the past with such a website, no it wasn't fun
<infinisil>
gchristensen: Oh rly? :(
<gchristensen>
sum types are too new and edgy
<samueldr>
see an unbalanced <div>, fixes it, now the website is all screwy
<infinisil>
I got so frustrated with not having sum types in java, not sure if i could handle go
<gchristensen>
you get sum types by setting all the other variant fields to nil ;)
<infinisil>
samueldr: Hehe
<samueldr>
I still think strict xhtml with browser error on mis-formatted content should have won
<samueldr>
even though it causes *a huge amount of issues* (with regard to speed, pre-rendering, slow internet)
<gchristensen>
agreed
<infinisil>
samueldr: How does it cause such issues?
<samueldr>
at least it would have been more correct :(
<samueldr>
infinisil: can't begin rendering without the full document IIRC
<samueldr>
while with html you technically can
<samueldr>
(not that it matters with SPAs
<infinisil>
Huh
<kalbasit>
infinisil: what do you mean by sum types?
<samueldr>
(you basically traded XML strictness for a full programmed framework underneath, which will fail at around the same point)
<infinisil>
kalbasit: aka tagged unions, something that can either be of one thing or another and have different types associated with it
<kalbasit>
infinisil: oh, that's what `interface{}` is for
<maurer>
manveru: I know you probably can't swap unilaterally, but if you want something with systemsy performance, but type safety and thread safety, looking at rust could be good
<etu>
samueldr: Someone needs to do that but with NixOS :p
<etu>
But that's probably too big
<samueldr>
size isn't the issue, but instruction set :)
<sphalerite>
surely you could just use qemu
<etu>
lua can bind to c/c++ libraries (this is a question)? Then you can hook up anything :p
<samueldr>
inside opencomputers, iirc, it's a java lua vm, which don't have ffi or C/C++ bindings, or at least, let's hope it doesn't :)
<etu>
:D
<etu>
But it can talk to sockets? Then it can be bridged... :D
<sphalerite>
just don't use opencomputers
<sphalerite>
use qemu via JNI
<samueldr>
though, I now wonder how good a WASM-like thing could get on lua, and then, compile linux for it, nix for it and... that's a bad idea
<samueldr>
because you know it'll end up used for mission-critical purposes :)
<sphalerite>
minecraft seems to be a good layer for preventing that
<sphalerite>
the most serious thing it seems to end up being used for is education
<samueldr>
(I was thinking lua generally, not adding minecraft in the mix)
<sphalerite>
ah right
<samueldr>
not the lua part, but ASM-like and having an OS built using it would be... counter-productive at best
<etu>
sphalerite: well, one could build a workflow in minecraft
<etu>
like have different rooms with different emulated computers
<etu>
for different tasks
<sphalerite>
hah, have an office in minecraft
<sphalerite>
minecraft + mumble + VDI client in minecraft = turn remote work into not-so-remote work!!
<etu>
And there are crazy people out there I tell you. Someone would do it.
<sphalerite>
I know, that's the scary bit
<sphalerite>
I bet there are already people doing remote work in a virtual office via VR chat or some crap like that
<etu>
Probably
<etu>
It's rare to be the first one to think about something :p
<samueldr>
I would love an AR workstation, better yet if AR+VR, so you get your own workstation screens in your environment, but can get colleages around in a virtual space for $workthings
<samueldr>
(hardware isn't there yet)
<srk>
I want to replay nixpkgs in minecraft
<srk>
could evolve to AR afterwards
katona has joined #nixos-chat
unlmtd[m] has quit [Ping timeout: 255 seconds]
mudri[m] has quit [Ping timeout: 256 seconds]
Linus[m] has quit [Ping timeout: 256 seconds]
Drakonis[m] has quit [Ping timeout: 256 seconds]
adisbladis[m] has quit [Ping timeout: 256 seconds]
philipp[m] has quit [Ping timeout: 256 seconds]
hedning[m] has quit [Ping timeout: 256 seconds]
dtz[m] has quit [Ping timeout: 260 seconds]
__monty_1 has quit [Quit: leaving]
sir_guy_carleton has joined #nixos-chat
unlmtd[m] has joined #nixos-chat
adisbladis[m] has joined #nixos-chat
Linus[m] has joined #nixos-chat
philipp[m] has joined #nixos-chat
dtz[m] has joined #nixos-chat
Drakonis[m] has joined #nixos-chat
mudri[m] has joined #nixos-chat
hedning[m] has joined #nixos-chat
Sonarpulse has quit [Ping timeout: 256 seconds]
katona has quit [Quit: Connection closed for inactivity]