log 2 = 0.3010
log 2 = 0.3010
This is my second weekly log.
Language Servers
Language Servers are awesome. In one of my previous blog posts, I have talked about Abstract Syntax Trees and how they play an important role in building developer tools.
I am super interested everything about Editors and IDEs. Plugins, Text Editing Algorithms, Text searching algorithms, UTF-8, and literally anything regarding text editing. You name it, I am ready to learn about it.
I wanted to know more about language servers, ever since hearing this talk.
So, I started this week by skimming through stuff about Language Servers, Lexers etc. The conversation happening here made me to get a idea about language server implementation of crystal language called scry.
Few things to note here are, Language server protocol could be read from it’s open source repository.
Microsoft/language-server-protocol
language-server-protocol - Defines a common protocol for language servers.github.com
It uses JSON-RPC to communicate back and forth.
JSON-RPC 2.0 Specification
JSON-RPC 2.0 Request objects and Response objects may not work with existing JSON-RPC 1.0 clients or servers. However…www.jsonrpc.org
Why JSON-RPC ? It’s probably lightweight and same reason why JSON is preferred over XML ( JSON’s size is much smaller compared to XML )
{
"name": {
"first": "Vishnu",
"last" : "Bharathi"
}
}
Vs
<name>
<first>Vishnu</first>
<second>Bharathi</second>
</name>
XML uses 66 characters and JSON uses 45 characters !
Tired days
I was tired most of the week nights. I did long commutes in bus. Heavy rain is making these commutes more adventures and sometimes tired I guess. So this week is going in a more relaxed phase.
pv
I learnt about this amazing command utility called pv ( Pipeline Viewer )
$ yes | pv > yes.txt
pv intercepts writing yes command output to a file and shows its progress.
Trees
I happend to go through some really basic stuff about trees this week. Also tried to cartoon that stuff and will probably upload them to pinterest later this week.
linkedlist.cr
I wanted to build a production quality linked list in crystal and i started on it last week. I spent most of my weekend building it and i am close to completing singly linked list.
scriptnull/linkedlist.cr
linkedlist.cr - Linked List Implementation for Crystal Programming Languagegithub.com
I wrote a lot of tests ( 70+ ) for my code and actually felt the feeling of writing object oriented code after quite some time.
Dream in code
I think I spent a good amount of time with linked lists and programming, that when I woke up the Monday morning i had a dream of rewriting a Unix command line utility in rust. Haha. Just like the good old days when I dream of making npm packages for every computer science problem I wanted to solve.
What is a container?
I watched this amazing talk about containers. It’s really cool and i would definitely recommend it to people who are into containers.
DEF CON
I also love this conference named DEF CON. I take time to learn about computer and information security whenever possible. This weekend I watched and liked this talk on proxies and botnets.
This is helping me
This whole weekly log thing is very new to me and i already feel that it’s helping me by having notes on various things I learn and do. This is kind of fun, but I want to streamline the process more.
Wish list
[DONE] Upload the tree data structure cartoons to pinterest
Launch linkedlist.cr v1.0.0
Contribute to a language server.
Thanks for reading. I quote verses from my favourite Tamil literature “Tirukkuṛaḷ” at the end of my blog posts.
“இன்பம் விழையான் இடும்பை இயல்பென்பான்
துன்பம் உறுதல் இலன்.”
— திருக்குறள்
Translated meaning ( in my words ): Problems are common. People who understand this simple truth will not be affected by their problems.