(blog-of ‘Alex’)

A personal blog about software development and other things. All opinions expressed here are my own, unless explicitly stated.

  • Quick Http Server

    For many years I used to use python -mSimpleHTTPServer whenever I wanted to start an HTTP server to surface folder as a set of static files. It is however no longer available in python 3 which I think says a lot about maintainers of python as a language - retaining backwards compatibility never seemed to be a priority. On python 3 you can use python3 -m http.server. If you’re familiar with nginx and/or don’t want to continue using python for that simple purpose you can also use nginx, provided that you have it in one form or another - e.

    Read more…
  • Static Website Hosting

    There are multiple options for static hosting of your website. In this post I’ll list most popular ones and I tried most of these. Hosting on AWS S3 Non-HTTPS hosting on AWS S3 is pretty simple and it is outlined in good details in the official S3 Hosting tutorial. However, exposing your website via HTTPS requires a bit more manipulations. I found this manual on medium.com. These steps essentially boil down to exposing your S3 bucket via cloudfront, also you need to request a new TLS certificate and bind it to your cloudfront distribution.

    Read more…
  • Non-trivial constructors in Kotlin

    Kotlin really simplifies things such as defining constructors and writing immutable objects for your application. For example, flexible Kotlin constructor definitions eliminate the need of builder classes - it is likely that you won’t need them if you use Kotlin - thus reducing overhead of having immutable objects in your application, while retaining full flexibility and expressiveness. However, if you want to define non-trivial constructor, especially in a tricky situation like data classes it might not be as trivial as just writing a function.

    Read more…
  • Try-with resources in Kotlin

    If you’re familiar with Java but not that familiar with Kotlin you might have some difficulties with using standard control structures such as try-with resources. In Kotlin it is also doable but it looks trickier, for example this code OutputStreamWriter(myOutputStream).use { // you can reference `it` value which is a resource you're working on in this lambda: it.write('a') } Is an equivalent of the following: try (final OutputStreamWriter it = new OutputStreamWriter(myOutputStream)) { it.

    Read more…
  • Kotlin and alternatives to AOP

    Usually when you’re adding a service layer in java you have to deal with so-called cross-cutting concerns in your service such as adding uniform logging for your service methods and dealing with exceptions in a uniform way. This can be done in multiple ways. As any seasoned software engineer knows, direct, brute-force approach when you’re writing this code every time for each method just doesn’t work well. If you’re doing it yourself for every method and every service in your application you’re cluttering your code and just making it harder to maintain and extend as for any significant changes in your cross-cutting code you have to rewrite service implementations for every method.

    Read more…
  • Плюс месяц

    Надо бы подвести итоги уже более чем месячного пребывания в Америке. Напряженный ритм первых дней спал, самые главные дела переделаны. Теперь бывают моменты, когда мне кажется, что я все еще в Питере - из-за раннего заката и случающихся дождей, но мелкие детали слишком другой жизни делают эти deja vu очень короткими. Получил здесь местные водительские права, сдал практику с первого раза. Учитывая то, что на права я сдавал пять лет назад и с тех пор у меня не было машины это было целое достижение.

    Read more…
  • Scheduling notifications on Ubuntu in a geeky way

    Several days ago I tried to find out a way to schedule notifications on my Ubuntu, mostly for myself. The reason why I bothered about it is because I wanted to get rid of all the distractions namely email notifications, messenger, etc. so that I can verify updates - e.g. new emails without breaking concentration and actually staying in the flow. Luckily I’m using Ubuntu as an OS for my work.

    Read more…
  • О работе, сдаче на права и поезке к океану

    Закончилась первая неделя на новой работе, из-за стресса, информационного перегруза и большого количества дел и впечатлений не мог делать заметки в блоге. Чтобы вы могли оценить “маштаб трагедии” замечу, что за первую неделю получил больше 500 писем по email, не говоря уже о большом количестве документации, которую надо хорошо осознать. To make matters worse, как говорится, еще нужно общаться на английском. К сожалению, не смогу пока подробно рассказывать о своей новой работе, т.

    Read more…
  • Руководство для новых иммигрантов

    Открыл для себя интересный документ, составленный иммиграционной службой США. По нему те, кто не был еще в Америке смогут сориентироваться как искать работу, жилье, открывать и многое другое.

  • О дожде, стрессе от переезда и политкорректности

    Сначала о дожде. В Петербурге за 12 лет я никогда такого не видел - непрерывный, часто довольно сильный дождь в течении четырех дней. Вчера плюнули на дождь и пошли гулять с ребенком в местный небольшой парк на Lake Union. Забавно, но даже в дождь довольно много людей поддерживает здоровый образ жизни - бегают и катаются на велосипедах. Сегодня дождь, наконец, закончился, и в городе в нескольких местах появилась радуга, было очень красиво в момент отступления грозовых туч и появления солнца.

    Read more…
  • 28 сентября, съем жилья

    Последние пару дней практически непрестанно шел дождь, так что наши прогулки по городу пришлось отложить. Впрочем, в редкие моменты прояснения погоды удалось открыть счет в местном банке, взять местный пакет мобильной связи и прицениться к местной недвижимости с точки зрения съема. Впрочем по порядку. Я открывал счет в First Tech Credit Union - это довольно интересный экземпляр из т.н. “Credit Union” серии банков в штатах. Необычность этого банка в том, что открыть счет там могут только сотрудники высокотехнологичных компаний, типа Boeing, Google и Amazon.

    Read more…
  • 25 сентября, первый день в Сиэтле

    Свершилось, наконец перелет завершен. Сейчас я думаю, что сильно недооценил совет, который мне давали несколько товарищей - о том, что стоит сначала переехать одному, а потом, когда обустроишься, можно звать к себе жену с ребенком. Перелет с маленьким ребенком - это тоже еще то испытание. Рассказать об этом сложно, надо это прочувствовать :) В общем, на будущее, я присоединюсь к дававшим такой совет. Оказалось, что местные знают о России и, как правило, несколько слов на русском.

    Read more…