HNHacker News
TopNewBestAskShowJobs

kovrik

603 karma · joined April 2, 2012

https://github.com/kovrik/
submissionscomments
kovrik··on To ban Telegram Russian regulator blocked two million ip adresses(translated)
I no longer live in Russia, so can't tell if it is true, but from what I'm reading, Telegram devs used a clever hack to bypass the blocking.

They say Telegram is using service PUSH notifications (DC_UPDATE - https://core.telegram.org/api/push-updates) to send new server's IP.

Apparently, those push updates come from Apple/Google/Microsoft notification servers. So if Roskomnadzor blocks those servers, then all push notifications will stop working altogether (not only for Telegram).

Does anybody know if it is possible?

Also, Roskomnadzor asked Apple/Google/Microsoft to delete Telegram app from their app stores.

UPD1: Obviously, Web version of Telegram won't work as it doesn't have/use push notifications.

UPD2: Roskomnadzor blocked ~800,000 Amazon IPs and more than 1,000,000 Google IPs. People say they're having issues with Viber calls

kovrik··on Why I Moved Back from Gradle to Maven
For me the main difference between Maven and Gradle is the way I read them.

Maven is declarative. Yes, it has some boilerplate, it may not look nice (I'm not a big fan of XML), but the main advantage for me is that I can read it easily and understand what it does. Because it just declares tasks. Similar to any other XML file or JSON or .properties. You just read it.

Reading Gradle, on the other hand, is more like reading a program. You can't just read it, you have to interpret it, you need to put effort in order to understand what this program does.

Yes, Gradle may be more flexible and less boilerplate, but personally I don't want to have another program (in another language) to just build my project.

kovrik··on Why I Moved Back from Gradle to Maven
Honestly, I have the opposite opinion. I really don't like it when there are custom bash build scripts. And you have to figure out how they work and what they do. And how to pass additional parameters etc.

If you use Maven for your project, then I expect that if I run `mvn clean install` then it will build the project.

I think that is the whole point of standard build tools: that you can switch projects easily, run the same command and get the same result, and not waste time learning custom scripts for each project.

kovrik··on Hubble finds first galaxy in the local universe without dark matter
I'm not a physicist, but that was my thought exactly.

Black holes are weird objects, they are enormous, have huge mass and density, almost no radiation, have great gravitational effect on surroundings and they are hard to detect etc.

They seem like a perfect candidate for 'dark matter'.

Could anyone explain why it is wrong?

kovrik··on Facebook Container Extension: Take control of how you’re being tracked
That's exactly the reason why I stopped using Multi Account Containers. Very annoying.

Are they planning to fix it somehow?

kovrik··on The Consciousness Deniers
aka solipsism
kovrik··on Why writing a linked list in safe Rust is so damned hard
> However that LinkedList implementation requires unsafe{} to be implemented.

Can it be implemented without using unsafe?

Do they have in plans to get rid of all unsafe from std?

kovrik··on Why writing a linked list in safe Rust is so damned hard
But if you use RefCell, then you won't get any useful compile-time checks, will you?

In other words: if you have Rust _without_ unsafe and without RefCell (and similar stuff), will you still be able to implement anything in it and keep compile-time checks and other benefits of ownership system?

kovrik··on Why writing a linked list in safe Rust is so damned hard
I've struggled with Rust just a couple of times, nothing serious, so I'm not an experienced Rustacean by any means.

Question:

Ownership system obviously imposes some limitations, but gives safety in return.

Are there any data-structures or algorithms or something that you simply cannot implement in Rust without using unsafe?

kovrik··on The cost of forsaking C
Can it be replaced with Rust nowadays? Is it low-level enough? Or borrow checker and lifetimes defeat the whole purpose?
kovrik··on Slack is the opposite of organizational memory
Can anyone please explain why Slack is so popular?

Isn't it just another IM chat? I've tried it a couple of times and found nothing special about it.

Also, in all companies I worked at they either had Lync or Skype (because Enterprise, Windows, Office suite etc.).

Even if company decides to try some fancy IM, isn't it better to switch to Atlassian HipChat as it gives nice integration with JIRA, Confluence, Bamboo, BitBucket (assuming company uses Atlassian toolchain)?

kovrik··on Firefox 58
This! If I have at least one tab with Dev Tools open, then FF becomes unbearably slow. Will check if it is fixed in FF58 though.
kovrik··on 2017 Was Bad for Facebook. 2018 Will Be Worse
Because FB collects so much data about everyone and it would be nice to have personalized news, events, articles in your feed. Instead of using websites that show the same thing for everyone.

But they use all that data to show me pictures of crappy food, kids, drunk parties and stupid FB game ads.

kovrik··on 2017 Was Bad for Facebook. 2018 Will Be Worse
I'm in the opposite camp: I stopped using FB because all friends were posting pictures of their kids, family, trips, parties, whatever. I really don't understand how people can post such things to FB.

I don't care what their kids ate today or how they fell asleep. I don't care that they bought a new phone and now posting pictures of it. I think all that stuff is personal and shouldn't be exposed to the public.

But I wish I could open FB and read political and tech news (no fakes please).

kovrik··on Lisp in fewer than 200 lines of C
Yes, I get that (in general).

But then there are things like hygiene, performance and some tricky edge-cases.

And I couldn't find any standard (and simple) algorithm to implement macros (preferably written in something other than Scheme itself).

Still trying to wrap my head around.

kovrik··on Lisp in fewer than 200 lines of C
Agree.

I'm writing Scheme R5RS in Kotlin (https://github.com/kovrik/scheme-in-kotlin) and have implemented everything except macros (6).

Have no idea how to beat them.

kovrik··on Writing a basic x86-64 JIT compiler from scratch in stock Python
That is awesome! Thanks!

Does anybody know the easiest way to compile to JVM bytecode? I have a Scheme interpreter written in Kotlin, what is the best way to compile it, instead of interpreting? Where do I start?

kovrik··on A DoS Attack Against the C# Compiler
Java 9 compiler fails with the following error (for similar code):

Error:(4, 9) java: UTF8 representation for string "LMain$Clazz<LMain$Cl..." is too long for the constant pool

kovrik··on Gerbil – An opinionated dialect of Scheme designed for systems programming
I don't know, every time I check different common implementations (Racket, Guile, Chicken, Chez, Kawa) - they all act very different. Very often even a very simple code snippet works fine in one implementation, but not in the other(s).

And while writing my own Scheme, I literally had to choose "Ok, I will implement this Racket-way; This I will implement Guile-way" etc.

kovrik··on Gerbil – An opinionated dialect of Scheme designed for systems programming
Hey, thank you so much for that! Haven't seen some of those papers. Looks promising. Cheers!
kovrik··on Gerbil – An opinionated dialect of Scheme designed for systems programming
> A problem with Scheme is excessive fragmentation.

Yes. And not only that, but also the fact that each Scheme implementation is slightly (at best) different from all other implementations. I guess that is because Scheme standards are not that strict (for example, compare with Java specs)

kovrik··on Gerbil – An opinionated dialect of Scheme designed for systems programming
Yeah, you are right. I've already implemented everything from r5rs, but macro system. And I don't know where to start, just can't wrap my head around it.

And people say that Scheme has a very minimalist design and is easy to implement...

kovrik··on Gerbil – An opinionated dialect of Scheme designed for systems programming
Can these 'more advanced' features be implemented in, say, Racket/Guile/Chez?
kovrik··on Gerbil – An opinionated dialect of Scheme designed for systems programming
Can anyone explain why there are so many implementations of Scheme written in Scheme? What is the point of doing that (apart from learning purposes)?

I know, for example that people want Racket VM to be implemented in Chez Scheme because Chez is super fast. But what about all other implementations?

Also, as I'm currently writing R5RS/Clojure hybrid in Kotlin, can anyone please share any _simple_ standard algorithm of implementing r5rs macro system and macro expander?

The only thing I could find is https://www.cs.indiana.edu/chezscheme/syntax-case/

kovrik··on Mal – Make a Lisp, in 68 languages
Because lisps are unique and cool. Really, they are quite special.
kovrik··on Ask HN: Projects that don't make you money but you're doing it out of sheer joy?
Honestly, didn't know that! Looks great, thank you very much! I will check it out!
kovrik··on Ask HN: Projects that don't make you money but you're doing it out of sheer joy?
I'm writing R5RS Scheme _interpreter_ implementation in Kotlin (previously in Java): https://github.com/kovrik/scheme-in-kotlin/

It is a hybrid of R5RS Scheme + some things from Kawa, Racket and Clojure. It doesn't have a proper name and documentation yet.

I'm writing it as a hobby sandbox project, for learning purposes and fun. Trying to keep it simple and easy to understand (some things are not perfect though).

Features:

- full numerical tower

- lists, vectors, maps, sets, arrays

- symbols, keywords, strings (mutable/immutable), patterns (regexes), chars

- one-shot upward continuations

- Java interop

- futures, promises, delays, boxes (atoms)

Not implemented yet:

- macros

- persistent data structures

- compiler

- bugfixes :)

PS: it is a pleasure to write it in Kotlin. Great language!

kovrik··on Why Are Human Teeth So Messed Up?
I have the same issue with my wisdoms. Seems to be a common thing. Weird.

Was it painful to remove wisdoms?

kovrik··on 3D metal printing is about to go mainstream
Yeah. That is a bit scary. People got used to think that plastic and wood are pretty weak and fragile materials (compared to metals). But people believe that metals have much more strength (even if in reality they don't - in case of some metals and alloys), so I wonder if they start using printed metal parts in their cars (or similar), because it is much cheaper (but "it is made of metal, so must be strong enough!").

Will this cause more accidents?

kovrik··on Longest Lines of Sight on Earth
Does this mean that there is no known place (point) on Earth from which you can see some other point that is more than 538km away?
← PreviousPage 4 of 8Next →