CocoaHeads

Языком разработки Swift я заинтересовался совсем недавно. Когда Apple представила Swift, он мне сразу понравился тем, что совершенно не похож на ужасный Objective-C, который пугает меня до сих пор. Несмотря на то, что у меня была возможность писать для macOS, я как-то тему разработки под яблочные девайсы обходил стороной. А теперь потихоньку пишу для себя программки на Swift для macOS и Raspberry Pi 3.

Swift мне нравится и стало любопытно, что рассказывают на конференциях для Apple-разработчиков. Поэтому впервые сходил на мероприятие по iOS разработке - CocoaHeads. Мероприятие проходило в офисе компании JetBrains, уже знакомом по Google-мероприятиям. Было 3 доклада: алгоритмы в практике, CoreML и ARKit.

Михаил Панин, Алгоритмы в практике. Михаил рассказал о том, почему некоторые алгоритмы работают медленно и как с этим бороться. Рассмотрел как устроены под капотом некоторые коллекции типа Array, HashSet и TreeSet. И показал алгоритмы на графах.

Кирилл Аверьянов, CoreML: стоит ли? Кирилл был одновременно и организатором мероприятия, и спикером. Его доклад про машинное обучение понравился больше всего. Быстро и живо рассказал про новый фреймворк CoreML, который Apple представила на последнем WWDC. Этот фреймворк предназначен для машинного обучения. Он ещё мало что умеет и имеет много ограничений, но им уже можно пользоваться.

Денис Земских, ARKit: дополненная реальность для iOS. Денис рассказал про новый фреймворк ARKit, который также был представлен на последнем WWDC. Этот фреймворк для дополненной реальности выглядит впечатляюще, несмотря на то, что он ещё сырой. Работать он будет в iOS11 и на процессорах A9 и выше. Сейчас в бета версии народ пачками делает игры и приложения, которые выглядят недурно.

А ещё Кирилл провёл викторину, в которой я занял 5-ое место, несмотря на то, что под iOS ничего не писал (я вообще Android-разработчик) :) За первые 3 места компания JetBrains выдала победителям лицензии на AppCode.

Смена работы

В пятницу, 16 декабря 2016 года отработал свой последний день в компании Ready For Sky.

The Final Station

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


The Final Station это игра про постапокалиптичный мир, в котором вы машинист поезда путешествующий от станции к станции. Вы подбираете пассажиров, ухаживаете за ними, сражаетесь с толпами зомби и исследуете мир. Вы выживаете. Более 30 станций со своей историей, местностью и обитателями.

Игра выходит сегодня на PC (Steam) и PS4, на Xbox One игра выйдет 2-го сентября. В Steam доступен предзаказ http://store.steampowered.com/app/435530/, на консолях предзаказа нет.

Git

Недавно с коллегой посмотрели в канал gitlab в рабочем Slack и ужаснулись. Инженеры коммитят папочки с бинарниками прошивок, при этом папочки аккуратно названы номерами сборок прошивок:

  • Firmware v1.1
  • Firmware v1.8
  • Архив

Да, на русском языке. Сообщения к коммитам тоже пишут на русском, ну да ладно. Вчера серверный разработчик ходил к инженерам “помочь с git”, пришел чуть ли не седой. Говорит они берут проект, копируют папку и получают новый проект. Внутри конечно не вычишают .git и тащат за собой репозиторий другого проекта и так эта репа тянется из проекта в проект…

Решили срочно провести лекцию по git для инженеров на этой неделе :)


Сегодня утром наткнулся на репу одного товарища, который выполняет тестовые задания компаний и решает задачки по программированию. Только вот репозиторий у него странный и я категорически против такого подхода.

У него проекты в одном репозитории и разложены по папкам:

  • cpp
    • dll
    • tree
    • vector
  • javascript
    • framework
    • travels

А в корне репы лежит файлик git.sh следующего содержания:

#!/usr/bin/env bash
git add .
git commit -m "update"
git push origin master -f

Не знаю как в других компаниях, но у нас за такое могут по лицу ударить. Сообщения к коммитам нужно писать осмысленно, однажды сами себе спасибо скажете.


Сам я познакомился с git 1.5 года назад и было это так.

Раньше, когда я много писал на Delphi, я не использовал никаких средств для версионирования кода. Я копировал папку проекта и дописывал к ней название новой функциональности, а когда доделывал, то копировал изменения обратно в проект. Так продолжалось много лет, я терял исходники, путался и удалял или заменял не то, ломал программу, а истории для отката не было.

Со средствами для версионирования кода я впервые познакомился, когда устроился на работу в университет. В университете использовали SVN. Мы хранили репозиторий в отдельной папочке, а код из рабочей директории переносили руками через Araxis Merge. Это было муторно, но зато это помогало избежать конфликтов. Потом я переехал в Петербург и устроился на работу в проект 4Shared Music. Тут тоже использовали SVN, но уже было гораздо лучше. Коммиты делались из рабочей папки, веточки и никакого Araxis Merge.

Когда я пришел на работу в Ready For Sky, то мне довелось познакомиться с git. Я много слышал о нем, но плотно поработать не доводилось. Изначально мы внедрили Git Flow, коллеги прочитали для лекцию о пользе и удобстве этой методологии. Отдельные веточки под новые функциональности, релизы и хотфиксы это правильно.


В заключение посоветую почитать о git. Изучить git на практике можно на специальных сайтах, таких как https://try.guthub.io (на английском), http://pcottle.github.io/learnGitBranching/ (реализовано в виде игры с уровнями, присутствует русский язык)

Twitter

Некоторые возможно заметили, что я уже давно не появляюсь в твиттере. Просто однажды осознал, что твиттер из места моментальной доставки новостей превратился в средство устроения срачиков, нытья и прочих некрасивых вещей.

Я решил попробовать перестать писать и читать твиттер. Просто взял и удалил отовсюду твиттер клиенты. Первые дни было трудно, хотелось зайти и почитать что там у хохлов, но потом вроде привык.

Теперь без твиттера буду стараться писать в блог побольше, так что подписывайтесь и заходите сюда почаще :)