In this series, I’ll be sharing my take on developing multi-platform applications using SwiftUI and Google Firebase. I’ll go over the process of creating a note-taking app. The final result this series is building towards is available on Github.
Once while browsing wild waters of internet I stumbled upon an article about an innovative system of taking notes called the Zettelkasten Method. In short, Zettelkasten is a knowledge management method. Notes form a tree structure where every new note expands information from its parent, creating clusters of information with similar topic. This all seems like something that a person with a fish memory, like me, could benefit from. …
I would like to thank Jason Williams, since my parser is inspired by Boa parser. And looking at similar project in Rust definitely helped me a lot to recognize problems that I’m going to face.
I would like to thank Sean Barret for his blog post explaining lexing of C using state machines.
Compilation of source code usually consists from three steps: lexing, parsing, generating executables. Lexing is conversion of text (stream of characters) to stream of tokens. One token can be represented by multiple characters. …
I decided to write this post, because I enjoyed our last lecture on Computer System Performance given by Pinar Tözün at ITU. We covered many interesting topic on how CPUs can affect performance and how to optimize applications for performance. I want to summarize what I’ve learned and describe what effects can CPU have on program execution.
I start by showing simple Subscalar CPU. Then I continue showing how we can improve performance of Subscalar CPU by using Instruction pipelining. Then I cover essentials of branch prediction which is closely connected with Instruction pipelining. Next, I describe how in some cases CPUs are able to execute instructions out of order. …