Skip to main content


A little reminder on OOP

An object is just a bag of mutable variables, with another bag attached to it, that contains functions (which we call "methods"), those functions having read and write access to those variables.

Object oriented programming means writing programs using objects' methods as an instruction set (and possibly something else but with emphasis on methods).

Polymorphism, inheritance, encapsulation and such are generally applicable techniques that a priori have nothing to do with OOP. You can do all this without objects and methods, as well as you can do OOP without all those things (however insane that might be in practice).

I'm glad if that sounds obvious to you but a shocking amount of people seem to be completely unaware.
oop programming

There's also the term True OOP which emphasizes that the original meaning was that objects exchange messages i.e. you don't directly call a method, you send a message and the system delivers it for you. This comes from Smalltalk and was pushed further by Erlang.

Is it like a technical term? I've only heard of "pure" OOP which roughly means "literally everything is an object, numbers too"

It's rather obscure and was probably invented by someone in the Smalltalk community. I've certainly seen Alan Kay use it in reference to the work they did at PARC. The emphasis was specifically on messages which C++/Java-style OOP lacks. So I'd say it is a technical term, just not a very good one -- I did a few quick searches most of which returned garbage. This is the closest I got:

Speaking of OOP I wish there was more experimentation with prototype-based techniques. There's Javascript which is, y'know Javascript, plus Self which is somewhat obscure, and Lua which is solid but niche. Anything else is typically way too obscure to be directly accessible. OTOH I see that session types are getting more popular and the prototype-based analog of that is what I use the most in practice (out of other prototype-based techniques).

Also, Agda 2.6.0 is now available in nixpkgs, so you can easily get the binaries and start exploring homotopy type theory in practice with --cubical option.


New Haskell stuff

The Haskell community has been delivering a lot of neat conveniences lately.

1. Cabal is cool these days. Cabal's dependency hell and cumbersome sandboxes are no more. Instead, there is a new set of v2-commands allowing for deterministic Nix-style builds. Each project has its own local dependencies drawn from a system-wide store that shares everything shareable while keeping your global environment clean. I still use it with Nix though because I like the binary cache.

2. Another take on testing has been made: validity package is based upon the famous QuickCheck and other existing libraries to get us something more handy for randomized property-based testing.

3. A new extension, DerivingVia, along with a new library named capabil... show more
functional programming haskell
This entry was edited (3 weeks ago)

Frame-interpolated 60fps videos are the shit. Someone should make a channel.

Yep. I remember watching one gamer's videos that were 30fps at best and then stumbled upon a video of the same game at 60fps. I was like woooah this looks different!😀

@Anonymous I really want to see an old monochromatic cartoon from the first half of 20th century getting frame-interpolated. My gf says it has to be in good quality though. Should try anyway.

So after a brief research #Flutter doesn't seem that reactive, specifically, in terms of animation and navigation/routing. There is a huge potential to fix it, though. Maybe I'll get to work on that in my spare time.
#Flutter dart flutter

How about a app for Friendica? 😉

Yeah, sounds like a nice contribution I could make. But I'll need to go part time first, not sure when that would happen.

That's the worst thing about work. One of my acquaintances here recently got a new job with 12 hour shifts.

#Dart is nice.
It has a #reactive library (RxDart) and with #Flutter (Android, iOS) you can make fully native reactive apps. It allows literally embedding streams in widget space, unlike React Native.

Fast, reactive, truly crossplatform, pleasant to deal with. I threw away React Native in favor of this and got much less headache.
#Dart #reactive #Flutter mobile development
This entry was edited (2 months ago)

Is it just the time of the year that everyone is feeling down?

I'm not feeling down 😀

Good for you! Maybe it's just me

Sorry to hear this and hope you'll get better soon.

Fun fact from popular science. Consider these statements:
1. Everything is predetermined, therefore no free will.
2. Bell's equation fail, therefore non-determinism (in the broad sense).
3. Actually, since Bell's equation fails, it might very well be the case that quantum physics imply free will (or even the existence of God).

The fun fact is that nothing of this is true. Determinism is doing just fine (at least outside of physics, i. e. in the broad sense). It doesn't actually contradict free will, provided that your definition of free will is not insane. And the third one is of course just outright headassery.

Bell's equation assumes locality but that doesn't have to hold. E.g. the pilot wave theory is fully deterministic even though it uses the same math as the Copenhagen interpretation.
Also how come determinism doesn't contradict free will?

Well that depends on your definition of free will so it's more like deciding which definition makes more sense. To me, free will means the mental capability to choose from a set of foreseeable outcomes and the ability to actualise the intent. Both the intent and the outcome may be predetermined but the choice still happens. Saying that determinism contradicts free will is a bit like saying that emotions aren't real because technically it's just brain chemistry. Also, everything is not real, because it's just physics all the way down.
This entry was edited (2 months ago)

I see. It's just free will is usually discussed as something non-deterministic. There're even absurd formulations like that because we can't know everything thanks to the uncertainty principle therefore free will😀 Last year I read an article on meditation and enlightenment and one of the commenters really really didn't like the idea of letting go of the illusion of self (as something other than just a bunch of particles).

Hate the fact that making cool things is hard. Imagine you don't like your text editor / operating system / whole internet and make a new better one overnight. Hell, I'd make my own literally everything if I could. I'd spend eternity doing it. But no, everything takes at least 10 years, and I only got one life to spend collaborating with people I can't control. Sorry to pollute the public space with this but I'm just really annoyed and I don't know how to deal with it.

Imagine you don’t like your text editor / operating system / whole internet
Oh yeah. Text editors don't even make sense most of the time because you are typically dealing with highly structured data so a structural editor would make more sense. Also stuff like source code is just a serialization of some graphs so a graph editor would work better.
everything takes at least 10 years
I've been working on a rather conceptually simple technology that has to do with dataflow programming, 10 years in the making I'm still not done (but close). I remember Alan Kay saying that breakthrough tech typically requires 7-10 years and given the mess we're in only a breakthrough tech can save us.
Sorry to pollute the public space with this but I’m just really annoyed and I don’t know how to deal with it.
I think you're far from being the only one. I keep seeing stuff like this from time to time, which ranges from complaints/rants (example) to actua... show more

I dunno. I'm too busy with my day job right now to even properly think about it. Maybe in a couple of years I'll go with some part-time at-home kind of thing and actually start doing something.

I'm really interested into p2p stuff though. Already imagining my government not allowing me to host a server or buy a vps without providing cryptokeys. Not that I have the slightest idea of how it works, but I think there's job for everyone. Maybe make a better Sculltebutt or something.

Speaking of which, I've recently discovered #scuttlebutt and recognized that as a perfect opportunity to protect myself from Russian government acting all creepy recently. So I joined the #scuttleverse through #tor (not like it was necessary, just to make sure it works) and decided to set up a pub for me and my friends in case we experience network outages or privacy violation. Unfortunately, it didn't work, even though the program is distributed as a mere Docker container! Also, one of the clients fails with an error. That's a meh, but I'm doing my best to quit being a whiny bitch and properly reproduce the issues to send a report to the developers. Hope it works out.

@Kirill Valyavin Patchwork and Patchbay both are clients written for "electron" which is a closed source web browser. I call it closed source since npm always downloads the binary, instead of compiling. That allows the electron devs make the compilation process absolutely awful, and nobody notices.

As for what I got blocked for, you seriously think they had the decency to tell me? All I know is the list of people who blocked me started growing like crazy at one point, even though I wasn't even posting anything controversial. I guess maybe people were warning each other about this unsuccessful male who is therefore dangerous to be around? To be fair, I have the executive functions of a retarded ferret, so what I think is a good idea to say could easily push me past the moral event horizon of thin-skinned people who've never known unhappiness or hopeless failure.

I had an impression that it's still much less weird than Mastodon. Also, I'm still trying to reflect upon their "just don't push to each other's master branch" policy.

Yeah, it's less weird than Mastodon. I could actually comprehend the code of ssb. It just is really hard to wrap my head around pull-streams. I can't figure out how to go 99 posts back in a stream, without parsing 99 posts every time. Without a way to seek to a post, I don't know how to create a filtered index without replicating the posts.

I don't know much about the Mastodon push policy.

I'm so SICK of stuff not working. When I dreamed of being a programmer as a child, it never occurred to me that writing the actual code is going to be the easiest, least time-consuming, and generally fun part. Now it feels like I am betrayed by my dream. Because whatever I'm trying to do, I keep running into weird issues, not covered by documentation, not answered on StackOverflow, not heard of by professionals I talk with. It's just too much of a headache to keep trying to fix what other people broke. All fun and games when you're just screwing around, exploring cool things you like. But say you need to get the job done? Nah.
frustration programming software
This entry was edited (2 months ago)

What I do is try to educate others on what a scam "compilation not guaranteed" is. That doesn't help me program better, but maybe it'd help some third party prioritize having working compliation instructions, so I would have one less mess to deal with. It's honestly not very effective though, so I dunno.

My current approach is to install a minimalist OS like OpenBSD, install as few packages as I can and compile the rest myself (while still trying to use as little as possible). Opensource fans like to talk about how everything is open to inspection/modification, 'many eyes', etc while in reality lots of critical software is effectively closed source because it requires too much effort to analyze or modify in a nontrivial way and there's no infrastructure to make it easier. In the future I plan to write a very small highly integrated OS for a small number of SBC platforms.
It’s just too much of a headache to keep trying to fix what other people broke.
Not least because they just keep breaking it and if you criticize them they'll tell you that patches are welcome, you ungrateful fuck. There's an article documenting problems with the FreeBSD developer culture, I showed it to a FreeBSD fan a couple of years ago (in I2P, so he was at least somewhat interested in security), he just shrugged i... show more


Haskell in Emacs

People keep asking, "what do you use to write Haskell code?" and some of them get disappointed when I tell them about Emacs. There are various reasons for that, and I thought it would help to write a little beginner-friendly instruction on how to get started. So that's it. Feedback is welcome.
emacs haskell
This entry was edited (3 months ago)



Hi everyone. My name is Kirill Valyavin and I develop software in #Russia. I am a huge fan of #haskell and correct-by-construction way of programming in general. I am also professionally curious about mobile development. My OS of choice is #GNU/Linux for personal and professional use.
#Russia #haskell #GNU/Linux newhere

Hi and welcome aboard 😀

This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.