Search
Write a publication
Pull to refresh
30
0
Александр Трахимёнок @astec

User

Send message

Как писать на HTML Canvas удобно, или как изобрести очередной renderer на Angular

Reading time5 min
Views7.6K

Разработка на canvas с контекстом 2D обычно не предполагает никаких сложностей. Для начала необходимо изучить пару десятков встроенных методов WEB API CanvasRenderingContext2D, прочитать рекомендации по оптимизации, вспомнить школьный курс геометрии. И на этих базовых вещах можно уже строить неплохие приложения на canvas.

Как один из вариантов начала разработки на canvas: из примитивов фигур строят элементы, затем их объединяют в функцию, эти функции складывают в готовый элемент, объединяют их в слой, ну и в конце уже отдают в функцию рендера. Все еще звучит довольно неплохо и с этим можно даже жить, если использовать чистые функции, и придерживаться везде этого подхода. Но не всегда этого удается, всегда есть соблазн выхватить что-либо из контекста. Для примера приведу код из source-map-vizualization замечательный инструмент, сделанный на canvas. Только чтобы понять весь код и привнести какие либо исправления, я думаю придется посидеть не один час.

Читать далее

Небинарный *ngIf

Reading time3 min
Views7.2K

Вам когда-нибудь хотелось отобразить состояние загрузки, пока ngIf ждет ответа от async-пайпа? Или, может, вы мечтали передать в ngFor шаблон для пустого массива? Возможно, вы бросили это, потому что вам не хотелось реализовывать базовую логику этих директив самому. На самом деле в этом нет нужды! Один и тот же селектор может подцепить несколько директив, что позволяет расширить функциональность встроенных директив дополнительной логикой.

Читать далее

Как финансировать стартап на этапе MVP? Краткое руководство по первичному финансированию

Reading time5 min
Views5.1K

Как финансировать стартап на этапе MVP? Краткое руководство по первичному финансированию

Деньги на собственный бизнес — самая заветная мечта начинающего предпринимателя, не так ли?

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

Однако если знать где искать тот самый фонд и как подать заявку, путь к получению капитала для развития бизнеса может значительно сократиться.

Читать далее

От разработки и дизайна до менеджмента и бизнеса — топовые спикеры, доклады и нетворкинг на юбилейном 404fest

Reading time2 min
Views1.6K

Врываемся с анонсом юбилейного Фестиваля 404, который пройдет 25-26 сентября в Самаре. Проводим фест уже в десятый раз и планируем мощнейше отпраздновать круглую дату ?

Читать далее

Кодогенерация в GO на примере маршалинга и анмаршалинга интерфейсных типов данных

Reading time10 min
Views5.8K

Есть интерфейс и есть несколько типов удовлетворяющих этому интерфейсу. Хочется сделать так, что бы можно было сохранить в JSON список таких интерфейсов а потом восстановить из JSON-а этот список.

Давайте прикинем как это сделать на Go

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Reading time16 min
Views45K


Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook*, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.


TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.
Читать дальше →

Сколько мне стоило попасть в Гугл и получить повышение, не проработав там ни одного дня

Level of difficultyEasy
Reading time10 min
Views94K

Декабрь 2020, вторая волна Ковида в разгаре. Я ПМ на удаленке в Американской компании. После похорон отца в Тбилиси я находился в прострации, надо было возвращаться в США и как-то менять своё положение, ведь денег, которых я зарабатывал явно не хватало на нормальную жизнь. Сами воспоминания о моём предыдущем поиске вызывали во мне холодный озноб и какой-то внутренний голос тихо шептал «подожди, сейчас пандемия, многие и о таком мечтают, как-нибудь выкрутишься…».

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

Я зарегистрировал себе американский номер в Google Voice, чтобы мне начали звонить рекрутеры и начал рассылать резюме. Я разослал около сотни адаптированных резюме и указал в LinkedIn что активно ищу работу. Постепенно на меня начали выходить рекрутеры небольших компаний, но я понимал, что в них условия будут в лучшем случае на 40% лучше текущей и это все равно не решало моих проблем. Хоть и казалось, что на LinkedIn висят тысячи позиций, однако основных работодателей я этим исчерпал. Подавался я в основном на Sr. Project Manager или Engineering Manager позиции.

Осознание пришло, когда я стал читать teamblind.com – лучший ресурс в США по анализу рынка в ИТ и levels.fyi где можно посмотреть реальные зарплаты. Раньше я читал Glassdoor, но информация на нем устарела.

Оказалось, что в финансовой сфере в США, которая мне была интересна - плохие условия и токсичная культура, тоже самое в консалтинге кроме компаний из Big4 или MBB где надо работать долгие часы, но возможно получать 1+ миллион долларов в год дослужившись до партнёра. Самыми интересными оказались компании, которые называют FAANG (Fb, Apple, Amazon, Netflix, Google) иногда в место этого списка используют FAANGMULA справедливо добавляя туда Microsoft, Uber, Lyft и Airbnb – все они технологические, инновационные компании не просто создающие бизнес-продукты, но и технологии, которыми пользуются весь мир. Компании, создающие де-факто стандарты разработки цифровых продуктов, инвестирующие в научные исследования, создающие легендарные условия для своих сотрудников, чем привлекают умнейших инженеров и ученных со всего мира.

Читать далее

Функциональные  опции в Go: реализация шаблона опций в Golang

Reading time4 min
Views10K

В этом посте рассказывается о том, какие функциональные опции есть в Go и как мы можем использовать шаблон "опции" для их реализации. Функциональные опции имеют форму дополнительных аргументов функции, которые расширяют или изменяют ее поведение. Вот пример, в котором используются функциональные параметры для создания новой структуры House:

Читать далее

Прагматичные Unit тесты на Golang

Reading time6 min
Views33K

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

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

Читать далее

Моки без лишней мороки с mswjs+faker.js

Reading time6 min
Views11K

Недавно я в очередной раз столкнулся с типичной проблемой: для создания нового функционала фронтенд и бэкенд нужно было реализовывать параллельно. Но как делать фронт, не имея 100% рабочих эндпойнтов на бэкенде? Сегодня я расскажу о том, какие подходы применял, и разберу их плюсы и минусы.

Читать далее

Почему мы считаем Google Identity Platform лучше многих платных альтернатив

Reading time4 min
Views3.6K

Некоторое время назад мы решили перестроить управление доступом к рабочему пространству мобильных команд. Изучили рынок и обнаружили, что бесплатная Google Cloud Platform вполне может составить конкуренцию платным решениям. В этой статье мы делимся своим опытом и даем инструкции по подключению. 

Читать далее

Еще 5 причин выбрать Apache Pulsar вместо Apache Kafka

Reading time7 min
Views13K
Apache Kafka — крайне популярное в настоящий момент решение для обмена сообщениями. Тем более интересно посмотреть какие альтернативы для нее существуют. Особенно декларируемые, как более интересные по ряду параметров.

Под катом — перевод статьи-сравнения Apache Pulsar и Apache Kafka. Статья в некоторой степени рекламная, т.к. написана заинтересованным лицом, но как минимум, возбуждает интерес копнуть глубже. Поехали.

Переведено @middle_java
Читать дальше →

Webpack Module Federation — микрофронтенд на современных технологиях

Reading time9 min
Views22K

Привет, Хабр! В Netcracker мы уже давно используем микрофронтендную архитектуру, и с 2017 года начали разрабатывать собственный платформенный инструмент построения микрофронтендов.

Недавно на митапе мы показывали, как делать сложные приложения, разрабатываемые разными командами в разных релизных циклах и даже технологиях. В режиме live coding соединили Angular, React и Vue в одном SPA. Было много вопросов про Webpack Module federation. Поскольку мы уже переходим на этот фреймворк, здесь мы поделимся наработками, как сделать Angular host application + React/Angular/Vue microfrontends с возможностью независимого версионирования зависимостей.

Давайте рассмотрим на рабочем прототипе!

Y Combinator: редактирование мировоззрения основателей стартапов

Reading time3 min
Views2.6K
image

В конце июня мы запустили нашу летнюю программу Y Combinator 2021 года — 33-ю по счету с момента основания акслератора в 2005 году. Сейчас мы финансируем сотни компаний каждые полгода, и я рефлексирую о том, как мы работаем с этими компаниями во время интенсива и потом, по мере того, как они строят свой бизнес.

За все годы я обнаружил, что существует распространенное заблуждение относительно того, чем мы занимаемся в Y Combinator. Люди часто считают, что смысл существования YC — это Demo Day и привлечение инвестиций, и что единственная цель учредителей при подаче заявки в YC и завершении нашей программы — повысить вероятность привлечения инвестиций.

Это правда, что компаниям, которые завершают основную программу YC, легче привлекать деньги от бизнес-ангелов и венчурных капиталистов. Также, безусловно, верно, что привлечение капитала чрезвычайно важно для стартапов на ранней стадии, поскольку они финансируют разработку своих продуктов и рост, который они планируют и на который надеются.

Но возникает важный вопрос: почему у компаний YC больше шансов на успех в сборе средств? В том ли причина, что YC — эффективный фильтр: выбирают только лучших основателей и компании? Это, безусловно, одна из причин. Однако это еще не все, и он имеет важное значение для того, что мы делаем. Присоединившись к YC, пройдя нашу программу, работая с нашими партнерами и став частью сообщества YC, каждый стартап претерпевает тонкую трансформацию в компанию, которая с большей вероятностью преуспеет. Это настоящий секрет успеха YC.

Мы — гораздо больше, чем просто ключ к привлечению капитала.
Читать дальше →

gRPCurl — curl для gRPC-серверов

Reading time4 min
Views36K


gRPC — современный фреймвок для удалённого вызова процедур, разработанный Google в 2015 году. Им начинает пользоваться всё большее количество компаний по всему миру. В России, например, это Яндекс. gRPCurl — инструмент командной строки, написанный на Go. Он разработан компанией FullStory и позволяет взаимодействовать с gRPC серверами. В этой статье будут раскрыты особенности проекта и описаны основные кейсы для его применения.
Читать дальше →

Кто такой СТО и каковы его задачи? Личный опыт и мнение технического директора

Reading time6 min
Views51K


Привет, Хабр! Меня зовут Игорь Десятников, я Chief Technical Officer в компании Neuro.net. Несколько раз встречал на Хабре статьи с попыткой рассказать о роли СТО, об эволюции этой должности при расширении компании и т.п. С некоторыми вещами согласен, с другими — нет.

Сегодня расскажу о своем видении позиции СТО. Если получится — было бы отлично поднять в комментариях дискуссию. Если вы с чем-то не согласны, просто хотите дополнить или поделиться собственным опытом — давайте обсудим.
Читать дальше →

Как писать кодогенераторы в Go

Reading time14 min
Views18K

Однообразный код писать неинтересно, нудно, но приходится. Испокон веков изворотливые программисты ищут Святой Грааль формализма, позволяющего переложить рутинные задачи на машину, писать только раз и переиспользовать код. Так появились структурное программирование, потом объектно-ориентированное, полиморфизм с параметризованными типами, кодогенерация на основе формальных грамматик, препроцессоры макроязыка и прочее…​ Под катом рассмотрим, как обстоят дела именно в Go.

Читать далее

Дженерики в языке Go

Reading time6 min
Views70K
func Map[F, T any](s []F, f func(F) T) []T {
    r := make([]T, len(s))
    for i, v := range s {
        r[i] = f(v)
    }
    return r
}

Как вы уже наверняка знаете, proposal по дженерикам в Golang принят (официально это называется type parameters) и будет имплементирован в go 1.18. Бета будет доступна уже в конце этого года. А это значит, что пора разобраться, на чём в итоге остановились разработчики языка — ведь черновик type parameters постоянно менялся в течение последних лет.


Технология новая, на практике толком никто не использовал. Поэтому если увидите какую-то неточность в статье, не стесняйтесь указать это в комментариях.


Самостоятельно поиграться с дженериками можно здесь


Итак, поехали.

Читать дальше →

Эффективность — ваш враг

Reading time8 min
Views74K

Есть большая вероятность, что причиной большинства проблем в вашей жизни и работе является недостаточная бездеятельность. В статье мы расскажем, как устроена бездеятельность и почему вам её нужно больше.

Представьте, что вы, фанат продуктивности, однажды заполучаете доступ к машине времени и решаете переместиться на несколько десятков лет назад в офис одного из своих старых героев бизнеса. Назовём его Тони.

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

Попав в офис (разумеется, заполненный дымом сигарет), вы немного удивлены, что он совсем не похож на людской муравейник. На самом деле, окружающие вас люди практически ничего не делают. Рядом с офисом вашего героя его секретарша отдыхает за своим столом. Назовём её Глория. Похоже, она совсем ничем не занята. Вы в течение получаса наблюдаете, как она читает, приводит в порядок свой стол и болтает с проходящими мимо секретаршами. Они тоже не выглядят занятыми. Озадаченный тем, что Тони тратит свои деньги на бездельников, вы решаете остаться ещё на несколько часов.
Читать дальше →

Как найти сооснователя в стартап и нужно ли

Reading time3 min
Views3.4K
image

Привет! Я Кэт Маньялак и я являюсь партнёром Y Combinator уже на протяжении пяти лет и наблюдала за 1300 компаниями. Сегодня я отвечу на вопрос «Как найти сооснователя».

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

Нужен ли сооснователь?


На самом деле, вполне возможно начинать довольно успешную компанию самостоятельно.
12% компаний, которые мы профинансировали в 2019 году, были созданы соло основателями. Но если вы обратите внимание на 50 крупнейших компаний по капитализации, вы увидите, что только трое из них были созданы основателями-одиночками. Таким образом, вы можете создать действительно успешную компанию самостоятельно, но это тяжело. С сооснователем вы можете не только разделить задачи, но и эмоциональную нагрузку.
Читать дальше →

Information

Rating
Does not participate
Location
Ирландия
Date of birth
Registered
Activity