Заключительная часть серии статей про мой опыт перехода с PHP на Go.

Первая часть, вторая, третья, четвертая.

4,5 года назад я имел неосторожность начать писать свою криптовалюту на совсем неподходящем для этого дела языке — на PHP. В итоге, конечно, написал (я упрямый), но получился костыль на костыле и то, что оно вообще работало было просто какой-то магией.

Сразу хочу предупредить, программер я самоучка-недоучка и пишу код, мягко сказать, неидеально.

Началось всё с того, что я расстался с девушкой, по имени Катя и в этот же день (4 апреля 2015-го) решил изучить Go и переписать свою криптовалюту. Писать про Катю не под спойлерами не могу, т.к. хабр всё же для IT-шных статей, а не для любовных рассказов и суровые айтишники, которым интересна тема Go, могут просто не обращать внимание на спойлеры «про Катю» и «про Машу».

Итог 8 месяцев: приложение работает на Win, OSX, Linux, FreeBSD, Android, IOS

Общего кода ~73к строк, кода под разные ОС где-то несколько сотен строчек.

40к — обработка/генерация блоков/тр-ий, 17.5к — контроллеры для интерфейса, 15.5к — шаблоны.

Поддерживаются PostgreSQL, SQLite, MySQL.

Тех, кто будет тестировать мое творение, предупреждаю — могут быть баги, и если у Вас есть время, черкните о них, пожалуйста, на darwin@dcoin.club или в личку на хабре. Пожелания и советы тоже приветствуются.

В первых четырех частях я рассказал про то, как в dcoin функционирует веб-сервер, про html/template, базы данных, плавное завершение приложения, шифрование и парсинг блоков, Android-приложение.

В этой части я расскажу про компиляцию под IOS.

Начало


Первой сложностью было то, что у меня не было сертификата разработчика. А без него скомпилировать приложение не получалось. Айфона у меня тоже не было, также как и Мака. Дня 3 возился с установкой osx на virualbox, в итоге смог поставить только на vmware и наладить сеть с virtualbox, чтобы в консоле работать.

Выяснил, что в моему счастью, в xcode 7 появилась возможность компилить приложения с фришным сертификатом, который может создать любой желающий. И айфон 4s мне очень вовремя одолжили. Можно было с головой погрузиться в разработку.

Про Катю
(В предыдущих частях):
Написал ей в ВК, сказала, что тел дома забыла, а сейчас у подруги. Я написал, что подожду её. После чего получил «Не звони и не пиши мне больше!!!!». Вопросов задавать не стал, позвонил в соседнюю квартиру, попросил передать цветы Кате, когда она будет дома. Приехал домой, через несколько часов принял решение переписать Dcoin на Go.

Через пару дней написал ей, что на несколько месяцев ухожу с головой в свой проект и попросил не беспокоить меня по пустякам.

Через неделю от Кати пришла смс-ка «привет. ну как ты там?». Я не ответил. Через неделю еще одна «привет. как дела?». Я снова не ответил.

Еще примерно через неделю она написала, что ей срочно нужно 7 т.р. в долг, т.к. ей не хватает на оплату за квартиру. Я ответил «OK». На следующий день она приехала ко мне домой.

Я не знаю, что у неё было в голове, наверное думала, что я буду к ней приставать. Весь вечер она была какой-то странной. Я был холоден и старался избегать любых прикосновений к ней. Мы поели, попили чаю. Катя сказала, что ей надо домой. Я вызвал такси.
Когда провожал её до такси спросил:

— Мы ведь не вместе да? Т.е. я могу делать что захочу?
Она: — В смысле «что захочу»? нет, мы вместе (пододвигается ко мне)
Я: — Ну у нас же не было первого свидания, мы еще не начали всё с начала.
Она: — Так вот было же только что.
Я: — Какое же это свидание, ты просто за деньгами приехала.

Мы уже стояли у дверей такси, я её усадил, расплатился с водителем, она уехала.

Утром зазвонил телефон, это была Катя. Я не поднял трубку.

На следующий день она прислала смс-ку «привет. я вчера звонила, ты не взял трубку». Я не стал отвечать.

Через неделю она написала, что получила з.п. и хочет скинуть мне на карту деньги. Я ни чего не ответил. Через несколько дней она написала «привет. как дела?». Я снова игнорировал.

Еще примерно через неделю я наконец запустил Dcoin на нодах и увидев, как идет генерации блоков и как они летают между нодами, наполняя базы данных. Мне показалось, что это можно считать завершением моего временного отшельничества и я написал Кате.

Она очень позитивно отреагировала на то, что я вышел с ней на связь, согласилась встретиться. Потом сказала, что у неё всё плохо, подружка с которой она снимала квартиру съехала и что она из-за стрессов каждый день плачет, еще и уволиться решила. Я решил, что, когда мы встретимся, предложу ей переехать жить ко мне и ни о чем не париться.

Скомпилировалось и запустилось всё без особых проблем. Открыл в браузере и… ничего. Но зато если зайти по сети на 127.0.0.1:8089 то выдавало кошелек. Стало очевидным, что при нажатии кнопки home приложение переходит в какой-то спящий режим.

По аналогии с андроидом решил сделать сервис. Но, оказывается сервисы на ios невозможны. Максимум что можно сделать — это повисеть в бэкграунде 600 секунд. Так то оно, конечно, логично — борьба за сохранность заряда аккумулятора. В общем, пришлось изучать, как там вообще работают приложения в ios.

Про Катю
В итоге Катя так и не приехала. Опять были какие-то отмазки. Закончилось тем, что она меня снова послала. На этот раз я не думал сразу уходить, т.к. чувствовал, что нужен ей. Но Катя слишком сильно хотела, чтобы я ушел и мне пришлось оставить её в покое. И пообещать больше никогда не звонить и не писать ей.


Создал простенькое приложение в xcode, кинул на тел, работает. Начал копать структуру файлов и параллельно искать что-то похожее в gomobile, нашел вот этот файлик. Узнал про NSLog, определил место, куда он выдает инфу

Помню свою радость, когда увидел строки в логе, которые выводило мое приложение. Это было круто, связь налажена, дальше будет проще. Для меня возможность писать и читать логи — это, наверное, самое важное при разработке приложения.

Про Машу
Снова стал искать девушку на сайтах знакомств и в ВК. Я забыл упомянуть, что держу себя в отличной физ. форме, т.к. дома есть куча блинов, 2 штанги, гантельные грифы, скамья и турник. И выгляжу на 20 с чем-то, хотя мне уже за 30. Довольно быстро нашел девушку, которая мне нравилась и которая хотела со мной встретиться.

Objectve-C я не знал, да и сейчас толком не знаю. Но было очевидно, что без понимания, как минимум, синтаксиса ничего не получится. Немного почитал уроки про Objectve-C, стало проще понимать код.

Погуглил про фоновый режим, выяснил, что надо в didFinishLaunchingWithOptions добавить вот такой код
  // UIApplicationBackgroundFetchIntervalMinimum - чтобы наше приложение запустилось в бэкграунде при любом возможном случае
  [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

И добавить в info.plist
  <key>UIBackgroundModes</key>
  <array>
    <string>fetch</string>
  </array>

Gomobile генерит свой info.plist. Внести в него правки можно тут.

Про Машу
На первое свидание я опоздал минут на 10. Когда увидел Машу, то сразу подумал «Ухты, а мне везет», она была очень в моем вкусе. Мы гуляли по парку, катались на лодке, потом я сказал, что мне надо поесть белковой пищи, иначе мышцы расти не будут и повел к себе домой. Поев куриного мяса, пошли в спальню смотреть фильм. Но минут через 30 она сказала, что ей надо домой, т.к. она плохо себя чувствует из-за того, что еще не до конца вылечилась от простуды. Вызвал такси. Маша уехала.

webView


То, что в браузере всё работало было конечно круто, но этого хватало лишь на 3 минуты, ведь когда открывается браузер приложение идет в фоновый режим и через 3 минуты падает. Без webView тут никак. Довольно долго разбирался, куда и как вставить webView, чтобы оно отображалось. GUI-то нет, всё в текстовом файле надо писать, а учитывая, что с разработкой под IOS я был вообще не знаком, мне было очень тяжко

В итоге, конечно, всё получилось и оказалось крайне просто.

Про Машу
Затем в течение недели она говорила, что работает и нет времени встретиться, и увидеться мы сможем только в воскресенье и не раньше, чем через 2 недели. Я сказал, чтобы тогда просто приезжала ко мне после работы, живем то рядом, а видеться раз в неделю меня не устраивает. Она ответила, что подумает.
Через день написала, что боится ехать на ночь к малознакомому парню. Я сказал, что думал что она пропала с концами и уже чуть не начал назначать свидания другим девушкам на эти выходные. Она разозлилась, ругалась.
На следующий день отправил шутки ради смс-ку «Весь день на свиданках, катаюсь на лодке, в мозолях руки и не только». Шутку она не поняла, разозлилась пуще прежнего, пришлось объяснить, что мол шутка это, дома я весь день был, код писал.

- (void)viewDidLoad
{
  // в фоновом потоке спим 3 сек, чтобы веб-сервер мог успеть запуститься, к БД подключиться и пр.
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        [NSThread sleepForTimeInterval:3.0f];
        // Переходим к выполнению кода в главном потоке
        dispatch_async(dispatch_get_main_queue(), ^{
	    // собвственно сам webView
	    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
	    NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://127.0.0.1:8089"]];    
	    self.webView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
	    self.webView.scrollView.bounces = NO;
	    self.webView.scalesPageToFit = NO;
	    self.view = self.webView;
	    self.webView.delegate = self;
	    [self.webView loadRequest:request];
        });
    });
    [super viewDidLoad];
}


В интерфейс ViewController надо добавить наш webView
@interface ViewController : UIViewController<UIWebViewDelegate,UIScrollViewDelegate,UITextFieldDelegate>
{
    IBOutlet UIWebView *webView;
    .....
}
@property(nonatomic,retain)UIWebView *webView;

Про Машу
Через день сказала, что готова приехать ко мне на ночь. Видимо ревность победила страх. Я, честно говоря, сильно удивился. На всякий случай сказал, что приставить к ней не буду если она первая не начнет, просто поужинаем, поболтаем и спать ляжем.

Уведомления


«Раз всё так просто, то надо сделать и уведомления» — подумал я.
Objectiv-C код пришлось внедрять в Go
// +build darwin
// +build arm arm64

package sendnotif

/*
#cgo CFLAGS: -x objective-c
#cgo LDFLAGS: -framework Foundation -framework GLKit -framework UIKit
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <GLKit/GLKit.h>

void
ShowMessM(char* title, char* text) {
    UILocalNotification* localNotification = [[UILocalNotification alloc] init];
    localNotification.soundName = UILocalNotificationDefaultSoundName;
    localNotification.alertTitle = [NSString stringWithUTF8String:title];
    localNotification.alertBody = [NSString stringWithUTF8String:text];
    localNotification.timeZone = [NSTimeZone systemTimeZone];
    localNotification.applicationIconBadgeNumber = 1;
    localNotification.repeatInterval = NSCalendarUnitMinute;
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];
}


*/
import "C"

func SendMobileNotification(title, text string) {
	C.ShowMessM(C.CString(title), C.CString(text))
}


Про Машу
Прислал к ней такси, встретил, поднялись ко мне, поужинали, посмотрели какой-то фильм. Время было уже позднее, надо было ложиться спать. Она сказала, что будет спать на гостевом диване, т.к. со мной в одной кровати она еще не готова. «Ну нет, так нет», постелил ей на диване. Через 5 минут заходит и говорит, что у неё «этого» еще никогда не было, но она очень хочет. Для меня это стало приятной неожиданностью. В общем, той ночью мы не спали.

В Go коде использовать так: sendnotif.SendMobileNotification(«Заголовок», «Текст уведомления»)
И в didFinishLaunchingWithOptions надо добавить:

if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
    {
        // iOS 8 Notifications
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
        
        [application registerForRemoteNotifications];
    }
    else
    {
        // iOS < 8 Notifications
        [application registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
    }

Это чтобы при запуске у пользователя вылезло сообщение с запросом прав на использование уведомлений.

Про Машу
На 4-м свидании я предложил ей переехать ко мне. Маша согласилась. Заехал к ней в общагу и перевез вещи.

Заключение


На этом я заканчиваю серию статей про свой опыт перехода с PHP на Go. Надеюсь мой материал был кому-то полезен. Если будут вопросы про кроссплатформенную разработку на Go, пишите в личку, помогу.

Про Машу и Катю
Прошло где-то пару недель. Поздний вечер, лежим с Машей на кровати, смотрим Интернов. Звонит Катя. Пьяная. Говорит, что просит у всех прощения, и что она наглоталась снотворного и через несколько часов умрет. Я растерялся, не знал что говорить. Попытался выяснить, где она находится, чтобы прислать к ней полицию и медиков. Потом написал её лучшей подружке, чтобы она сообщала её адрес и связалась срочно с Катей, она почему-то на захотела говорить адрес. Позвонил Кате, и услышал на заднем плане чей-то пьяный голос. Всё стало ясно, это блеф, она развлекается со своей подружкой. На следующий день убедился, что с Катей всё в порядке, т.к. она была онлайн.
Сейчас уже 6-й месяц живу с Машей. Недавно завели кота.


P.S.
В Dcoin сейчас можно получить бесплатные монеты (хватит на оплату инета на несколько месяцев).

Комментарии (95)


  1. Drag13
    15.04.2016 13:19
    +18

    Спасибо за… Машу :)


  1. c-darwin
    15.04.2016 13:19
    +5

    Топик в минусах. Подскажите, пожалуйста, что я сделал не так?


    1. xakepmega
      15.04.2016 13:27
      +35

      Наверное все дело в Маше, все ждали то хеппиенда с Катей.


      1. c-darwin
        15.04.2016 13:31
        +1

        Тут я бессилен. Только если вдруг с Машей расстанемся, тогда появится продолжение истории про Катю.


        1. LoadRunner
          15.04.2016 15:12
          +20

          Неужели, после всего, что было, возможно продолжение истории про Катю? Я думал, что всё, история с Катей закончена навсегда.


    1. negasus
      15.04.2016 13:30
      +11

      Думаю, все эти Кати и Маши хороши в меру.


      1. c-darwin
        15.04.2016 13:36
        +5

        Да, наверное, Вы правы. Просто тут просили, вот я и выложил.


    1. makcums
      15.04.2016 13:50
      +6

      Завидуют…


    1. Error_403_Forbidden
      15.04.2016 14:05
      +25

      За «Дом-2» на хабре


    1. Greendq
      15.04.2016 16:25

      Надо было код под спойлеры убирать, а лирику открытым текстом. :)


      1. vlivyur
        15.04.2016 16:26
        +2

        Предыдущие части почитайте, в области комментариев.


    1. 0xd34df00d
      15.04.2016 16:44
      +8

      Да всё вы сделали так, просто… Ну, например, я пишу код на C++ и Haskell и горя с девушками не знаю.

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


      1. c-darwin
        15.04.2016 17:23

        При знакомстве через инет надо учесть много факторов. Но самое главное — писать разным девушкам, кто-то да ответит. У меня, если не ошибаюсь, был 1 ответ на 50 (может меньше, точно не помню). Если хотите, помогу, пишите в личку.


        1. 0xd34df00d
          15.04.2016 17:32

          Тут вопрос чуть более комплексный, чем «кому писать», так что фиг с ним (но спасибо за добрый порыв!).

          Да, тем более, мне и так норм, просто ещё вчера с вечера заметил в обсуждаемых пост про Go, сегодня с утра захожу, хочу потрол попереписываться на тему перспектив Go для программиста — а его в обсуждаемых уже нет, зато другой пост про Go есть. Думаю, дай зайду тоже, погляжу, а тут одни девушки. Вот и фрустрация.


        1. IvaYan
          15.04.2016 17:33
          +4

          Напишите статью, а то вам сейчас личку завалят :) И что бы по-научному, с графиками, Data Mining, IPython, вот это вот все :)

          А по теме — поздравляю автора, все хорошо, что хорошо закончилось


        1. maiketa
          15.04.2016 19:16
          +1

          С таким фундаментальным подходом… при таком количестве входных переменных…
          А у вас, случайно, нет реализации поиски девушки на VK?
          Я согласен даже на PHP и костыли.


          1. foxmuldercp
            16.04.2016 21:53

            Да, знакомства с вк убрали. пришлось искать альтернативы в своё время.


    1. VovanZ
      15.04.2016 19:15

      Ссылка с картинки — битая.


    1. Kibastus
      15.04.2016 19:16

      Друзья Кати постарались, не иначе


    1. Koobeton
      16.04.2016 11:10
      +1

      Дуров Автор, верни Катю!


    1. LexS007
      16.04.2016 11:38
      -1

      Все так. Спасибо за цикл статей. Было интересно почитать.


    1. alexraven
      20.04.2016 01:16
      +2

      Лучше бы просто сразу завел кота, и топик не был бы в минусах. А то Кати понимаешь, Маши. А кот — это кот.


  1. rule
    15.04.2016 13:52
    +62

    Всё отлично, как по мне всё очень даже символично. Автор перешел с РНР на Go и с Кати на Машу. Ибо зачем себя мучать то?


  1. 80x86
    15.04.2016 13:54
    +3

    «Хорошую девочку Катей не назовут»?
    Спасибо за кат-комикс, было весело.


  1. AndrewN
    15.04.2016 13:55
    +8

    ПроКатюМашу. Как-то все у автора не состыковывается и создается впечатление что автор все сочиняет на ходу, не могу понять что именно меня настораживает, но первые посты с этим последним как-то не в одном русле…
    Эта концовка как-то быстренько все завершает и обрывает историю


    1. c-darwin
      15.04.2016 14:18
      +3

      Всё написанное мной — правда.
      Когда сильно влюблен, то ведешь себя совершенно по другому. И пересказывать истории я плохо умею, поэтому может показаться что-то в разном русле.


    1. vadoo
      15.04.2016 16:01
      +2

      И переживаю, и сочувствую автору, но в возрасте за 30 вести себя, как в 20?


      1. Urichalex
        15.04.2016 17:14
        +3

        Есть люди, которым кроме кода ничего не нужно. Есть люди, которые любят алкоголь и тусовки. А есть люди, которые не могут быть одни. Я автора понимаю, ибо сам умудряюсь совмещать код с отношениями


        1. vadoo
          15.04.2016 18:00
          +1

          Вероятно, мой вопрос поняли по-другому) Я считаю, что автор делает всё правильно-в жизни должен быть и код, и алкоголь, и тусовки, и отношения(перечислено в случайном порядке). Просто меня удивили некоторые моменты поведения в отношениях. Или же, как вариант, по описанию я представил себе неверную картину.

          P.S. господа, а можете черкнуть пару слов о минусах? для моего понимания просто. благодарю


          1. Urichalex
            15.04.2016 18:05

            Видимо, действительно, кто-то что-то не понял, или не так понял. Ушла девушка -> не могу быть один -> поиск новой девушки -> я не один.
            Многие долгое время сидят и ждут в мечтаниях (посещая злачные сайты). А другие не ждут, и действуют сами. Пусть это выглядит жесто? ко. Но ведь и Катя не ангел


            1. 0xd34df00d
              15.04.2016 18:21
              +1

              Чем же жёстко? Скорее, такая готовность к действиям выглядит как повод для зависти, а не жёсткость.


              1. Urichalex
                15.04.2016 18:32

                Я неверно выразился. Хотел сказать «Путь для кого-то это выглядит жестко»


          1. 0xd34df00d
            15.04.2016 18:22

            и алкоголь, и тусовки, и отношения

            Обижаете хикк.


            1. vadoo
              15.04.2016 19:24

              Ни в коем случае.
              Я считаю это нормальным и правильным. Вы считаете нормальным и правильным противоположные вещи.
              Обижать это когда Вы мне или я Вам буду говорить, что нормально и правильно. Согласны?


              1. 0xd34df00d
                15.04.2016 19:26
                +1

                Вы меня запутали :(

                Чем «я считаю это нормальным и правильным» отличается от «это нормально и правильно»?

                Я бы понял ещё, наверное, разницу этих утверждений с «это нормально и правильно для меня», но тогда есть некоторые вопросы к слову «нормально» в контексте одноточечной выборки.


  1. HunterNNm
    15.04.2016 13:55

    Пришлось перечитать сначала предыдущую часть — уже забыл, на чем там закончилось…


  1. c-darwin
    15.04.2016 13:56

    Кстати. Если кто-то будет 21 апреля на выставке стартапов TechDay в Нью-Йорке велкам к нашему стенду.
    И еще. В Dcoin сейчас можно получить бесплатные монеты (хватит на оплату инета на несколько месяцев).


    1. cheshir_Kat
      15.04.2016 14:49
      +1

      Участие на выставке звучит как хэппи-энд основной сюжетной линии. Добавьте в основной текст


    1. agentx001
      15.04.2016 15:10
      +2

      А КатяМаша будет?


      1. c-darwin
        15.04.2016 15:26
        +1

        К сожалению, не будет, визы нету. Но будет другая девушка.


        1. c01nd01r
          18.04.2016 10:54
          +2

          О, новый цикл статей?


  1. dmitry_dvm
    15.04.2016 13:58
    +6

    Катюня деньги вернула?


    1. c-darwin
      15.04.2016 13:59
      +5

      Неа.


  1. igrishaev
    15.04.2016 14:20
    +8

    Котец — всему венец.


  1. Profi
    15.04.2016 15:12
    +2

    В какой-то момент подумал, что девушки в квартире видели то чего не видел сам хозяин о_О Сорри, что не про Dcoin, хотя чего это я, тут все комментаторы не про Dcoin.


  1. roman_lyce
    15.04.2016 15:16

    А Маша в курсе истории про Катю и то, как на Хабре ждали финала?


    1. c-darwin
      15.04.2016 15:27

      Частично в курсе. Про истории на хабре не знает.


  1. rasswet
    15.04.2016 16:47
    +1

    дочитал про Катю. уже как призабыл о ней за прошедшие два месяца.
    успехов в ваших проектах!


    1. c-darwin
      15.04.2016 20:24

      Спасибо!


  1. DarWiM
    15.04.2016 17:05
    +2

    А я рад, что у вас всё получилось именно так :)
    Всех благ!


    1. c-darwin
      15.04.2016 20:24

      Спасибо!


  1. Biblusha
    15.04.2016 17:40

    Спасибо за статью.

    какой IDE/редактором кода пользовались?
    как он подсвечивает Objective-C код в блоке /*...*/?
    будете открывать код?
    и как запускали Go-код на iPhone?


    1. Biblusha
      15.04.2016 17:45

      будете открывать код?

      нашёл


    1. c-darwin
      15.04.2016 18:33

      Intellij idea. Код не подсвечивает, как комменты получается.
      Создавал .app при помощи gomobile и кидал через itunes на девайс.


      1. Sirikid
        15.04.2016 20:24

        Кстати, можно попробовать замутить language injection в комментарии, не знаю можно ли такое сделать в комментарии но, регексы в Java-строках и синтаксис в теге ``` в Markdown подсвечивает. Надо будет попробовать.


  1. Sasha_Pitenin
    15.04.2016 17:40

    Читал статью только из — за интереса продолжения истории про Катю, а не из за криптовалюты :-)


  1. fly_style
    15.04.2016 17:59
    +1

    Ура, наконец — то снова Катя, я дождался этой стори!


  1. twileck
    15.04.2016 18:16

    Интересно аудиторию к своей статье привлек за счёт личной жизни, сам дочитал с удовольствием :)


  1. yuriy12
    15.04.2016 18:28
    +1

    Отличная серия статей про GO!

    Насчет Маши:
    Исходя из личного опыта и ни в коем случае не в порядке осуждения: как то не сильно стыкуются два утверждения:
    1. «Осталась на ночь после 3-го свидания»
    2. «никогда не было»
    Если не секрет, сколько лет Маше?


    1. c-darwin
      15.04.2016 18:28

      На тот момент было 19


      1. yuriy12
        15.04.2016 18:42

        Вам повезло, во времена моей молодости(середина 90х) девушку старше 16-и у которой «никогда не было» найти было практически нереально. Берегите Машу! Счастья вам обоим!
        И… ждём статьи про GO (даже если без Маши:)) и новостей про вашу криптовалюту


        1. 0xd34df00d
          15.04.2016 18:50

          Эм, а в чём везение?

          Лично мне было бы стрёмновато с девушкой, у которой никогда не было. Быть первым — большая ответственность, к которой лично я не готов. Мало ли, вдруг я потом девушке на всю жизнь желание отобью?


          1. yuriy12
            15.04.2016 18:56

            Судя по спойлерам автору за 30 и он искал девушку для серьезных отношений. Они вместе довольно приличное время. Я считаю что ему повезло и думаю что он и сам так считает. Давайте спросим у Дмитрия?


            1. 0xd34df00d
              15.04.2016 19:03

              Давайте спросим. Но мне и ваше мнение интересно услышать, раз вы думаете, что ему в данном контексте повезло.


              1. yuriy12
                15.04.2016 19:23

                По молодости я думал точно так же. Начало девяностых и «сексуальная революция» в постсоветском пространстве не оставляли шансов целомудрию. Думаю что процент девственниц к совершеннолетию был в районе статистической погрешности. Собственно проблема не в целомудрии как таковом а в восприятии отношений как к виду развлечений. Где-то к 25-и мои взгляды на этот вопрос изменились. Появилась ответственность. Одного лишь секса стало недостаточно для отношений. Перспектива Разделить судьбу с дамой, к которой нет ни капли доверия не радует. Так что по моему если девушка сохранила целомудрие до совершеннолетия, как минимум имеет голову на плечах и сможет сохранить верность.
                Прошу прощения за оффтопик в технической теме.


                1. 0xd34df00d
                  15.04.2016 19:32
                  +1

                  Да тут вся тема оффтопик :)

                  Мне известны примеры, когда девушки останавливались далеко не на первом парне (и для него, соответственно, они целомудрие не сохранили). И ничего, верно и целомудренно всё.
                  Точно также мне известны примеры, когда до того целомудренным и верным я-с-одним-первым-и-единственным-парнем-уже-5-лет-девушкам лет в 25-28 срывало башню, и они пускались во все тяжкие.
                  Точно также мне уже, к сожалению, на более личном опыте известны случаи, когда сохранённое целомудрие означает лишь отсутствие интереса к сексу, а не голову на плечах. В силу определённых причин уже мне, в свою очередь, не хватило тогда опыта, головы на плечах и чего-то ещё сделать правильные выводы.

                  В общем, вопрос сохранности целомудрия ИМХО ортогонален вопросу верности.


                  1. yuriy12
                    15.04.2016 19:35

                    Возможно Вы правы. Но наши с вами доводы можно проверить только путем проб и ошибок.


                    1. 0xd34df00d
                      15.04.2016 19:36
                      +1

                      Надо придумать дизайн двойного слепого тестирования в данном случае.


                      1. yuriy12
                        15.04.2016 19:42

                        Надеюсь «слепого» в переносном смысле :) Как говорят в Италии: «Occhio vuole la sua parte» :)


            1. vadoo
              15.04.2016 19:20

              Если у девушки это была жизненная позиция, то я присоединяюсь по поводу «повезло»


            1. c-darwin
              15.04.2016 19:21

              Честно говоря, бывают моменты, когда скучаю по холостяцкой жизни :)
              Но в целом доволен.


              1. yuriy12
                15.04.2016 19:31
                +1

                Это вполне нормально. Было бы удивительно если бы не скучали :)


        1. Stas911
          16.04.2016 00:25
          +1

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

          Надеюсь, автору повезло и они будут жить долго и счастливо.


          1. foxmuldercp
            16.04.2016 21:57
            +1

            «пара — это когда тараканы у обоих в головах аплодируют стоя»


  1. AndreyS1
    15.04.2016 19:53

    прочитал только под спойлерами, скачал DCOIN => возник вопрос как в go с GUI и IDE


    1. c-darwin
      15.04.2016 19:55

      У меня IDE Intellij idea+go плагин
      С GUI сложно, проще использовать хромиум (https://github.com/breach/thrust)


  1. uvelichitel
    15.04.2016 20:01

    IBM выложила в opensource 44kloc blockchain на Go https://github.com/openblockchain. Ваша работа?


  1. grigorym
    15.04.2016 20:03

    В прошлый раз я испытывал такое опустошение от закончившегося литературного опуса, когда первый раз дочитал до конца Властелина Колец. Спасибо, автор!


  1. Anarchist
    15.04.2016 21:28
    +3

    Мачо-ориентированное программирование


  1. AndAm
    15.04.2016 22:16

    Спасибо за отличные статьи. Жду новых)) Счастья с Машей и успехов в нелегком деле.


    1. c-darwin
      16.04.2016 09:22

      Спасибо!


  1. white2demon
    15.04.2016 23:27

    Прослезился :'(


  1. cortwave
    16.04.2016 01:18
    +2

    Может, немного не по теме Кати, но все-таки. На веб-версии dcoina удивила одна вещь, конкретно способ авторизации: перетащить private key в окошко. Я конечно не очень силен в криптовалютах, но такой метод авторизации, когда private key должен куда-то передаваться, выглядит не очень надежным.


    1. 4ertovo4ka
      16.04.2016 02:23

      Судя по комментариям вы единственный, кто не открывал спойлеры :)


    1. c-darwin
      16.04.2016 09:22

      По другому в веб-версии не сделать. Там ключ пишется в тело html, на сервер не передается, при генерации подписи берется через js из html.
      Безопаснее, конечно, качать кошелек на ПК/мобильный и ставить пароль на ключ.
      Изначально веб-версия не планировалась, но пользователи стали просить, пришлось сделать.


  1. webirus
    16.04.2016 02:36
    -2

    Читал только спойлеры. Интересная статья)))


    1. 4ertovo4ka
      16.04.2016 04:44

      Технари ушли в отрыв…


  1. 4ertovo4ka
    16.04.2016 04:44

    Мне вот интересно — а у Кати и/или Маши аккаунты на хабре есть?
    А то взгяд на проблему какой-то однобокий :(


    1. IvaYan
      16.04.2016 12:39

      Насколько я помню из комментариев автора, ни та ни другая не знают об этой хабра-эпопее. Думаю, если бы аккаунты были бы, то зна ли бы.



  1. dimmidrol
    16.04.2016 09:10

    теперь надо заново перечитать и не обращать внимание на Катю и Машу)
    Я удивлён Вашему упорству в работе. Продолжайте, жду новых историй.


  1. ComodoHacker
    16.04.2016 12:42
    -1

    Зашел в топик ради интереса: будет ли хоть один комментарий не про Катю?



  1. ainu
    16.04.2016 18:47
    +1

    История про Катю очень, очень, очень сильно напоминает сюжет фильма «500 дней лета».


  1. r3l0c
    17.04.2016 22:25
    -1

    Я искренне рад за автора, Маша куда более ламповая, чем «марашутка» Катя.