Есть такой вид спорта - спортивное ориентирование. В нём есть задачи, которые просто вопят о программной реализации на смартфонах. Но пока программисты обходили своим вниманием этот рынок программ.
Пример участка карты с контрольными пунктамиВ некой природной области (лес, горы) собирается толпа увлечённых людей. В начале соревнования Вам дают карту, на ней обозначены "контрольные пункты" - места где в реальности расположены призмы, компостеры или станции электронной отметки. В общем пункты, которые надо найти и одним из регламентированных способов подтвердить, что Вы на них были. Пункты эти расположены хаотично, рассыпаны облаком на карте. Каждый контрольный пункт имеет свою "цену". Обычно в часах или минутах. Если Вы не "взяли" контрольный пункт (КП), то его цена прибавляется к вашему времени прохождения дистанции. Своего рода - штрафы за невзятие. Побеждает тот, кто финиширует с минимальным временем прохождения дистанции. В принципе, можно сразу пробежать от старта до финиша, не собирая ничего, но полученные штрафы добавятся ко времени прохождения дистанции и оно будет огромным. Но бывает, что контрольные пункты находятся сильно в стороне от основного облака КП или находятся в сложнопроходимой местности. Тогда может получиться, что на взятие КП будет потрачено больше времени, чем штрафное время за его невзятие.
Ориентировщики обычно идут/бегут "по азимуту" - по прямой от КП к КП. Спортсмены могут развивать скорость до 6 км/ч даже по слегка заваленному и заросшему лесу. Но вариантов последовательности взятия КП может быть множество. Программисты, конечно же, скажут, что это банальная задача коммивояжёра. Да, с небольшими отягощениями. Местность проведения соревнований обычно очень разнообразна по ландшафту: болота, редколесья, поля, пашни, заросшие вырубки, ручьи, завалы, пески, непроходимые ветровалы, овраги, холмы, канавы и многое другое. Очевидно, что по разному ландшафту можно пройти с разной скоростью. По чистому грейдеру (грунтовой дороге, выровненной бульдозером) можно пробежать со скоростью около 6км/ч, по болоту вы будете вязнуть со скоростью 1,5-2км/ч.
Бывают два типа соревнований. В первом варианте спортсменам дают карту до старта и у них есть время для планирования маршрута. Во втором варианте карту дают на старте и время начинает отсчёт от времени выдачи карты, и спортсмены решают задачу на ходу. Когда есть запас времени до старта ориентировщики пользуются методом "булавок и нитки". Участник знает свою среднюю скорость по лесу, знает время закрытия финиша (максимальная длительность прохождения дистанции. Помножив одно на другое получает приблизительный километраж дистанции. Этот километраж умножается на масштаб карты и отмеривается нитка полученной длины. Например, масштаб карты - 500 метров в одном сантиметре, ориентировщик планирует маршрут 45км, отрезает нитку 22,5 сантиметра. Затем кладёт карту на пенку (коврик), точки контрольных пунктов, которые планирует брать, накалывает булавками, затем проматывает нитку через все булавки.
Нужна программа для смартфона. Для Андроида (никогда не видел, чтобы по лесу бегали с айфонами). Встраивание рекламы смысла почти не имеет, там где будут пользоваться этой программой зачастую не ловит интернет. Программа может быть платной в разумных пределах (не более 600р/месяц). Программа должна поддерживать векторные форматы карт, которые есть в открытом доступе (типа OSM) и работать с ними. При фотографировании выданной на соревнованиях карты программа должна распознать характерные узловые точки на фотографии и привязать их к загруженной векторной карте. Программа должна распознать на фотографии отметки контрольных пунктов и привязать их к загруженной векторной карте - они обозначаются красным кружком с номером тоже красного цвета, ничего другого на карте этими условными обозначениями не отмечают. После чего рассчитать различные варианты маршрута и выдать их клиенту - минимальные штрафы, оптимальное время прохождения дистанции, ландшафты с максимальной средней скоростью. Программа должна принимать информацию от пользователя о взятии КП и динамически перестраивать маршрут с учётом реальной скорости пользователя.
Если программа будет содержать все перечисленные функции, то гарантирована обширная аудитория. Только в России спортивным ориентированием занимается около 149 тысяч человек (данные на 30 апреля 2020г.). Это только в России... в мире это в разы более крупная аудитория. Примерно половина спортивных ориентировщиков - завсегдатаи соревнований. Они точно захотят воспользоваться такой программой, дающей тактическое преимущество. Если предположить месячную абонплату в 600 рублей (как у знаменитой Strava) у половины из 149 000человек - это почти 45 миллионов в месяц... А если добавить английскую, французскую, итальянскую, немецкую и испанскую версию... Программ таких нет ещё. Совсем. Требуемые технологии уже есть. Кто первый напишет такую программу, будет иметь шикарный куш.
Состав ПСД. Приемо-сдаточная документация#1 делится на:
1. Разрешительная документация, включая ППР;
2. Исполнительная документация.
Вся структура приемо-сдаточной документации субподрядной организации по спецмонтажным работам будет выглядеть так:
Разрешительная документация#2 термин, используемый для обозначения документации, оформляемой в соответствии со статьями 45 51 Градостроительного кодекса РФ вплоть до получения разрешения на строительство (ст. 51 ГрКРФ), а также получение разрешения на ввод объекта в эксплуатацию (ст. 55 ГрКРФ).
Исполнительная документация (ИД)#2 представляет собой текстовые и графические материалы, отражающие фактическое исполнение проектных решений и фактическое положение объектов капитального строительства и их элементов в процессе строительства, реконструкции, капитального ремонта объектов капитального строительства по мере завершения определенных в проектной документации работ.
Исполнительная документация, оформленная соответствующим образом, является документом построенного здания или сооружения, облегчающим процесс эксплуатации, отражающим техническое состояние, дающим четкое представление об ответственных производителях работ по любому из видов выполненных работ.
Ты что делаешь?
Анекдоты читаю.
А отчет?
Час назад уже у тебя на столе лежит.
Погоди, тогда почему твой предшественник на его подготовку тратил три часа?
Послушай, я тоже могу тратить три часа на его подготовку. Если хочешь, я могу читать анекдоты в столовой. Но результат будет тот же.
BIM (англ. Building Information Model или Modeling) информационная модель (или моделирование) зданий и сооружений, под которыми в широком смысле понимают любые объекты инфраструктуры, например инженерные сети (водные, газовые, электрические, канализационные, коммуникационные), дороги, железные дороги, мосты, порты и тоннели и т. д.
Информационное моделирование здания это подход к возведению, оснащению, эксплуатации и ремонту (а также сносу) здания (к управлению жизненным циклом объекта), который предполагает сбор и комплексную обработку в процессе проектирования всей архитектурно-конструкторской, технологической, экономической и иной информации о здании со всеми её взаимосвязями и зависимостями, когда здание и всё, что имеет к нему отношение, рассматриваются как единый объект.
Трёхмерная модель здания, либо другого строительного объекта, связанная с базой данных, в которой каждому элементу модели можно присвоить все необходимые атрибуты. Особенность такого подхода заключается в том, что строительный объект проектируется фактически как единое целое: изменение какого-либо из его параметров влечёт за собой автоматическое изменение связанных с ним параметров и объектов, вплоть до чертежей, визуализаций, спецификаций и календарного графика.
Исаак Ньютон:
От флюенции возьму флюксию и обратно.
Лейбниц:
Могу делать то же самое!
'Ускоряем Excel путём отключения всего "тормозящего" Public Sub AccelerateExcel() 'Больше не обновляем страницы после каждого действия Application.ScreenUpdating = False 'Расчёты переводим в ручной режим Application.Calculation = xlCalculationManual 'Отключаем события Application.EnableEvents = False 'Не отображаем границы ячеек If Workbooks.Count Then ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False End If 'Отключаем статусную строку Application.DisplayStatusBar = False 'Отключаем сообщения Excel Application.DisplayAlerts = False End Sub
'Включаем всё то что выключили процедурой AccelerateExcelPublic Sub disAccelerateExcel() 'Включаем обновление экрана после каждого события Application.ScreenUpdating = True 'Расчёты формул - снова в автоматическом режиме Application.Calculation = xlCalculationAutomatic 'Включаем события Application.EnableEvents = True 'Показываем границы ячеек If Workbooks.Count Then ActiveWorkbook.ActiveSheet.DisplayPageBreaks = True End If 'Возвращаем статусную строку Application.DisplayStatusBar = True 'Разрешаем сообшения Excel Application.DisplayAlerts = True End Sub
=СЦЕПИТЬ(АДРЕС(СТРОКА(Область_печати);СТОЛБЕЦ(Область_печати);1;1);":";АДРЕС(СТРОКА(Область_печати)+ЧСТРОК(Область_печати)-1;СТОЛБЕЦ(Область_печати)+ЧИСЛСТОЛБ(Область_печати)-1;1;1))
With Workbooks.Open(ThisWorkbook.Path + "\Шаблоны аддонов\" + NameShablonPrimer, ReadOnly:=True) .Sheets(NameShablonPrimerList).Visible = -1 .Sheets(NameShablonPrimerList).Copy after:=wb.Worksheets(Worksheets.Count) Let НачальныйНомерСтрокиВФайле = .Sheets(NameShablonPrimerList).Cells(1, 2) ' Начальный номер строки в файле шаблона Let НачальныйНомерСтолбцаВФайле = .Sheets(NameShablonPrimerList).Cells(1, 3) ' Начальный номер столбца в файле шаблона Let КонечныйНомерСтрокиВФайле = .Sheets(NameShablonPrimerList).Cells(1, 4) ' Конечный номер строки в файле шаблона Let КонечныйНомерСтолбцаВФайле = .Sheets(NameShablonPrimerList).Cells(1, 5) ' Конечный номер столбца в файле шаблона .Close True End With End If End If Do ИмяФайла = BDList + " " ' Префикс имени файла wb.Worksheets(NameShablonPrimerList).Copy after:=Worksheets(Worksheets.Count) Set новыйЛист = wb.Worksheets(NameShablonPrimerList + " (2)") For X = НачальныйНомерСтолбцаВФайле To КонечныйНомерСтолбцаВФайле Step 1 ' Перебираем столбцы в листе Примера формы-шаблона For Y = НачальныйНомерСтрокиВФайле To КонечныйНомерСтрокиВФайле Step 1 ' Перебираем строк в листе Примера формы-шаблона If Sheets(новыйЛист.Name).Cells(Y, КонечныйНомерСтолбцаВФайле + 1) = 1 Then ' При наличии спец символа проверяем на совпадении строку Let k = CStr(Sheets(новыйЛист.Name).Cells(Y, X)) ' Ищем только если в ячейке что-то есть If k <> "" Then For i = 1 To Кол_воЭл_овМассиваДанных Step 1 ContentString = CStr(Worksheets(BDList + " (2)").Cells(i + 1, НомерСтолбца)) If Len(arrСсылкиДанных(i)) > 1 Then If ContentString = "-" Or ContentString = "0" Then ContentString = "" Let k = Replace(k, arrСсылкиДанных(i), ContentString) End If Next i новыйЛист.Cells(Y, X) = k End If End If Next Y Next X For Y = НачальныйНомерСтрокиВФайле To КонечныйНомерСтрокиВФайле Step 1 Sheets(новыйЛист.Name).Cells(Y, КонечныйНомерСтолбцаВФайле + 1) = "" Next Y
Rem -= Открываем файл скопированного шаблона по новому пути и заполняем его=- Set Wapp = CreateObject("word.Application"): Wapp.Visible = False Set Wd = Wapp.Documents.Open(ИмяФайла) NameOfBookmark = arrСсылкиДанных(1) ContentOfBookmark = Worksheets("Данные для проекта").Cells(3, 3) On Error Resume Next UpdateBookmarks Wd, NameOfBookmark, ContentOfBookmark Dim ContentString As String For i = 4 To Кол_воЭл_овМассиваДанных Step 1 If Len(arrСсылкиДанных(i)) > 1 Then NameOfBookmark = arrСсылкиДанных(i) ContentString = CStr(Worksheets("БД для АОСР (2)").Cells(i, НомерСтолбца)) If ContentString = "-" Or ContentString = "0" Then ContentString = "" ContentOfBookmark = ContentString On Error Resume Next UpdateBookmarks Wd, NameOfBookmark, ContentOfBookmark End If Next i Rem -= Обновляем поля, что бы ссылки в документе Word так же обновились и приняли значение закладок, на которые ссылаются =- Wd.Fields.Update Rem -= Сохраняем и закрываем файл =- Wd.SaveAs Filename:=ИмяФайла, FileFormat:=wdFormatXMLDocument Wd.Close False: Set Wd = Nothing
Sub UpdateBookmarks(ByRef Wd, ByVal NameOfBookmark As String, ByVal ContentOfBookmark As Variant) On Error Resume Next Dim oRng As Variant Dim oBm Set oBm = Wd.Bookmarks Set oRng = oBm(NameOfBookmark).Range oRng.Text = ContentOfBookmark oBm.Add NameOfBookmark, oRngEnd Sub
Rem -= Заполняем данными таблицы ЖВК =- Dim y, k As Integer Let k = 1 For y = Worksheets("Титул").Cells(4, 4) To Worksheets("Титул").Cells(4, 5) Wd.Tables(3).cell(k, 1).Range.Text = Worksheets("БД для входного контроля (2)").Cells(6, 4 + y) Let k = k + 1 Next y End With
или Самые Частые Ошибки Фаундеров.
Признаюсь: сам запускал стартапы. Какие-то более успешно, какие-то менее. Если вдруг деньги кончались, занимался консалтингом (как тот самый кот). В итоге, знакомился с разными хорошими людьми, что помогало и мне, и им двигаться дальше.
За это время мне удалось оценить сотни pitch decks. Удалось поработать со стартапами, чтобы улучшить идеи, реализовать и запустить их продукты.
Здесь собраны самые частые ошибки, которые я видел за последние 10 лет. Все они основаны либо на личном опыте, либо на опыте фаундеров, с кем я общался. Часть ошибок типична только для русскоговорящих фаундеров, но большинство из них универсальны.
Итак, как же фаундеры стреляют себе в ногу?
Многие фаундеры стартапов это разработчики. Что характерно, они продолжают думать не как CEO, а как разработчики. И они не любят общаться с людьми, особенно с незнакомыми. Они хотят сидеть в своем подвале, "пилить фичи", а потом выйти такие:
Цитата типичного фаундера (детали немного изменены):
Мы не планируем находить клиентов. Мы планируем на берегу водоема бесплатно раздавать удочки и червей, и забирать себе толику улова. Нашими клиентами ревностно отслеживаются любые инновации. Информация будет расходиться, как круги по воде, обеспечивая на первых порах пресловутую геометрическую прогрессию. А имеющаяся на момент начала продаж команда продолжает неспешно и без напряжения наращивать функционал.
Нет, не будет ничего "расходиться". Количество шума просто огромное, и без организованных усилий про вас никто не узнает.
Факт в том, что чаще всего выигрывают (и выживают) компании не с самой лучшей технологией, а с самым лучшим product/market fit и маркетингом (ну и самые удачливые но на это сложнее повлиять): VHS vs Betamax, Facebook vs Myspace, Windows vs OS/2.
"Моя самая-лучшая-в-мире идея настолько лучшая, что каждый, кто про нее услышит, сразу же ее украдет! И все сделает сам, а я останусь ни с чем!"
Самый большой риск это не то, что вашу идею украдут. А то, что она будет никому не нужна и вас никто даже не заметит. Это вам любой инвестор скажет, и доказать обратное вы сможете только продажами.
Не важно, какая у вас идея. Я гарантирую, что вот прям сейчас, прямо в эту секунду, как минимум 10 других человек работают над точно такой же идеей. И двое из них уже продвинулись гораздо дальше, а один уже получил финансирование и нанял сотрудников.
Люди, кто способны реализовывать идеи, работают над своими собственными "самыми лучшими идеями".
Первая задача фаундера компании это не технологии, это продажи!
Вторая задача это найм и мотивация людей, кто гораздо умнее и кто гораздо лучше разбирается в технологиях, маркетинге и продажах.
Третья задача это нахождение денег, чтобы этим прекрасным людям было чем платить, и чтобы компания продолжала существовать.
Идея, какая бы она не была хорошая, ничего не стоит без реализации. Без лидера, у которого есть vision. Без команды, собранной этим лидером, которая может эту идею реализовать. И самое главное без рынка, который готов платить за конечный продукт.
Вот кто уж точно не хочет красть вашу идею, так это инвесторы. Просить их подписывать NDA это адский красный флаг. Они каждый день видят сотни таких идей, как ваша. Но я расскажу секрет: инвесторы смотрят не столько на идею, сколько на фаундеров.
Выбирая между отличной идеей, но средним фаундером, и плохой идеей и прекрасным фаундером, инвесторы в 100% случаев выберут последнее.
Почему? Потому что прекрасный фаундер протестирует рынок и быстро поймет, что его идея хреновая, и сделает pivot. И протестирует опять. И сделает еще один pivot, если нужно. И в итоге найдет product/market fit и заработает инвесторам денег.
А плохой фаундер потратит все деньги и будет удивляться, как же так его такая классная идея "не взлетела".
Патент это публичная запись с деталями о вашем изобретении и инновации. Получается, любой эту запись может взять, посмотреть, и сделать копию продукта. "Так это же будет нарушение патента!" скажете вы. И будете правы!
Но чтобы вашу правоту доказать, и тем более, чтобы остановить незаконное копирование, надо что сделать? Правильно пойти в суд. Нанять адвокатов для участия в процессе. Процесс, который будет длиться несколько лет. Это будет стоить сотни тысяч долларов как минимум, и без гарантии победы.
А теперь представьте, что компания, нарушившая ваш замечательный патент находится в другой стране. В США, например. Или еще лучше в Китае. Удачи судиться с ними! У Cisco и Apple так себе это получилось, хотя ресурсов и влияния у них немного побольше, чем у типичного фаундера.
Фокусируйтесь на продажах и не тратьте драгоценное время и деньги на игрища с патентами!
Нет, не продаст. Потому что продукт был сделан в отрыве от потребностей рынка. В отрыве от нужд и желаний реальных пользователей. Вы даже не знаете, кто они ваши клиенты. Для salesperson, каким бы он ни был хорошим, нужна уже выстроенная система продаж. А такую систему вы не построите, если не будете сначала тестировать рынок сами, пытаясь в него продавать.
Продавать сложно. Люди страшные и опасные и вас просто ненавидят (в реальности все еще хуже вы им совершенно безразличны). Но пока вы не поймете, как и кому продавать ваш продукт, никакой самый лучший в мире sleazy salesperson вам не поможет!
Первая продажа, и вторая, и третья это задача фаундера. Никто за него это не сделает.
Успешный фаундер всегда и всем продает свою идею:
- Семье чтобы работать по 18 часов в день и не видеть их неделями
- Ко-фаундерам и первым сотрудникам чтобы они шли на те же жертвы
- Инвесторам чтобы они с радостью расставались с деньгами
- Партнерам чтобы продолжали сотрудничать
- Другим фаундерам чтобы не упустить синергию
- и конечно же своим клиентам
Нет, не сделаете. Вам нужна команда. И ко-фаундер. Как минимум, один, а еще лучше два или три. Чтобы было с кем разделить неимоверно тяжелую эмоциональную ношу запуска новой компании. Чтобы был кто-то, кто сделает sanity check. И кто-то с экспертизой в тех областях, где у вас пробел. Кто-то, с кем посоветоваться и кому поплакаться в жилетку.
Во время запуска стартапа, ваш ко-фаундер существенно более важный человек, чем ваш супруг или супруга. И общаться с ним вы будете куда чаще. Выбирайте его соответственно.
Понятно что мы, технические фаундеры, все-таки больше любим нажимать пальцами на кнопки и работать с технологией. Но чтобы продолжать этим заниматься, придется носить разные шапки.
Чтобы привлечь ко-фаундера, кто хорошо делает продажи и умеет говорить ртом надо самому (хотя бы немного) научиться говорить, чтобы продать ему идею. Хорошие продажники тоже в цене как и хорошие технические фаундеры с "большим видением".
У всех есть идеи. Но не у всех есть упорство и энергия их реализовать.
Упорство нужно для того, чтобы неудачи (которых будет бесчисленное количество) не ломали волю. Чтобы первая идея (которая будет так себе) дорабатывалась, улучшалась и полностью менялась. Чтобы учиться новым страшным и непонятным вещам: SEO, маркетингу, бухгалтерии, продажам, leadership, и еще сотни других скилов.
Энергия нужна, чтобы подкреплять упорство. Нужно будет много энергии. Результатов может не быть и год, и два. Но все это время надо, несмотря ни на что, продолжать работать, анализировать, говорить с клиентами, партнерами, набирать команду, встречаться с инвесторами. Создавать.
А идея она не важна! Надо просто, чтобы было с чего начать. А потом упорством и энергией это преобразовать в продукт, который реально заработает.
Многие успешные компании так и начинались с чего-то совершенно другого.
Дерзайте, и все у вас получится!
В этой статье не будет кода. Не будет красивых архитектур. Не будет рекламы модных и функциональных фреймворков. Не будет новых фич или великолепных способов решений старых задач. Не будет супер идей или впечатляющих открытий. Не будет очередной истории успешного или провального стартапа.
Ниже, просто интимная история про чувства, этапы, страхи, немного фантастики и муки выбора.
Давайте представим.
Вы придумали какой-то свой алгоритм для очередной сложной задачи.
Не важно в какой сфере, не важно на каких языках и технологиях.
Важно, что ломая голову как что-то усовершенствовать или даже создать полностью новое, во сне или во время медитации, при утреннем кофе или при чтении интересной статьи на Хабре - включилась лампочка! Идея! Родилось образное представление концепции - которой не хватало для складывания кого-то огромного пазла из текущих задач в каком-то проекте.
Представили?
Вспомните то чувство, когда вы увидели только первый набросок взаимосвязей.
Когда в сознании рисуются схемы, блоки, условия, переходы. И вы даже начинаете понимать, что на самом деле это может быть сложно, запутанно и не факт что будет быстро или малозатратно, или даже вообще - будет работать. Возникают сомнения, но также продолжает нарастать ощущение того, что именно Вам - этот концепт, эта идея, этот алгоритм - Нравится!
Было? Знакомо? Давно?
Вы как человек не ленивый или просто очень увлекающийся - создаете модель, некрасивую и непродуманную, на коленках, пренебрегая всем чему вас учила жизнь и опыт, только ради проверки идеи - делаете простенький прототип. И О чудо! - он работает.
Энтузиазм увеличивается и без сна и отдыха воруя время у самого себя и любимых Творите! Творите и творите! Меняете инструменты и средства, выбираете наиболее подходящие технологии, пополняете поисковые запросы по словам неизвестных вам ранее решений. Оборачиваете красивыми классами и методами. Тестируете, опять на написанных "всё там же" исходных данных и снова тесты, проверки, тесты... Не получается Психуете удаляя в очередной раз все коммиты и бренчи. И начинаете заново И снова, и снова, и снова
Опять переписываете
Но эмоции от самоудовлетворения самим процессом и только вами видимого результата - зашкаливают.
И в один прекрасный момент, ваш алгоритм оживает и рождается - Он. Маленький звереныш. С огромным количеством лапок, несколькими головами, разноцветной шкуркой.
Вы играете с ним. Подкармливаете всё теме же самописными данными. Вносите новые штрихи и исправления. Но уже через некоторое время начинаете понимать, что идеально подобранных и созданных вами, на скорую руку, этих самых же данных - становится мало.
И начинаются судорожные скитания в поисках пропитания для Вашего звереныша.
Вы берете первые, какие-то уже настоящие, которые кажутся вам сначала большими данные. И с опаской предлагаете вашей, уже любимой, ИТ-зверюшке.
А она.. хрум, хрум - и съела.
Наступает полное торжество и обманчивое чувство осознания значимости созданной зверюшки! Вот она - Победа!Но, внутренний голос подсказывает, что зверюшка может, и самое главное ХОЧЕТ больше!
Начинаете искать еще больше пищи, больше данных. Находите. Готовите. Угощаете. И тут зверюшка, один раз Хрум и всё. Секунда, десять, минута а экран замер. Вы судорожно набираете htop и картина пугает. Всё улетело за 100%. И еще через несколько минут уже сами набираете kill, а потом еще и добиваете killall зверюшка, killall база, killall, killall, killall
И снова исправления, изменения, замены, удаления, все сначала, О! А можно вообще по другому и снова роль Творца и тесты, эксперименты, проверки
И однажды, с секундомером в руках и с весами под зверюшкой, в очередной развидите, на бряке или в консоли, в логе или по простому print или echo, или где-то еще - заветное END с идеальными цифрами в результатах.
ПОЛУЧИЛОСЬ!
Корм съеден. Зверюшка, как ни в чем не бывало, радостно ждет следующую порцию.
Вы даете больше и больше. 100k, 1М, 10М, 40М порций. В один поток, два, десять, сто...
Хрум. Хрум. Хрум. Profit!
Back to the FutureКогда закачиваются радостные пробежки и отпускает последняя капля, отравляющая сознание, победоносного эликсира удовольствия, приходит безумное понимание, что это уже не та маленькая зверюшка, а полностью Ваш любимый питомец. Которого создали Вы. Который может делать потрясающие вещи с удивительной скоростью при малых затратах.
Наступает пора его подготавливать к реальной жизни.
Вы клонируете мир ваших текущих забот и работ. Помещаете туда питомца.
Меняете, адаптируйте - приучаете его к новой пище. Все задачи выполняются в тысячи раз быстрее и еще через сотни тестов и испытаний, селите его уже в основной мир. В проект, который ваш питомец может поднять на несколько уровней вверх.
Но вы уже знаете, что всех данных, которыми он там питается - мало. На столько, что он даже не замечает их существование. Даже не на один зубок. Он голоден.
Внезапно, кто-то увидел вашего питомца, и даже предлагает его продать и в месте с ним переехать в другой мир - чтобы какое-то время вы научили нового хозяина кормить и ухаживать. Но что-то внутри вас говорит НЕТ. Это же совсем малыш и хоть он научился и уже даже выполняет серьёзные задачи в большом мире - ему слишком рано куда-то уходить.
В эту секунду к Вам приходит безумнейшая мысль.
А что если Я создам и подарю ему целый мир, котором он будет жить.
Эта идея не отпускает. И в ваших фантазиях создаются города, замки, облака, придумываются новые необыкновенные конструкции, продумываются способы перемещения старых и даже в грёзах, наблюдаются дожди из золота и драгоценных камней. И вы убеждаете себя, что ДА - это реально.
Но все вокруг Вам говорят, Куда? Кто? Ты? Как? Такой мир построить - нужны десятки людей - творцов. И самое главное - очень богатых богов. Ты понимаешь, что они правы и страх, отсутствие веры, нехватка времени и знаний - и ты все откладываешь и переносишь на потом... ещё потом ещё потом
Но однажды, наступает тот момент, когда приходит осознание, что ПОТОМ - начинает превращаться в НИКОГДА. И ты понимаешь, что НИКОГДА - еще страшнее, чем все другие страхи.
И после этой, открытой именно тебе, истины, ты делаешь шаг. Бросаешь всё и начинаешь Создавать.
Сначала, долго выбираешь в какой галактике построить. В одной лучше цены на аренду, но малый возраст, другие ближе и роднее, но дорогие, третьи - от захватчиков лучше защищают, но мало общаются, очередные - старые и дряхлые, но известные, следующие - обещают все и сразу и почти бесплатно так настойчиво, что пропадает желание
Рано или поздно, муки выбора проходят и наконец вот она ТВОЯ СИСТЕМА, в которой будут созданы миры. Только твои!
Создаешь, соединяешь, закрываешь, разрешаешь, пробрасываешь, перекидываешь. Творишь...
Вот на этих планетах будут базы, здесь хранилище, а на этих уже новые зверюшки будут жить, а на этой твой питомец, а на этой одной - будет космопорт, а на этой - если кто-то новый прилетит поселим, а на этой - будет личный зоопарк, а на этой - будет вестись летопись а на этой а на этой
Проходит время - и видишь красивейший кластер. Твой мир.
При заселении, ты уже знаешь, что один твой питомец не проживет. Ты
придумываешь новых и приглашаешь других из чужих безопасных миров.
https://www.digitalspy.com/movies/a824289/fantastic-beasts-creature-design-animation/Создаешь ландшафты и садишь деревьями, рисуешь облака и наполняешь морями и океанами.
И вот спустя много месяцев, много дней и бессонных ночей - он готов. Все планеты живут и развиваются, общаются и самопополняются.
Во время очередного длинного теста, когда ты спишь и видишь шикарные сны, происходит коллапс. Но ты об этом узнаешь не сейчас, а позже, когда сирена начнет кричать о уже случившейся катастрофе.
Летишь на одну планету. А там твой питомец, тот самый, который еще вчера довольный и игривый прыгал и резвился, лежит без признаков жизни, с застывшим в лапке телефоном, с выбранным твоим номером.
Заглядываешь в космопорт - а там от твоих красивых архитектурных решений только руины. Хранилище, базы, зоопарки - уцелели, но без связи.
Ты закрываешь весь мир огромной сферой и находясь опять в полном одиночестве с замершими планетами и всеми обитателями заново начинаешь искать. Где?, Ну где же, ты ошибся?
Намного позже, в n-ой по счету инкарнации этого мира, уже без, на первый взгляд безобидного личного зоопарка, который несколько месяцев назад погубил всё - ты снова убираешь защитный купол.
Всё!
Пришло время открыться!
Проверка каждого уголка. И ты принимаешь решение пустить в него первых посетителей - других обитателей вселенной.
Запуск!
Внутреннее эго раздуто, радость переполняет, ощущения восторга вперемешку с полным экстазом прячутся под гордой маской невозмутимости.
Всё отлично работает. Кто возмущается. Кому-то нравится. Кто-то подсказывает, где, что не так.
А кто-то тихо потешается над твоим водопадом, в котором вода течет не DESC, а ASC, рассказывая о этой находке всем кроме тебя.
И в целом - все хорошо. Ты расслабляешься продумывая дальнейшую
жизнь.
Время идет. Мир существует. Твой питомец становится все сильнее и сильнее. Он обретает друзей среди других, созданных тобой и не только, питомцев.
Все планеты существуют в гармонии и мире. Созданы планеты позволяющие менять убранство других и пополнять хранилище.
И наступает момент, когда пора учиться призывам, тех самых дождей, о которых ты мечтал еще играя наедине с зверюшкой.
Но мир создавал ты один. Один уже сделал то, про что остальные говорили - невозможно.
Значит пора делать очередной LevelUp. И снова начинать качать новые скилы.
https://www.digitalspy.com/movies/a824289/fantastic-beasts-creature-design-animation/И опять поиск. Опять прогулки в поиске даже не ответов, а только правильных вопросов. Куда? Кому? Как? Скольким или может быть одному? За сколько? И главное, снова - Зачем это все?
Опять муки выбора вариантов.
Начинать развивать мир с кем-то? Учить законы вселенных, учиться управлять, учиться рисковать, а также и всё-таки, учиться искать богатых покровителей, искать других творцов и всех тех, кто будет помогать, от управления до уборки мусора и еще познавать многое другое.
Или может в одиночку? Клонировать мир для кого-то и самостоятельно поддерживать несколько миров? Но Миры и питомцы требуют внимания и любви, документы в хранилищах - порядка, летописи - проверок, ландшафты на планетах - постоянных изменений и строек. Одного, двух, трех и еще несколько клонов поддерживать возможно. Но тогда в реальной жизни, даже близкие друзья и родные будут знать тебя только по старым фотографиям из семейных архивов.
Найти уже давно существующий мир с сильным и богатым хозяином ради объединения? Но переживут ли такое слияние твои любимые питомцы, не запустится процесс бесконечной мутации, такой, что даже первое имя зверюшки будешь помнить только ты? И не превратишься ли ты в ту самую единичку которая занимается только подкормкой его?
Может полностью продать или подарить этот мир? Отдать все. А сможет ли новый хозяин правильно кормить, ухаживать, менять погоду? Не зальет ли он ливнем всю долину зоопарков вместо грибного дождика? Не сотрет ли его через несколько лет?
Перенестись только вместе с питомцем в чужой мир? А этот оставить для красоты и самолюбования. Тогда, столько, самого ценного, что есть у человека- времени, будет потрачено зря.
Ничего не делать, опустить руки и уйти самому жить в другие миры?
И еще много очень много других мучительных вариантов.
Выбор.
Кто-то проходит через муки выбора, кто-то через радость что выбор есть, кто-то не видит выбора как такового и хватается за первое решение, а кто-то постоянно только ищет разные варианты не принимая никакого. Но выбор есть всегда!
Из одной маленькой идеи каждый может создать новый мир.
С Уважением, Дмитрий.
Хабр, привет!
Продолжаем наш цикл коротких (3-минутных) постов о подготовке к публичным выступлениям. Первый материал о страхе публичного выступления можно посмотреть здесь. А сейчас про выбор темы. Поехали!
Бывает так, что хочется поучаствовать в конференции: выступить, блеснуть и пообщаться с умными людьми, но выбрать тему для выступления не удается. Руководитель практики Java Рексофт Зураб Белый подготовил 4 совета, которые помогут подобрать идею для доклада.
Обычно мой мозг начинает активно работать перед сном. За полчаса, пока я не уснул, в голову приходят самые разные бредовые идеи. Раньше я думал проснусь утром и запишу. Но, увы, к утру все забывалось. Теперь я записываю мысли сразу, и советую вам поступать также. Пришла идея запишите ее в любое время телефон всегда под рукой.
Естественно, не со всеми идеями, которые пришли в голову, вы обязательно пойдете выступать. Если прошла неделя или две, и идея по-прежнему кажется вам крутой значит с ней надо работать. 70-80% идей, которые приходили мне в голову и поначалу казались супер крутыми, через пару дней виделись полным бредом.
Обязательно идите в интернет и посмотрите - было ли уже что-то на вашу тему. Это очень важно, потому что есть куча одинаковых материалов. Это может быть доклад с прошедшей конференции, статья на Хабре и любой другой контент. Если вы выступите с темой, которая была более полно освещена где-то в другом месте, то не получите профита, а ваши слушатели впустую потратят время.
С другой стороны, вы можете увидеть, что тема не раскрыта до конца, почерпнуть новую информацию для своего доклада, и тогда он станет еще более полным и интересным.
Вспомните себя в тот момент, когда вы начинали изучать новую технологию. Вы не знали ничего, для вас все было новым, вы искали любую информацию, читали все статьи и книги по теме все это было для вас полезно. Сейчас, спустя время, это кажется супер просто.
Самое популярное мнение, с которым я сталкиваюсь: Мне нечего рассказать, все же и так это знают, это все просто. Нет, не просто, когда вы только начинали с этим знакомиться это был целый океан, который требовалось переплыть. И если через несколько лет тема кажется легкой, это говорит о вашем профессионализме, а значит вам есть чем поделиться.
Если тема кажется простой, то вам будет легко объяснить и донести ее до других. В IT сфере всегда есть люди, которые начинают изучать какие-то технологии, и для них очень важно получать качественную, современную и полную информацию по теме, тем более от Профи и в живом общении.
Итак, думайте над темой и смотрите на какой конференции ее можно раскрыть. В следующем посте мы дадим практические советы о том, как составить презентацию для выступления на IT-конференции. Так что подписывайтесь, чтобы не пропустить.
На нескольких примерах я покажу, какможно легко и эффективно создавать проекты от этапа проектирования до релиза продукта.
Мир постоянно меняется. Раньше, чтобы в твоём доме была вода, нужно было совершить ряд действий. Сейчас же нам достаточно сделать одно - открыть кран. До появления современного водопровода было множество промежуточных версий, которые безусловно были лучше, чем просто носить воду в ёмкостях. Но они были хороши лишь для своего времени.
Но речь сегодня не об этом. В прошлой статье я рассказал, как моя идея превратилась в стартап с командой. В этой статье поговорим о том, как коммуницируют удалённые команды при разработке ИТ продукта, какие проблемы встречаются, как они решаются при помощи текущих инструментов и как наш стартап их решает.
Вы можете перейти к любому интересному для вас блоку, через оглавление:
Toolkit означает - в каждой команде свой хаос. Объясню почему. Когда формируется новая команда, каждый её юнит привносит свои знания. Со временем появляется набор инструментов и практик.
Когда приходит новый юнит, ему выдают много инструкций как мы тут работаем и много ссылок на различные инструменты/сервисы. Чтобы со всем этим разобраться, требуется не мало времени и усилий. При переходе в другую команду всё повторяется.
Один и тот же инструмент/сервис может использоваться сотнями способов. И один способ эффективнее другого. В просторах интернета может быть тысячи курсов и лекций по этому инструменту. Сколько нужно времени, чтобы новым юнитам хорошо разобраться в нём и подстроиться под текущую команду?
С нашим инструментом не придётся больше тратить время на разработку своих инструкций, на поиск и освоение многочисленных инструментов. А новым юнитам не придётся в каждой команде вникать и привыкать к новым практикам.
Frontend-разработчик Павел пришёл в новый коллектив. В прошлой команде дизайнер рисовал интерфейсы в Sketch (но у паши Винда и он использовал Lunacy), правки доносил через Google Docs, а бизнес логику показывал через Zoom.
А в новой команде используют Figma и Miro. Часть бизнес-логики показывают, через кликабельный прототип. Правки присылают в Телеграм, Slack, либо ставят в задачи в JIRA (но переписка как правило ведётся в мессенджерах).
Даже если в следующей команде будет такой же набор инструментов, всё равно их будут использовать немного по-другому. Паше придётся опять изучать очередной Toolkit по Miro и собирать очередные правки, раскиданные по мессенджерам и таск-трекерам.
Что, если Паша в прошлой команде работал в нашем инструменте, а в новой используют его же? Как Паша и команда выигрывают?
Наш сервис решает ваши задачи конкретным способом, поэтому 1 раз изучив, можно использовать эти знания в любой команде. Тем более, что сервис будет интуитивно понятен всем, кто работал с PowerPoint, Miro и Figma.
Интерфейс модуля CaseTrackerНаш сервис в одном месте накапливает весь ваш опыт, который вы приобретали, работая над тем или иным ИТ продуктом. Этим опытом можно делиться с другими и конечно же обращаться к нему самому.
А при стандартном подходе всё теряется, разбросано по мессенджерам, таск-трекерам, доскам, каталогам, документам и прочим местам хранения данных.
На одной доске, с минимальным кол-ом кликов вы получаете максимум информации. К примеру, дизайнер отправляет правки по интерфейсу разработчику. Скрин экрана он загружает в слайд, внизу пишет описание, создаёт кейсы: что и куда нужно перенести или может просто поменять текст (на одном слайде может быть несколько кейсов).
Разработчик и дизайнер могут вести беседу по слайду и кейсу (как правило у второй стороны появляются уточняющие вопросы). И по итогу можно записать решение и поставить статус Готово.
Например, дизайнер при тестировании продукта нашёл несколько несоответствий в бизнес-логике. Не всегда удобно созвониться с коллегами, поэтому иногда проще записать видео экрана. Но для этого нужно опять же найти инструмент. Скачать и установить программу, научиться ей пользоваться. Хорошо, это он сделает 1 раз, но опять возвращаемся к проблеме - куда скидывать файл и где вести переписку.
Как водится, это видео полетит в мессенджер и там же будет по нему переписка. Либо в JIRA, в виде задачи, но опять же, часть вопросов будет в комментариях к задаче, а часть в переписке в мессенджерах или ещё хуже - при созвоне (половина забудется). И потом концов не соберёшь.
В нашем сервисе можно будет сделать запись экрана прямо из приложения. Сохранить и добавить видео к слайду, отредактировать видео, добавить кейсы к таймлайнам (на конкретной секунде добавить поясняющий текст, стрелку или выделить область), наложить аудио дорожку. А также вести переписку, поставить решение (всё так же, как и со скринами).
Если всё же есть время созвониться, то можно создать митинг-комнату, в которую в любой момент может зайти кто-то из команды (если роль позволяет). Для того, кто не успел, коллеги сделают запись. Эту запись можно так же комментировать и редактировать, как описано выше.
В этой статье мы показали вам часть возможностей, объединяющих популярные повседневные инструменты в одном продукте. Затронули некоторые проблемы текущих инструментов и как их решает наш сервис. В следующих статьях мы будем освещать другие кейсы и новые возможности.
Пишите в комментариях: вы узнали себя в озвученных проблемных кейсах, наш сервис помог бы вам упростить взаимодействие с командой?
И напоследок, мы недавно запустили beta-версию и хотим набрать первых пользователей, которые помогут подтвердить или опровергнуть наши гипотезы, дать обратную связь по проекту и поучаствовать в тестировании.
Для первой тысячи мы откроем premium-доступ на целый год бесплатно - после запуска MVP.
Для связи со мной Телеграм. Подробнее о сервисе в моём инстаграм.
Как в условиях Home Office поздравить c Международным женским днем прекрасную половину IT департамента, а также всех женщин со стороны бизнеса? Мы в BIOCAD сделали это так:
Именные открытки для "своих" женщин
Создали единый реестр и распределили девушек
Написали персональные поздравления с комплиментами в стиле SQL + TextArt. Так как открыток было много и не все парни хорошо знают SQL, сделали шаблон скрипта в PowerPoint и расшарили его через Sharepoint. Далее каждая команда собиралась и придумывала, старались по максимуму персонализировать открытки.
Разослали открытки через бота
Например, такую открытку получила Маша, стажер в отделе мониторинга и анализа данных:
Открытки для бизнес женщин
Тут SQL мало кто знает, поэтому ограничились цветочками разных форм. Что получилось:
Мы получили огромное удовольствие несколько раз:
когда собирались и придумывали "sql комплименты", было весело!
когда получили невероятно позитивную обратную связь от такого поздравления
А какие вы знаете способы оригинально поздравить коллег?
Я разработчик игр и мобильных приложений. Я написал немало кода на C++ и Swift. И, как и многие из вас, я пользуюсь системами контроля версий, в частности, гитом.
Гит имеет максимально функциональный command-line интерфейс и десятки если не сотни приложений для работы с ним локально при помощи графического интерфейса, которые умеют выполнять только часть функционала гита. Беда в том, что я пишу код уже 10 лет, но никак не нашел идеальный (подходящий для меня) git GUI клиент. Пример: недавно вышел Github Desktop. Я его использовал до тех пор, пока мне не понадобилось сделать checkout на конкретный коммит. И я испытал уже привычную боль от того, что данное приложение так делать не умеет. И вновь вернулся в терминал (с автодополнением для гита). И такие вещи есть в каждом GUI приложении для гита. Однако, я сюда пришел не критиковать их. Уверен, что вы и без меня имеете много претензий к этим приложениям. Я долго думал о том каким должно быть идеальное git GUI приложение. Это были мимолетные обрывки желаний, из которых трудно собрать что-то цельное. И совсем недавно эти обрывки мыслей у меня собрались в единую картину. Ниже я опишу это в формате ТЗ (технического задания) в максимально понятной форме.
Важно чтобы интерфейс не был суперусложнен. Если юзер откроет
прилажку и увидит больше 20 кнопок, то идея отстой. Бльшая часть
пользователей переключаясь на консоль для работы с гитом пишут
команду git status
чтобы узнать список файлов с
измененным статусом. Потому наше приложение должно почти на весь
экран показывать список файлов в виде иерархии, которые имеют
измененный статус (примерно как проводник/finder). Туда будет
входить все, что мы можем увидеть командой git status
:
измененные файлы, untracked файлы, добавленные и удаленные
(возможно, какой-то статус я забыл). Каждый файл должен как и в
консоли отображаться либо красным цветом, либо зеленым, что
показывает его добавленность в коммит. На любой файл можно кликнуть
правой кнопкой мыши или нажать на три точки в правой части строки
чтобы вызвать контекстное меню. В контекстном меню можно добавить
файл если он не добавлен (git add
команда в
терминале), сделать reset если он добавлен, удалить если он не
находится в индексе (clean). Еще можно кликнуть на папку правой
кнопкой и добавить всю папку (git add folder
).
Аналогично работает reset. Еще можно добавить в индекс все
маленькой кнопкой в верхнем левом углу дерева файлов. Можно
кликнуть по строчке с файлом чтобы открыть дифф по нему на весь
экран.
Сверху окна есть отдельный заголовочный блок примерно как в Xcode с названием ветки и статусом того, что сейчас происходит (pulling, pushing, idle). Это все. То есть, окно по-умолчанию только показывает статус: нынешнюю ветку и статус файлов.
Когда пользователь намерен сделать какое-либо действие
(git log
- посмотреть историю,
git branch
- операция с ветками, git
commit
- осуществление коммита, git
push
- загрузка в remote, git pull
- загрузка из remote, git remote
-
управление списком remote и т.д.) он должен зажать tab чтобы
вызвать селектор действий (прям как селектор оружия в GTA 5).
Далее пользователь наводит указатель мыши на нужную команду и кликает на нее. После этого происходит вызов команды если это команда без аргументов (например, pull, push, fetch). Если нужно указать аргументы, то пользователь кликает правой кнопкой на название команды (например, push) и появляется соответствующее модальное диалоговое окно с вводом аргументов (цель remote и имя ветки, а также галочка force), которые указываются мышью или горячими клавишами. К этом моменту изначально зажатый tab можно уже отпустить. Если кликнуть за пределами модального окна или нажать esc, то модальное окно закроется и вызов команды будет отменен. Если же в этом модальном окне указать аргументы и нажать кнопку push, то начнется выполнение команды. Процесс выполнения команды будет отображен на верхней панели под названием ветки.
Еще одно важное преимущество терминала над остальными git GUI приложениями это возможность склеивать команды последовательно при помощи операторов && и ||. Например, я лично в работе часто использую такую последовательность для подлития в свою ветку той ветки, от которой моя ветка была срезана:
git checkout dev && git pull && git checkout -
&& git merge -
Данная последовательность выполняет 4 операции:
переключается на ветку dev
скачивает последние изменения ветки dev
переключается обратно на ветку, на которой мы находились до ветки dev
вливает ветку dev в нынешнюю ветку
Оператор && устроен таким образом, что если одна из команд остановится из-за ошибки, то выполнение всех остальных команд не начнется. Это суперудобно, но я не видел ни одного git GUI клиента, который бы умел склеивать команды в последовательность (если вы такой знаете, то укажите это в комментариях). И я придумал как в моем потенциальном абстрактном идеальном git GUI приложении моей мечты это будет выполнено.
Для того, чтобы указать команду и добавить после нее другую команду нужно сделать то же самое, что и для указания обычной команды, но помимо кнопки tab нужно еще зажать alt (или shift, тут нужно еще подумать). То есть, в привычном уже круговом селекторе мы выбираем команду checkout, указываем ветку dev, жмем ok в окошке, где мы указывали ветку. Однако из-за того, что в момент появления окошка помимо клавиши tab была зажата еще и клавиша alt, команда checkout не начинает выполняться сразу после нажатия ok, а добавится в список, который появляется в верхнем левом углу, а селектор продолжит отображаться в ожидании новой команды (tab держать уже не нужно - селектор остается открытым после указания первой команды с зажатым alt). Также указываем другие команды левой или правой кнопкой мыши как обычно - они пополняют список команд. Когда мы завершили этот список жмем еще раз tab (или esc если передумали), селектор закрывается, команды начинают выполняться, их статус виден на верхней панели статуса. Признаться честно, на эту идею меня подтолкнул смелая фича в игре Red Alert 2. Там можно зажать клавишу z и указать последовательность точек куда следует идти юниту. Я считаю, что это гениальная фича, которой очень не хватает в других популярных стратегиях.
Отдельная фича, которая сделает использование истории гита удобнее, это хэширование хэша (да, именно так) коммита в виде эмоджи. Объясню на примере. Когда я смотрю историю коммитов, я вижу список труднозапоминаемых длинных хэшей типа такого
3a962a4a5979b338e4bfce1333b3009529c0ad08
d8def5c1b13a83a1df8797fab3d34760596df692
cffcf32979526f2e2d26c06fe0b73666a7ca0e87
2757ed191106b51b729c5437334d9d19b0d081b8
0fef00c89e8d60e41a452ffc31a8300b551116be
5e4fe2033549b89ef86834e2fcba350fa5099443
886602d02ec39f853c9b708957f27c3fbb51e66c
250ce1cd7b0b6ec415898e0a26cda49a2d326bd3
4a4a5e0f6257bb6c179981c4fb69011be7bbe53d
В этом ничего нет плохого пока не нужно запомнить хэш и сверить его с другим хэшем. Даже сокращенный вариант запомнить не так легко. Потому у меня появилась идея сделать хэши коммитов более запоминаемыми - по каждому хэшу вычисляем хэш в виде эмоджи. Тогда это будет выглядеть примерно так.
3a962a4a5979b338e4bfce1333b3009529c0ad08
d8def5c1b13a83a1df8797fab3d34760596df692
cffcf32979526f2e2d26c06fe0b73666a7ca0e87
2757ed191106b51b729c5437334d9d19b0d081b8
0fef00c89e8d60e41a452ffc31a8300b551116be
5 5e4fe2033549b89ef86834e2fcba350fa5099443
886602d02ec39f853c9b708957f27c3fbb51e66c
250ce1cd7b0b6ec415898e0a26cda49a2d326bd3
4a4a5e0f6257bb6c179981c4fb69011be7bbe53d
Эмоджи намного лучше запоминаются человеком, чем безымянные шестнадцатеричные хэши. Если везде, где мы ни показывали хэши коммитов (история или статус pullа), показывать их эмоджи хэши, то пользователь лучше будет помнить на каком он коммите работает прям сейчас, и меньше будет ошибок когда он забыл влить другую ветку, запушить или запулить изменения. Вообще было бы здорово если бы эмоджи-хэш использовался везде: на github, bitbucket, teamcity. Это позволило бы проще сверять коммиты билдов с коммитами в истории.
Это все. Буду рад любой критике и предложениям в комментариях. Отвечу на вопрос зачем я делюсь идеей тут, а просто не начну реализовывать это сам. Я сам занимаюсь разработкой игр, на данный момент работаю в компании Playtika, а в свободное время разрабатываю приложение для работы с SQLite https://sqliteman.dev. Я бы сам с радостью занялся разработкой данного git GUI клиента, но у меня нет времени. Я буду очень рад если бы кто-то другой это сделал, при этом мне совершенно не жалко если кто-то это сделает без упоминания источника идеи. Я уверен, что идея не стоит ничего в отличие от реализации. И буду очень счастлив если у меня будет git GUI приложение моей мечты.
Для своего телеграм-канала я время от времени пишу конспекты интересных мне деловых книг. Одна из них Откуда берутся хорошие идеи Стивена Джонсона. Тираж книги на русском закончился еще в 2014 году, купить можно только на английском языке.
Стивен Джонсон (Steven Johnson) известный американский ученый и писатель, автор двенадцати книг о взаимодействии науки, техники и человеческого опыта, в том числе, бестселлера Нет худа без добра: как современная массовая культура делает нас умнее.
Последние десять лет Джонсон изучает историю инноваций. Результаты его исследований и легли в основу бестселлера Откуда берутся хорошие идеи. Стивен продюсировал сериал Как мы до этого додумались о том, какая череда событий привела к важнейшим открытиям человечества. У него довольный популярный Twitter @stevenbjohnson.
Все мы стремимся сделать свою жизнь творческой, а свою компанию инновационной. Но почему же в одной среде новые идеи погибают, а в другой распространяются как вирус? Как именно гениальные идеи приходят в голову их изобретателям? Стивен Джонсон, автор семи бестселлеров, пытается найти ответ на вопрос, который, несомненно, интересует каждого человека: откуда берутся хорошие идеи? Его книга посвящена изучению пространства инноваций.
Люди часто приписывают свои гениальные идеи вспышкам озарения. Но Джонсон утверждает, что история открытий доказывает иную природу рождения великих идей. В результате долгих исследований он нашел в процессе возникновения великих открытий определенные повторяющиеся закономерности. Проанализировав десятки изобретений с междисциплинарной точки зрения, исследователь формулирует семь моделей рождения инноваций. Чем чаще мы будем пользоваться этими моделями в нашей профессиональной деятельности и в поиске новых идей, тем более инновационным будет наше мышление.
Мегаполисы и Интернет стали двигателями инноваций потому, что обе среды являются идеальными системами для создания, распространения и укоренения хороших идей. Но и эти среды не совершенны вспомните об уровне преступности в крупных городах или вспышках спама в Интернете. Однако и города, и Всемирная Паутина продолжают генерировать массу открытий.
История великих изобретений не ограничивается человеческими творениями, поэтому Стивен Джонсон анализирует также инновации в природе например, коралловые рифы, экосистема которых является идеальной средой для биологических инноваций. Коралловые рифы обитают в бедных питательными веществами тропические водах, но, потребляя в пищу симбиотические водоросли зооксантеллы, они получают полноценное питание для своего развития. Такая схема имеет много общего с мегаполисами. На языке теории, описывающей поведение сложных систем, эти модели инноваций являются фракталом: они появляются вновь и вновь в узнаваемой нам форме, увеличивая или уменьшая масштаб от молекулы нейрона до пикселя тротуара.
Чтобы узнать, откуда берутся хорошие идеи, нужно их рассматривать в контексте. Догадки Дарвина формировались внутри его мозга. Однако ему нужны были и другие условия, которые помогли собрать идею в пазл: корабль, архипелаг, бумага для записей, библиотека, научные материалы.
Проанализировав множество открытий с этой точки зрения, Стивен Джонсон выделяет семь моделей, которые, по его мнению, имеют глубокие исторические корни:
Смежные возможности
Текучие сети
Медленные догадки
Интуитивная прозорливость
Ошибка
Экзаптация
Платформы
Стефан Тарнье, работавший в 1870-х годах акушером в Париже, как-то в свой выходной решил сходить в зоопарк. Прогуливаясь, он наткнулся на выставку инкубаторов для птенцов. И тогда у Тарнье возникла идея сконструировать аналогичное устройство для новорожденных младенцев. В то время детская смертность была чрезвычайно высокой каждый пятый младенец умирал еще до того, как начинал ползать, не говоря уже о недоношенных детях. Тарнье знал, что для выживания новорожденных решающее значение имеет регулирование температуры.
66% новорожденных с недостаточной массой тела умирали, не прожив и нескольких недель. А когда в госпитале, где работал Тарнье, по его инициативе установили первый инкубатор, результаты были шокирующими показатель смертности сократился до 38%. Взглянув на детей как на птенцов, Тарнье смог вдвое сократить смертность новорожденных.
Инкубатор ТарньеВ последующие десятилетия конструкция инкубатора была усовершенствована.
Современные модели предусматривают режим кислородной терапии и массу других полезных функций. Сегодня все больницы развитых стран оснащены такими устройствами, спасающими тысячи детских жизней. В развивающихся странах ситуация гораздо сложнее в Либерии и Эфиопии умирают более 10% новорожденных. Основным препятствием является даже не высокая цена (стандартный инкубатор в американском госпитале может стоить более $40 тыс.) исследования показывают, что до 95% медицинского оборудования, пожертвованного развивающимся странам, выходит из строя в течение первых пяти лет использования. Проблема состоит в отсутствии запчастей и неспособности персонала больницы прочесть инструкцию по эксплуатации и ремонту на английском языке. Возникла необходимость в изобретении надежного и недорогого инкубатора, детали которого можно легко найти и заменить.
И решение нашлось. В развивающихся странах не слишком много микроволновых печей, видеомагнитофонов и другой техники, но автомобили-то там есть!, эта мысль пришла в голову Тимоти Престеро, сотруднику организации Дизайн, несущий Смысл. Вместе со своими друзьями он придумал инкубатор, собранный из автомобильных частей, фары обеспечивали тепло, радиатор циркуляцию воздуха, а сигнализация оповещение медперсонала в случае неполадок.
Инкубатор NeoNurture, designthatmatters.orgУстройство под названием NeoNurture снаружи выглядело как обычный инкубатор. Его эффективность была вдвое выше: запчасти были легко заменяемыми и доступными, а для устранения неполадок вполне достаточно было элементарных знаний по ремонту автомобиля. Нам нравится думать, что суперпродвинутый инкубатор за $40 000 прорывная инновация, но ведь такое устройство как NeoNurture куда более гениальная идея. Этот пример хорошо иллюстрирует модель смежных возможностей когда одна инновация влечет за собой следующую.
История свидетельствует о том, что каждая очередная инновация открывает новые пути для исследований. Но одни системы больше расположены к открытию новых пространств, чем другие. К примеру, Всемирная Паутина исследовала смежные возможности гораздо быстрее, чем любая другая коммуникационная технология. В начале 1994 года в Интернете был только текст и страницы, соединенные гиперссылками, но уже через несколько лет возможности пространства стали расширяться. В Интернете стало возможным проводить финансовые операции, делать покупки и даже играть в казино. А сегодня эта среда стала двусторонней появились свободные энциклопедии, блогосфера, социальные сети и прочие продвинутые сервисы.
Влияние смежных возможностей можно проследить и в таком явлении как многократные открытия когда идея приходит в голову двум ученым одновременно. Пятна на Солнце были обнаружены в 1611 году одновременно четырьмя учеными, живущими в разных странах. Первую электрическую батарею изобрели два человека в 1745 году и в 1746 году. А Джозеф Пристли (в 1772 году) и Шееле Карл Вильгельм (в 1774 году) независимо друг от друга получили в лабораторных условиях кислород. Закон сохранения энергии был сформулирован четыре раза в конце 1840-х годов. Телефон, телеграф, паровой двигатель, радио почти все влиятельные технологические инновации изобретали неоднократно.
В начале 1920-х годов два ученых Колумбийского университета Уильям Огберн и Дороти Томас решили отследить все известные многократные открытия. Результаты этого исследования опубликованы в их труде с удивительным названием Изобретения неизбежны? (Are Inventions Inevitable?). Авторы обнаружили 148 случаев многократных инноваций, большинство из которых происходило в пределах одного десятилетия.
Хорошие идеи не приходят из ниоткуда, они рождаются по принципу смежных возможностей из существующих частей, набор которых расширяется с течением времени.
Для современных организаций рождение инноваций возможно только в том случае, если компании развивают уникальную среду, в которой не блокируются и не ограничиваются, а наоборот, поощряются разного рода эксперименты.
Для описания рождения хороших идей существуют десятки метафор: вспышка, прорыв, прозрение. Все они подразумевают, что первоначально идея находится на элементарном уровне. Но на самом деле хорошая идея это сеть. И если мы хотим попытаться раскрыть тайну, откуда берутся хорошие идеи, то должны избавиться от распространенного заблуждения, что идея это единичная вспышка. В действительности, это явление больше похоже на рой идей.
Исследуя двигатели инноваций, можно заметить две важные закономерности. Во-первых, способность создавать новые соединения с другими элементами. Во-вторых, хаотичность среды, которая поощряет столкновения элементов системы.
Ученый Кристофер Лэнгтон, исследуя инновационные системы для описания сетей, использует сравнение с тремя агрегатными состояниями вещества: газом, жидкостью и твердым телом. Лэнгтон анализирует поведение молекул в каждом из этих состояний. В газе царит хаос, новые соединения возможны, но они постоянно разрушаются из-за изменчивого характера окружающей среды. В твердом теле происходит обратное модели стабильны, но не способны к изменениям. А вот в жидкости среда наиболее перспективна новые конфигурации появляются в результате случайных связей между молекулами, и система не разрушает новые соединения мгновенно, как это происходит в газе. Подобно жидкостям, хорошие идеи имеют тенденцию течь от ума к уму, даже когда их создатели пытаются сохранить их в тайне. Происходит своего рода перетекание.
В начале 1990-х годов психолог Кевин Данбар провел полномасштабное исследование, снимая на видео исследователей в научных лабораториях по всему миру. Результаты Данбара показывают, что прорывные идеи ученые рождают не в одиночестве перед микроскопом, а в процессе взаимодействия и обмена мнениями за столом обсуждения. Джонсон называет эту модель текучей сетью когда множество разных идей, сталкиваясь друг с другом, приводят к инновациям.
Если вы работаете на своем рабочем месте и смотрите только в свой микроскоп, ваши идеи могут попасть в ловушку, и вы застрянете в своих начальных предубеждениях. Помните, что идеям нужен социальный поток, текучая сеть. Для организаций это очередной вызов подумать над тем, как правильно организовать рабочее пространство сотрудников. Иногда для создания текучей сети стоит просто убрать лишнюю перегородку.
Чарльз Дарвин в своей автобиографии описывает историю рождения теории естественного отбора как классический пример момента прозрения. В октябре 1838 года, спустя 15 месяцев после начала исследований, Дарвин сидит в своем кабинете и читает книгу Томаса Мальтуса о народонаселении. Труд Мальтуса наталкивает его на гениальную мысль, и в какой-то момент у него внезапно появляется идея алгоритма естественного отбора. Я понял, что наконец-то у меня появилась теория, с которой буду работать, пишет Дарвин в своей автобиографии.
Чарльз Дарвин, натуралистВ начале 1970-х годов психолог и историк Говард Грубер решил вернуться к записям Дарвина и пересмотреть историю его открытия. Найденная Грубером в записях ученого история кардинально отличалась от описанной в автобиографии. Фактически уже в 1937 году у Дарвина была теория естественного отбора задолго до чтения работ Мальтуса. В его голове было множество элементов головоломки, но они не складывались в единую картину. Идея не пришла к нему в одно мгновение, она дрейфовала в сознании в течение длительного периода времени.
Большинство изобретателей лукавят, рассказывая об озарениях и моментах Эврика!. Они просто хотят добавить блеска своей гениальной идее и своей персоне, а своему рассказу острых ощущений. Проанализировав исторические записи, Стивен Джонсон сделал вывод, что множество гениальных идей имело длительный инкубационный период. Порой такое вызревание затягивалось на десятки лет. Изначально они приходили в мир в полусыром виде, после чего развивались с каждым новым предположением. И чаще всего недостающие элементы инновации находились в другом месте в чужой голове. Джонсон называет этот процесс медленными догадками. Великолепной иллюстрацией этой модели является случай Дарвина.
Организациям не стоит рубить на корню идеи своих сотрудников. Возможно, они и окажутся провальными. Но вдруг они пока просто сырые, поэтому стоит дать им время дозреть и положить на полку? Каждой идее нужно дать шанс или, по меньшей мере, время.
В научных открытиях, сделанных во сне, уже нет ничего мистического. Русскому ученому Д. И. Менделееву приснилась его знаменитая периодическая таблица химических элементов, а немецкий физик Фридрих Август Кекуле открыл формулу бензольного кольца после того, как ему приснилась змея, кусающая свой собственный хвост. Оказывается, в подсознании человека возможна обработка одновременно нескольких потоков информации, в точках пересечения которых может возникнуть творческая идея. Речь идет об интуитивной прозорливости (англ. serendipity) способности делать глубокие выводы или удачные открытия из ненамеренных наблюдений. Этот термин ввел английский писатель Хорас Уолпол в 1754 году, однако его активное употребление началось гораздо позже в первой половине XX века (период повышенной изобретательской активности). Яркие примеры этого явления открытие рентгеновского излучения Вильгельмом Рентгеном и взаимосвязи электричества и магнетизма Гансом Христианом Эрстедом.
Творческая прогулка еще один из способов, который может привести к удачному взаимодействию собственных идей с идеями из внешнего мира. Существует и другой, более эффективный инструмент черпания новых интересных идей чтение.
Билл Гейтс, заядлый читатель и миллиардерИзвестно, что Билл Гейтс и его преемник по Microsoft Рей Оззи ежегодно уходят в отпуск для чтения. В течение года они сознательно собирают стопки литературы, не связанной с ежедневной работой компании, а затем уходят на одну-две недели для глубокого погружения в чтение. Такой книжный интенсив помогает быстро переварить новые идеи и найти дополнительные возможности для построения инновационной среды внутри компании. Этот метод эффективен еще и потому, что легче вспомнить то, что вы читали вчера, чем то, что полгода назад. И хотя изначально вы не ищете конкретные идеи, но после прочтения книг вам в голову приходит именно то, что нужно.
Не каждый может позволить себе такой отпуск, как Билл Гейтс, но что мешает компаниям использовать эту концепцию в рабочем процессе? Многие организации поощряют своих сотрудников, чтобы те делали перерывы в работе для получения новой информации. Например, Google и ЗМ позволяют своим сотрудникам один день в неделю (20% рабочего времени) не заниматься текущей работой, а уделять время творчеству и разработке новых идей.
Попробуйте перенять опыт этих компаний иным способом например, создать открытую базу предложений сотрудников (в версии Web 2.0), которая позволит каждому вносить свои идеи, видеть предложения коллег, комментировать, дополнять и развивать их.
Огромное число трансформационных идей можно отнести к инновациям, которые родились по ошибке. Британский бактериолог Александр Флеминг открыл лизоцим и пенициллин случайно. В 1928 году он по ошибке оставил у открытого окна чашку Петри с бактериями стафилококка. Позже он обнаружил, что там выросли плесневые грибы. Впоследствии ученому удалось выделить антибиотик пенициллин активное вещество, разрушающее бактериальные клетки.
Александр Флеминг, создатель пенициллинаВ 1830-х годах один из создателей фотографии Луи Дагер несколько лет пытался получить изображение на посеребренных медных пластинах. Однажды ночью, после долгих неудачных попыток, он положил пластинку в шкаф с химическими веществами. Открыв его через несколько дней, Луи увидел на пластинке четкое изображение. Чтобы выяснить, какое вещество привело к желаемому результату, Дагер решил действовать методом исключения: ежедневно помещал в шкаф новую пластину, убирая по одному химикату. Позже выяснилось, что картинка проявлялась благодаря воздействию ртути.
Уилсон Грейтбатч также совершил открытие, которого даже не ожидал. Медик работал над созданием устройства для записывания сердечного ритма. Однажды он случайно вставил в устройство неподходящий резистор и зафиксировал, как в электрической цепи возникают колебания, которые напоминают ритм человеческого сердца. Так был создан первый в мире вживляемый кардиостимулятор.
История знает немало ошибок, которые трансформировались в великие открытия. Изобретатели даже не представляли, что из нелепых случайностей может родиться прорывной продукт. Большинство людей уверены, что инновации тесно связаны с такими понятиями как точность, ясность и сосредоточенность, но исследование Чарлана Немета доказывает: хорошие идеи чаще всего возникают в среде, содержащей определенное количество ошибок. Это не значит, что новые идеи нужно культивировать в хаотической среде, а не в стерильных кабинетах.
Просто нужно помнить о том, что в лучших лабораториях ошибки являются неизбежным шагом на пути к великому открытию.
Перья, которые изначально появились у динозавров для терморегуляции, в процессе эволюции оказались более полезными для полета. Американский биолог-эволюционист Стивен Джей Гулд считал, что эволюция в основном происходила по принципу экзаптации. Это принцип мультифункциональности и эволюции органов путем замены их функций.
Как оказалось, этот принцип изменения существующих функций применим не только к эволюции органов, но и к созданию нового продукта. Так, например, немецкий изобретатель Иоганн Гуттенберг в 1440 году создал печатный станок, объединив возможности монетного штампа и винного пресса.
Если рассматривать инновации в эволюции с точки зрения экзаптации, история становится менее загадочной. Развитие Интернета в некотором смысле тоже является историей непрерывной экзаптации. Изобретатель Всемирной Паутины Тим Бернерс-Ли создавал платформу для обмена исследованиями в формате гипертекста. Но когда из этого первичного бульона вышли первые веб-страницы и началось взаимодействие обычных пользователей, оказалось, что это изобретение имеет множество непредвиденных и полезных качеств.
Тим Бернерс-Ли и гипертекстРазрабатывая язык HTML, Тим Бернерс-Ли даже не подозревал, что с его помощью пользователи в скором будущем смогут совершать покупки и обмениваться фотографиями. А разве мог упомянутый выше Фридрих Кекуле предположить, что змея из греческой мифологии поможет ему решить одну из насущных проблем органической химии определить формулу бензола?
Если говорить о среде, благоприятной для экзаптации, то это большие города. Именно там создаются текучие сети, по которым информация может просачиваться и удивительным образом влиять на горожан. Это одно из объяснений столь развитого урбанистического творчества. Именно поэтому кофейни в эпоху просвещения и выставки в эпоху модернизма стимулировали творчество и инновации они создавали продуктивную среду для обмена идеями. Мысли разных людей встречались и перевоплощались в новые формы.
Удивительная история стоит за открытием системы GPS. Корни его уходят в 1950-е годы, когда СССР запустил первый искусственный спутник Земли. Американские исследователи следили за сигналом, исходящим от советского спутника, и выяснили, что благодаря эффекту Доплера при приближении спутника частота принимаемого сигнала увеличивается, а при отдалении уменьшается. Ученые пришли к выводу, что, зная точные координаты на Земле, можно определить положение и скорость спутника, а зная точное его положение, скорость и координаты объекта на Земле. Так родилась идея системы GPS, нашедшая применение только через 30 лет. Рональд Рейган объявил эту технологию доступной платформой, которую мог использовать и дорабатывать каждый гражданин. Посмотрите, что случилось с GPS за последние годы: система имеет огромную коммерческую ценность, в ее разработке приняло участие множество компаний.
Интересна и история предпринимателя Эдварда Ллойда, который открыл свою кофейню на Тауэр-стрит, соединяющей набережную Темзы и Лондон. Первое, что видели прибывающие в порт моряки кофейню Ллойда. Здесь за чашкой кофе происходили как неофициальные деловые встречи, так и заключения договоров. Предприимчивый Ллойд стал привлекать к себе посетителей, вывешивая на стенах заведения новости, объявления, расписание кораблей, данные о затонувших судах и другую полезную информацию. Благодаря огромному потоку людей в кофейне зародился новый прибыльный бизнес страхование.
Сегодня Эдвард Ллойд известен как основатель одной из крупнейших страховых компаний в мировом торговом флоте. Собственник кофейни не собирался основывать целую страховую индустрию он просто зарабатывал деньги, чтобы прокормить семью. Однако он создал уникальную среду, в которой заставил думать людей по-новому.
Во Всемирной Паутине можно найти много ярких примеров создания инновационных платформ. Пожалуй, одной из самых прорывных является социальная сеть Twitter. Создавая в 2006 году платформу для интерактивного обмена информацией с друзьями, Джек Дорси, Эван Уильямс и Виз Стоун даже не подозревали, что Twitter станет инструментом, столь влиятельным в политике и бизнесе. Интересно, что подавляющее большинство пользователей Twitter взаимодействуют с сервисом с помощью программного обеспечения, созданного третьими лицами. Открытость платформы дала массу возможностей для стартапов.
Twitter, главная политическая платформа десятилетияТри вышеперечисленных примера иллюстрируют модель платформ, которые построены по принципу адаптации нескольких слоев существующих знаний. Уникален не каждый элемент или механизм в отдельности, уникально их сочетание друг с другом.
Хорошие идеи не валяются на дороге, но они открыты к объединению, взаимодействию и распространению. Пересекая концептуальные границы, эти идеи можно изобрести заново. Они стремятся дополнять друг друга так же сильно, как и конкурировать между собой.
В какой отрасли мы ни искали бы оригинальные идеи в живой природе или в программном обеспечении модели возникновения инноваций схожи. Мы сможем мыслить более творчески, если откроем наш разум тем многочисленным и взаимосвязанным средам, которые стимулируют творческое мышление.
В телеграм-канале Репродуктор Белоусова я пишу о гаджетах, трендах, бизнесе и публикую конспекты интересных деловых книг.