I/O 2019 Expectations.

07 May 2019

This is the May where Google I/O happens every year. Google I/O is the flagship conference of Google to announce all the software update they have been working on the past year and what will come up next. This year Google I/O 2019 happens form 7th to 9th of May. Here are the announcements and sessions I will be interested in.

First of all, we have to talk about the keynote. This is the summery of the most catching thing that will come up at the conference. Which will be done by Sundar Pichai CEO of Google. This is the key event of the session. I remember last year, the Google Duplex project was announced and that was dope. With that thought, yes there will be lots of AI stuff. I mean a lot.

But what I’m most interested about is Flutter and the hyped Hummingbird project. Of cause after checking the schedule, I know that there will be a session on Hummingbird project. Also, I’m waiting for some big updates for Flutter. The winner of Flutter Create competition will be announced which I missed because of that wicked project(I’ll tell about it later).

And there’s Android Q too. I think that the name of version will not come out. Because, in previous years they announced it after the I/O. But there will be lots of announcement about the upcoming OS version. And again after mining the schedule, there will be more focus on privacy and accessibility within the Android OS.

But to be sad I don’t think there will be anything about Fuschia. Yes, the new next-generation open source OS Google is working on with the community support. I would like even a little mention of the project which has a very less probability.

So these are things I’m expecting from the Google I/O this year. We’ll see what will come true and what won’t. Maybe Google will announce something way out of real!

Editing text.

06 May 2019

I use my computer for more than 12 hours every day. And most of this time is spent on editing text. Either to code, write documentation or even to write a blog post like this. So the text editor I’m using is a very important part of my life.

I have a very diverse history of text editors. Started from good old Notepad and shifted to Notepad++. Then I moved to Sublime Text which I used for a very long time. I loved its features and ability to personalize. But the major issue with Sublime Text was it is a commercial product. This was unacceptable with all the other free and open source text editors.

After for some time I used only full-featured IDEs such as Eclipse, Visual Studio, and IntelliJ. Though these came with a lot of helpful features, they came with exhaustive resource usage. I couldn’t run by IDE and Photoshop simultaneously. Therefore I had to move back to a lightweight text editor unless the project necessarily needs such IDE (Android, Spring and etc).

My first choice after the change is Atom. Open source lightweight text editor supported by GitHub. I used it for a little while but it didn’t become natural to me as Sublime Text. So I tried weird different text editors for a while such as Brackets. After a while, Microsoft announced Visual Studio Code. Since then I’m using VSCode for all of my text editings. Even for large production-ready projects.

Because of VSCode’s customizability, I have a fully custom text editor with just what I need. I use IntelliJ key maps because I’m used to it and sometimes I have to shift to IntelliJ. I always use dark themes, and currently, it’s Dracula with default VSCode icons. I don’t use tabs or sidebar explorer, they waste editor’s space and Ctrl+Shift+N is faster than those. And most of the time editor is split to two and with the internal terminal in the bottom.

So this is my text editor preference and I don’t think that I’ll change VSCode for a while.

Why not both!

05 May 2019

Well, programming languages are super awesome. Yes, there are lots of them and many alternatives to do the same task. But usually, there are only a few that stands up.

Most of the prominent programming languages are imperative. For example Java, C++, C# and python (I know, this is double edge). Recently, functional programming is gaining traction and becoming a trend. But in my opinion, the logic of functional programming is not natural.

In imperative style, we define step by step instructions until we get what we what. But this approach has some unpleasant side effects such as state and mutable variables. Functional programming in the other hand does the exact inverse of this. We first define the last thing we want to do and in order to do that we get it’s dependencies next. This goes until all the required steps are done. In order to implement some logic in functional programming we have to think in an unnatural way. But of cause, this style has some shiny things such as not needing to worry about keeping the state, support for immutable variables and higher order functions.

So there’s something that we have to sacrifice if we chose one of the sides. But what if we don’t. What about the best of both worlds. Is it possible? Well, I think yes. I guess you may have seen the observable pattern, the pattern used in ReactiveX libraries. There we create a pipe which have source which we transform by sending it through a set of operators(functions) until we get the desired output, just like a pipeline. In this pattern, we define operators in imperative style. We don’t have to worry about the state between operators by ourselves, doesn’t have a limitation immutability and since operators are just higher-order functions we have the shiny stuff of functional programming style too.

Recently I have become more and more interested in this approach and I find it very enjoyable to design and write code this way. If your interested, here is the link to ReactiveX.

That Perfect Live Set

04 May 2019

Today I noticed that the most of the time, popular DJs and their sets are not much interesting and creative.

Yes, most of them are very good music producers which made great pieces of music. But since they are popular and well known they have a status to maintain. Most of them give a major flavor to their own music in their sets. This I think reasonable since they have to market their creation and this is one of the best ways. Imaging hundreds of people dancing to your jam. Also when it comes to mediums other than the music in a set, a popular DJ should spend a vast amount of resources for lighting, visuals, fireworks and other flashy stuff in order to make it perfect. Most of the time DJs have to imitate themselves too. They have to act for the label, shout out fellow DJ of the label and keep their gained status by not doing a crazy stupid thing. All these other interests make a producer or a DJ less concentrated about their music or the actual mix their performing. And when it comes to the crowd, a popular DJ would have huge crowd without a single gap but most of the people come because of the DJ’s popularity not really the enjoy the set. And less space to dance will ruin the enjoyment of the real fan too.

So, I thought about that one set which will be freaking awesome. Here are my personal opinions that I listed down in my mind. The set shouldn’t have crazy ass animations and lighting that crowd will take photographs without actually enjoying it. Fireworks, Ok, in the end, to make it fabulous. There should be a reasonable crowd not very little and not every person in the festival, so there is enough space for true enjoyers to do all the crazy stuff and dance like hell. A DJ should DJ! not play their own track one by one, they should mix, do spins and play dance jams of other artists too. Dj should act there own self and become part of the crowd, do what they would do if they were in the crowd. The list can go but only these items come to my mind right now. So, I think I described the awesome music set according to my mind.