Никогда не думал как выглядит гитхаб профиль, когда пушишь только в приватные репы.
Оказывается, есть настройки видимости твоей активности. Один клик - и теперь все видят, что я не ленивая жопа, а уважаемый трудоголик :)
Оказывается, есть настройки видимости твоей активности. Один клик - и теперь все видят, что я не ленивая жопа, а уважаемый трудоголик :)
Еще долго не смолкнет бугурт относительно фильма Дудя про долину.
Alex уже отметился (https://news.1rj.ru/str/devfounder/39), значит и мне пора :)
Я в SF никогда не был, и, видимо, в ближайшее время не буду, но пара мыслей про стартапы и их столицу у меня есть.
1) Есть бизнесы, которые не интересны инвесторам. И не потому, что это плохая идея (давайте напишем процессинг карт на руби и монге - stripe $36bln, давайте будем в аренду комнаты с надувными матрасами - airbnb $31bln, давайте сделаем сайт с блогами в который smsкаим постить можно - twitter $22bln), а потому что компания не может расти в несколько иксов в год несколько лет подряд. Инвестору наплевать на вашу идею. Ему нужен рост вашей компании, чтоб он смог перепродать свою долю следующему инвестору. Поэтому если вы придумали что-то, у чего TAM (total addressable market) не измеряется миллиардами, вы нафиг никому не сдались.
2) Среди таких проектов огромное количество откровенной дичи. Смотрел сегодня демодей московского акселератора - https://innoagency.ru/demoday/ . Я приуныл, если честно. Ехал ИИ через бигдата, видит в реке решение на базе технологий компьютерного зрения. Не, они, конечно, подбирали их специально, но на VC КУХНе (https://www.youtube.com/watch?v=bdj6_EzUnmU) у Николая Давыдова и Игоря Шойфота было больше интересных проектов.
Или маркетплейс маркетплейсов. Видел недавно вакансию в маркетплейс ягерей. Ягерей, Карл!
Это даже звучит скучно, не то что бы им денег давать или работать к ним идти.
3) Искать инвестора - это отдельная большая работа. Если в вашем проекте нет человека, который этим может заниматься фуллтайм, забейте. Шансов 0.
4) Инвесторы это не только деньги. Это еще и networking. Иногда только networking (YC дает $120k за 7% компании, но ценность нетворкинга и статуса YC Alumni привлекает туда тысячи стартаперов)
5) Предыдущие пункты - не повод унывать. Вы вполне можете построить бизнес, который зарабатывает по несколько миллионов долларов в год на карман без всяких инвесторов. Посмотрите вокруг - в области ваших интересов скорее всего полно сервисов, которые сделаны откровенно плохо, но либо зарабатывают сами, либо нашли инвесторов.
Мой единственный конкурент не может распарсить элементарных запросов, но это не мешает ему ставить ценник до $1500 в месяц при годовой оплате.
Еще пример - порекомендовали мне сервис drawsql.app . Выглядит симпатично. Ценник - до $100 баксов в месяц. Я думал как-нибудь при случае сделать рендер схем во что-то красивое. Например, в miro. Начинаю тестить. Можно загрузить схему базы (DDL). Загружаю демо-базу от postgrespro (https://holistic.dev/en/playground/f9a504e1-6bd4-4464-a951-87b3b9db6e69):
Import complete!
Your sql noscript have been successfully imported into this diagram
Imported: 0 tables, 0 columns and 0 relationships.
Warnings:
others:
Skipped parsing of 'SET' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'DROP' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE DATABASE' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE SCHEMA' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE ' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE FUNCTION' statements. Only CREATE TABLE statements can be parsed.
Да ну е-мае! Как же так-то? Зато якобы поддерживает postgresql, mysql, mssql. И на producthunt как продукт дня.
6) Два месяца назад попалась такая статья - https://www.joisig.com/rules-software-startup-minimum-hassle
Не берите денег, не привлекайте грантов. Да и, честно говоря, сейчас вам их дадут, только если у вас уже есть выручка. :)
Меня немного колбасило от мысли шарить свою прелесть с какими-то неизвестными чуваками, которые даже пользы продукта не понимают. И я решил забить на этот вопрос :)
Вместо того, чтобы рисовать презентации, я лучше потрачу время на продукт.
Alex уже отметился (https://news.1rj.ru/str/devfounder/39), значит и мне пора :)
Я в SF никогда не был, и, видимо, в ближайшее время не буду, но пара мыслей про стартапы и их столицу у меня есть.
1) Есть бизнесы, которые не интересны инвесторам. И не потому, что это плохая идея (давайте напишем процессинг карт на руби и монге - stripe $36bln, давайте будем в аренду комнаты с надувными матрасами - airbnb $31bln, давайте сделаем сайт с блогами в который smsкаим постить можно - twitter $22bln), а потому что компания не может расти в несколько иксов в год несколько лет подряд. Инвестору наплевать на вашу идею. Ему нужен рост вашей компании, чтоб он смог перепродать свою долю следующему инвестору. Поэтому если вы придумали что-то, у чего TAM (total addressable market) не измеряется миллиардами, вы нафиг никому не сдались.
2) Среди таких проектов огромное количество откровенной дичи. Смотрел сегодня демодей московского акселератора - https://innoagency.ru/demoday/ . Я приуныл, если честно. Ехал ИИ через бигдата, видит в реке решение на базе технологий компьютерного зрения. Не, они, конечно, подбирали их специально, но на VC КУХНе (https://www.youtube.com/watch?v=bdj6_EzUnmU) у Николая Давыдова и Игоря Шойфота было больше интересных проектов.
Или маркетплейс маркетплейсов. Видел недавно вакансию в маркетплейс ягерей. Ягерей, Карл!
Это даже звучит скучно, не то что бы им денег давать или работать к ним идти.
3) Искать инвестора - это отдельная большая работа. Если в вашем проекте нет человека, который этим может заниматься фуллтайм, забейте. Шансов 0.
4) Инвесторы это не только деньги. Это еще и networking. Иногда только networking (YC дает $120k за 7% компании, но ценность нетворкинга и статуса YC Alumni привлекает туда тысячи стартаперов)
5) Предыдущие пункты - не повод унывать. Вы вполне можете построить бизнес, который зарабатывает по несколько миллионов долларов в год на карман без всяких инвесторов. Посмотрите вокруг - в области ваших интересов скорее всего полно сервисов, которые сделаны откровенно плохо, но либо зарабатывают сами, либо нашли инвесторов.
Мой единственный конкурент не может распарсить элементарных запросов, но это не мешает ему ставить ценник до $1500 в месяц при годовой оплате.
Еще пример - порекомендовали мне сервис drawsql.app . Выглядит симпатично. Ценник - до $100 баксов в месяц. Я думал как-нибудь при случае сделать рендер схем во что-то красивое. Например, в miro. Начинаю тестить. Можно загрузить схему базы (DDL). Загружаю демо-базу от postgrespro (https://holistic.dev/en/playground/f9a504e1-6bd4-4464-a951-87b3b9db6e69):
Import complete!
Your sql noscript have been successfully imported into this diagram
Imported: 0 tables, 0 columns and 0 relationships.
Warnings:
others:
Skipped parsing of 'SET' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'DROP' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE DATABASE' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE SCHEMA' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE ' statements. Only CREATE TABLE statements can be parsed.
Skipped parsing of 'CREATE FUNCTION' statements. Only CREATE TABLE statements can be parsed.
Да ну е-мае! Как же так-то? Зато якобы поддерживает postgresql, mysql, mssql. И на producthunt как продукт дня.
6) Два месяца назад попалась такая статья - https://www.joisig.com/rules-software-startup-minimum-hassle
Не берите денег, не привлекайте грантов. Да и, честно говоря, сейчас вам их дадут, только если у вас уже есть выручка. :)
Меня немного колбасило от мысли шарить свою прелесть с какими-то неизвестными чуваками, которые даже пользы продукта не понимают. И я решил забить на этот вопрос :)
Вместо того, чтобы рисовать презентации, я лучше потрачу время на продукт.
Сегодня Digital Доктор запостил длинный пост относительно оценки стартапов - https://news.1rj.ru/str/tlgdoc/476
В сериале "кремниевая долина" был сюжет "no revenue" (https://www.youtube.com/watch?v=OH9CXhWV6zE), где инвестор говорит, что выручка не нужна.
Пока ты делаешь проект без выручки, ты можешь торговать ожиданиями инвесторов.
Как только ты начал продавать - все, хана. Все метрики превращаются в одну - сколько у тебя выручки. И тебя уже не перепродашь другому инвестору за 5 иксов.
Но в любом случае, SF - центр IT вселенной. Такого больше нет. В остальных местах просто ничего не происходит. Ну в Москве немножко, но для мирового уровня это рябь на воде.
Т.е. если ты хочешь развиваться, то тебе нужно окружение, которое круче тебя на голову или на две.
И такое место на планете одно.
Как LA для киношников.
Как Тибет для духовно развитых.
Как Valhalla для War Boys :)
Все, что мы представляем собой как индустрия - результат работы людей из долины.
А вообще, посмотрите сериал (https://www.kinopoisk.ru/series/723959/), если еще не :)
В сериале "кремниевая долина" был сюжет "no revenue" (https://www.youtube.com/watch?v=OH9CXhWV6zE), где инвестор говорит, что выручка не нужна.
Пока ты делаешь проект без выручки, ты можешь торговать ожиданиями инвесторов.
Как только ты начал продавать - все, хана. Все метрики превращаются в одну - сколько у тебя выручки. И тебя уже не перепродашь другому инвестору за 5 иксов.
Но в любом случае, SF - центр IT вселенной. Такого больше нет. В остальных местах просто ничего не происходит. Ну в Москве немножко, но для мирового уровня это рябь на воде.
Т.е. если ты хочешь развиваться, то тебе нужно окружение, которое круче тебя на голову или на две.
И такое место на планете одно.
Как LA для киношников.
Как Тибет для духовно развитых.
Как Valhalla для War Boys :)
Все, что мы представляем собой как индустрия - результат работы людей из долины.
А вообще, посмотрите сериал (https://www.kinopoisk.ru/series/723959/), если еще не :)
Telegram
Digital Доктор
«Продай другому дураку дороже»
Еще одной отличительной характеристикой Долины являются очень специфические показатели успеха стартапа, и соответственно, его стоимости.
Большинство привыкло воспринимать успех любого бизнеса по размеру прибыли, которую он…
Еще одной отличительной характеристикой Долины являются очень специфические показатели успеха стартапа, и соответственно, его стоимости.
Большинство привыкло воспринимать успех любого бизнеса по размеру прибыли, которую он…
https://news.1rj.ru/str/nosingularity/423
Когда решил упороться, и посмотреть на все коммиты за год....
~2800 contributions in the last year
Смержил картинку из двух гитлабов и гитхаба.
До Бугаенко c его 6k мне, конечно, далеко, но уже кое-что ;) Хотя, я коммичу редко, так что, может быть и сравнимо.
Я как-то рассказывал, что у меня еще подключен wakatime.com и там я мониторю количество потраченного времени на разные репы.
Сервис поддерживает 45 ide/тулзин, включая хром и терминал. Я не заморачивался, у меня только к vscode.
В среднем у меня получается выдерживать около 35 часов чистого кодинга и 5 часов на документацию в неделю.
Все никак не заведу привычку писать тексты для канала в vscode, чтоб время трекалось. Думаю, там будет еще часов 5-6 в неделю :(
Я пользуюсь бесплатным планом, на нем хранится история только за 2 недели и раз в неделю приходит репорт на почту.
Только что в дашборде всплыла подсказка:
You have 546 hours of coding stats older than the 2 week limit
That’s over 32,782 minutes that you can’t see on your dashboard. Upgrade to a paid plan to access your full coding history — plus features like private leaderboards, goals, and integrations.
В платной версии есть прикольная фишка - Commit Metrics. Будет в гитхабе рисовать сколько времени ушло на каждый коммит.
Пользовался неделю https://timingapp.com/, но это, как мне показалось, уже перебор.
Есть тут еще контрол фрики? )
Когда решил упороться, и посмотреть на все коммиты за год....
~2800 contributions in the last year
Смержил картинку из двух гитлабов и гитхаба.
До Бугаенко c его 6k мне, конечно, далеко, но уже кое-что ;) Хотя, я коммичу редко, так что, может быть и сравнимо.
Я как-то рассказывал, что у меня еще подключен wakatime.com и там я мониторю количество потраченного времени на разные репы.
Сервис поддерживает 45 ide/тулзин, включая хром и терминал. Я не заморачивался, у меня только к vscode.
В среднем у меня получается выдерживать около 35 часов чистого кодинга и 5 часов на документацию в неделю.
Все никак не заведу привычку писать тексты для канала в vscode, чтоб время трекалось. Думаю, там будет еще часов 5-6 в неделю :(
Я пользуюсь бесплатным планом, на нем хранится история только за 2 недели и раз в неделю приходит репорт на почту.
Только что в дашборде всплыла подсказка:
You have 546 hours of coding stats older than the 2 week limit
That’s over 32,782 minutes that you can’t see on your dashboard. Upgrade to a paid plan to access your full coding history — plus features like private leaderboards, goals, and integrations.
В платной версии есть прикольная фишка - Commit Metrics. Будет в гитхабе рисовать сколько времени ушло на каждый коммит.
Пользовался неделю https://timingapp.com/, но это, как мне показалось, уже перебор.
Есть тут еще контрол фрики? )
Тут вот еще мнение про долину от имени владельца миллиардного бизнеса:
https://www.facebook.com/anton.antich/posts/10159868552837995
Есть пара комментов. Не 5 миль, а 50. В USA это какая-то магическая цифра, применяемая ко всему: зарядкам для электокаров, расстояние с которого начинаются компенсации сотруднику за поездки на работу, и даже вот такое
https://www.urbandictionary.com/define.php?term=50%20mile%20rule
https://www.amazon.com/50-Mile-Rule-Infidelity-Extramarital-Etiquette/dp/1580084141
А насчет истории с miro, и что к ним инвестор прилетал лично, есть мнение, что это дало повод им думать, что и разработчики к ним тоже полетят :)
Инвестор прилетел и улетел, а разработчикам там надо жить.
Теперь они нанимают разрабов в Амстердам и в Пермь, а в Москве или Новосибе у них офисов нет.
Отдельно смешно, конечно, что разработчики инструмента для распределенных команд не нанимают на удаленку :) Как и notion, кстати.
https://www.facebook.com/anton.antich/posts/10159868552837995
Есть пара комментов. Не 5 миль, а 50. В USA это какая-то магическая цифра, применяемая ко всему: зарядкам для электокаров, расстояние с которого начинаются компенсации сотруднику за поездки на работу, и даже вот такое
https://www.urbandictionary.com/define.php?term=50%20mile%20rule
https://www.amazon.com/50-Mile-Rule-Infidelity-Extramarital-Etiquette/dp/1580084141
А насчет истории с miro, и что к ним инвестор прилетал лично, есть мнение, что это дало повод им думать, что и разработчики к ним тоже полетят :)
Инвестор прилетел и улетел, а разработчикам там надо жить.
Теперь они нанимают разрабов в Амстердам и в Пермь, а в Москве или Новосибе у них офисов нет.
Отдельно смешно, конечно, что разработчики инструмента для распределенных команд не нанимают на удаленку :) Как и notion, кстати.
Urban Dictionary
Urban Dictionary: 50 mile rule
a rule stating that if you are more than 50 miles away from the person you are dating then all faithfulness to your significant other is null and void. Similar to out of sight out of mind.
Для новых подписчиков, вот моя история поездки в гости к Miro:
https://news.1rj.ru/str/nosingularity/33
https://news.1rj.ru/str/nosingularity/33
Telegram
Сингулярности не будет (18+)
...После митапа на highload я полетел в Пермь на Miro Platform Developers Conference.
2 часа я ехал на такси до Шереметьево и 2 часа летел....
Вышел в час ночи в публичную зону аэропорта Большое Савино, заказал такси, стою, жду. Рядом местный молодой человек…
2 часа я ехал на такси до Шереметьево и 2 часа летел....
Вышел в час ночи в публичную зону аэропорта Большое Савино, заказал такси, стою, жду. Рядом местный молодой человек…
Недавно вы единодушно проголосовали за то, чтобы я начал публиковать правила анализатора с разбором кейсов (https://news.1rj.ru/str/nosingularity/415)
Пока я не сформулировал с чего начать. И дело не в самих правилах, с ними проблем нет. Хочется как-то структурно подойти к этим публикациям. Может быть сначала есть смысл рассказать про некоторые внутренние процессы, происходящие в базе, для большего погружения в проблему?
С другой стороны давят Даннинг с Крюгером, нашептывая "ты балбес, иди в сорцах поковыряйся" :)
Пока я собираюсь с мыслями, предлагаю всем интересующимся заглянуть в доку
https://github.com/antonrevyako/useful-links/blob/master/opensource-sql-tools.md
Например, там есть ссылки на реализацию mysql на go и репозиторий, где пытаются повторить postgres на go from the scratch.
Так же на глаза попался твиттер-тред (брррр) от Oracle Developer Advocate for SQL, где он рассказывает про различные проблемы, встречающиеся в запросах
https://twitter.com/ChrisRSaxon/status/1256233845642452994
Часть рекомендаций там с оракловским колоритом, но все равно может пригодиться.
Например, в pg есть такая бага, что count(*) работает на 10% медленнее, чем count(1). В оракле такой баги нет.
Давайте пока разберу одно правило из первых рекомендаций треда.
ALWAYS returns no rows
Казалось бы, такое правило нужно только джунам. Кто не знает, что нельзя сравнивать с NULL'ом?
Если будет существовать правило, автоматом проверяющее на подобные вещи, то, во-первых, джун сможет за джуновскую зарплату не допускать ошибок, которые не допускают синьоры.
Во-вторых, такой же эффект будет наблюдаться при сравнении с колонкой или выражением, которое может принимать значение NULL.
Пример:
где b может быть NULL
Отдельный вопрос сможет ли разработчик всегда понять, что b может принимать 'значения' NULL или нет, но конкретно тут, возможно, хотелось бы трактовать NULL как 0.
Пример:
Казалось бы,
Но фокус в том, что любые выражения с NULL дают NULL...
В этом случае стоит использовать CONCAT, который трактует NULL-значения как пустую строку.
Все ли об этом знают?
Пока я не сформулировал с чего начать. И дело не в самих правилах, с ними проблем нет. Хочется как-то структурно подойти к этим публикациям. Может быть сначала есть смысл рассказать про некоторые внутренние процессы, происходящие в базе, для большего погружения в проблему?
С другой стороны давят Даннинг с Крюгером, нашептывая "ты балбес, иди в сорцах поковыряйся" :)
Пока я собираюсь с мыслями, предлагаю всем интересующимся заглянуть в доку
https://github.com/antonrevyako/useful-links/blob/master/opensource-sql-tools.md
Например, там есть ссылки на реализацию mysql на go и репозиторий, где пытаются повторить postgres на go from the scratch.
Так же на глаза попался твиттер-тред (брррр) от Oracle Developer Advocate for SQL, где он рассказывает про различные проблемы, встречающиеся в запросах
https://twitter.com/ChrisRSaxon/status/1256233845642452994
Часть рекомендаций там с оракловским колоритом, но все равно может пригодиться.
Например, в pg есть такая бага, что count(*) работает на 10% медленнее, чем count(1). В оракле такой баги нет.
Давайте пока разберу одно правило из первых рекомендаций треда.
select * from ... where anything = NULL
ALWAYS returns no rows
Казалось бы, такое правило нужно только джунам. Кто не знает, что нельзя сравнивать с NULL'ом?
Если будет существовать правило, автоматом проверяющее на подобные вещи, то, во-первых, джун сможет за джуновскую зарплату не допускать ошибок, которые не допускают синьоры.
Во-вторых, такой же эффект будет наблюдаться при сравнении с колонкой или выражением, которое может принимать значение NULL.
Пример:
WHERE a < b + 1,
где b может быть NULL
Отдельный вопрос сможет ли разработчик всегда понять, что b может принимать 'значения' NULL или нет, но конкретно тут, возможно, хотелось бы трактовать NULL как 0.
Пример:
WHERE a = 'string' || b
Казалось бы,
'string' || bдолжен быть равен
'string', если b IS NULL.
Но фокус в том, что любые выражения с NULL дают NULL...
В этом случае стоит использовать CONCAT, который трактует NULL-значения как пустую строку.
Все ли об этом знают?
Telegram
Сингулярности не будет
https://twitter.com/lukaseder/status/1252919177515581441
Это не единственный заскок mysql.
Пока для mysql правил не делали, но чувствуется, это будет веселая прогулка :)
Да, если кто-то еще не знает, я делаю статический анализатор для SQL. Сейчас поддерживается…
Это не единственный заскок mysql.
Пока для mysql правил не делали, но чувствуется, это будет веселая прогулка :)
Да, если кто-то еще не знает, я делаю статический анализатор для SQL. Сейчас поддерживается…
Как-то давно (лет 5 назад), досталась мне база одного билетного агенства, которую надо было привести в порядок.
Но проблема лежала не в плоскости архитектуры, а в плоскости контента.
На одно и то же мероприятие билеты продают разные ресселеры. Одни и те же места у них называются по-разному и стоят по разному. На фестивали билеты могут быть описаны как «вип на первый день с парковкой в крыле b, на остальные без парковки». Есть опечатки.
Группировки ни по событиям, ни по продавцам не было.
Каких-то понятных ML инструментов тогда не было, поэтому я запасся энергетиком и загнал все в postgres.
За неделю я отнормализовал процентов 80 контента.
Пофиксил опечатки (выбираются самые популярные слова, самые редкие, считается
расстояние Левенштейна, для редких слов с ld меньше 3 делается замена на частые).
Разделил что мог на группы - стало понятно что в билет включена парковка, на сколько дней действует и тд.
Узнал много нового о делении концертных площадок на куски, их названия и ценообразование.
Что могу сказать... FTS (full text search) у postgres отличный :)
Но его мне все-равно не хватило.
Пришлось написать около 200 regexp’ов, которые парсили всю базу для подготовки текста под FTS.
Возможно, не последнюю роль тут сыграли 4 банки энергетика в день, но где-то на 150 regexp’е мне показалось, что я могу видеть время...
Причем до этого момента я был с regexp’ами на ВЫ. Я знал, что на regexp разговаривают перловики, и один знакомый сисадмин.
Все мои эксперименты выглядели как копипаста с http://php.spb.ru/php/regexp.html (алярм, БИТАЯ КОДИРОВКА!) с небольшими правками.
Это сейчас все знают про regex101.com, а тогда никто не знал :)
Короче, с того момента я regexp не боюсь :) Ими очень удобно парсить всякое, в том числе прям в IDE. Все IDE поддерживают поиск с regexp.
Есть, конечно, совершенно неподходящее приложение этого инструмента - например, парсинг сорцов. Вот знаменитый топик на SO про парсинг html:
https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags
Сорцы парсят совершенно другим способом. За час можно разобраться с этим проектом? там все максимально понятно, даже если js не ваш родной язык:
https://github.com/jamiebuilds/the-super-tiny-compiler
Но в моем анализаторе все-равно нашлось место регуляркам. С их помощью я очищаю DDL от команд, которые есть в psql, но которые не понимает AST-парсер.
Поэтому анализатору можно скармливать файлы с многострочными каментами и с коммандами вида
\c dbname
Но я, собственно, чего начал то...
Show HN принес такой проект:
RegEx for Regular Folk
https://refrf.shreyasminocha.me/
Все доступным языком, с хорошими примерами.
Btw, вы видели полный regexp валидатор для email?
https://stackoverflow.com/questions/20771794/mailrfc822address-regex
PS: хотел было изобрести reactions с regexp, так этот бот не пропустит :(
Но проблема лежала не в плоскости архитектуры, а в плоскости контента.
На одно и то же мероприятие билеты продают разные ресселеры. Одни и те же места у них называются по-разному и стоят по разному. На фестивали билеты могут быть описаны как «вип на первый день с парковкой в крыле b, на остальные без парковки». Есть опечатки.
Группировки ни по событиям, ни по продавцам не было.
Каких-то понятных ML инструментов тогда не было, поэтому я запасся энергетиком и загнал все в postgres.
За неделю я отнормализовал процентов 80 контента.
Пофиксил опечатки (выбираются самые популярные слова, самые редкие, считается
расстояние Левенштейна, для редких слов с ld меньше 3 делается замена на частые).
Разделил что мог на группы - стало понятно что в билет включена парковка, на сколько дней действует и тд.
Узнал много нового о делении концертных площадок на куски, их названия и ценообразование.
Что могу сказать... FTS (full text search) у postgres отличный :)
Но его мне все-равно не хватило.
Пришлось написать около 200 regexp’ов, которые парсили всю базу для подготовки текста под FTS.
Возможно, не последнюю роль тут сыграли 4 банки энергетика в день, но где-то на 150 regexp’е мне показалось, что я могу видеть время...
Причем до этого момента я был с regexp’ами на ВЫ. Я знал, что на regexp разговаривают перловики, и один знакомый сисадмин.
Все мои эксперименты выглядели как копипаста с http://php.spb.ru/php/regexp.html (алярм, БИТАЯ КОДИРОВКА!) с небольшими правками.
Это сейчас все знают про regex101.com, а тогда никто не знал :)
Короче, с того момента я regexp не боюсь :) Ими очень удобно парсить всякое, в том числе прям в IDE. Все IDE поддерживают поиск с regexp.
Есть, конечно, совершенно неподходящее приложение этого инструмента - например, парсинг сорцов. Вот знаменитый топик на SO про парсинг html:
https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags
Сорцы парсят совершенно другим способом. За час можно разобраться с этим проектом? там все максимально понятно, даже если js не ваш родной язык:
https://github.com/jamiebuilds/the-super-tiny-compiler
Но в моем анализаторе все-равно нашлось место регуляркам. С их помощью я очищаю DDL от команд, которые есть в psql, но которые не понимает AST-парсер.
Поэтому анализатору можно скармливать файлы с многострочными каментами и с коммандами вида
\c dbname
Но я, собственно, чего начал то...
Show HN принес такой проект:
RegEx for Regular Folk
https://refrf.shreyasminocha.me/
Все доступным языком, с хорошими примерами.
Btw, вы видели полный regexp валидатор для email?
https://stackoverflow.com/questions/20771794/mailrfc822address-regex
PS: хотел было изобрести reactions с regexp, так этот бот не пропустит :(
Сегодня про музло :)
Есть такие песни, которые независимо от настроения можно крутить на репите.
Для меня одна из таких - Nena - 99 Luftballons
https://www.youtube.com/watch?v=idZ6_aRoiJQ
На нее сделано куча ремиксов в разных жанрах, но сегодня ютуб подбросил карантинное видео от олдовой ска-панк группы Goldfinger
https://www.youtube.com/watch?v=idZ6_aRoiJQ
Это, как мне кажется, один из лучших вариантов.
Есть еще неплохой от известного меттал-ковериста Leo Moracchioli
https://www.youtube.com/watch?v=Wr-ywwsjXW8
Его одного, кстати, можно слушать без перерыва и не надоедает :)
Итальянец из Норвегии, он рубит на всех инструментах один и иногда делает фиты.
Вот, например, Africa
https://www.youtube.com/watch?v=MH9FyLsfDzw
или Despacito
https://www.youtube.com/watch?v=hcQyFtHMfbs
Есть такие песни, которые независимо от настроения можно крутить на репите.
Для меня одна из таких - Nena - 99 Luftballons
https://www.youtube.com/watch?v=idZ6_aRoiJQ
На нее сделано куча ремиксов в разных жанрах, но сегодня ютуб подбросил карантинное видео от олдовой ска-панк группы Goldfinger
https://www.youtube.com/watch?v=idZ6_aRoiJQ
Это, как мне кажется, один из лучших вариантов.
Есть еще неплохой от известного меттал-ковериста Leo Moracchioli
https://www.youtube.com/watch?v=Wr-ywwsjXW8
Его одного, кстати, можно слушать без перерыва и не надоедает :)
Итальянец из Норвегии, он рубит на всех инструментах один и иногда делает фиты.
Вот, например, Africa
https://www.youtube.com/watch?v=MH9FyLsfDzw
или Despacito
https://www.youtube.com/watch?v=hcQyFtHMfbs
YouTube
Nena - 99 Luftballons (Clip)
Новая серия Рик и Морти это прям пост-пост мета-мета :)
Поезд, который ездит по кругу, безумный машинист, бессмысленная концовка - там прекрасно все :)
Комбо имени Баадера - Майнхоф настигло меня из-за того, что буквально вчера я посмотрел фильм с бессмысленной концовкой про поезд с безумным машинистом, который ездит по кругу.
Фильм 2013 года, производства Южной Кореи и Чехии, со слоганом «2031 год. Новый ледниковый период. Последнее пристанище человечества — поезд»
(●__●)
Звучит так, как будто не стоит... НО!
Крис Эванс (капитан америка)
Тильда Суинтон
Элисон Пилл (сериалы newsroom и devs)
Эд Харрис (сериал Мир Дикого Запада и еще 173 фильма)
Джон Хёрт (Меланхолия, Догвилль, Гарри Поттер и еще 288 фильмов)
НО! Не стоит :)
Snowpiercer - Сквозь снег
https://www.kinopoisk.ru/film/566283/vk/1/
Поезд, который ездит по кругу, безумный машинист, бессмысленная концовка - там прекрасно все :)
Комбо имени Баадера - Майнхоф настигло меня из-за того, что буквально вчера я посмотрел фильм с бессмысленной концовкой про поезд с безумным машинистом, который ездит по кругу.
Фильм 2013 года, производства Южной Кореи и Чехии, со слоганом «2031 год. Новый ледниковый период. Последнее пристанище человечества — поезд»
(●__●)
Звучит так, как будто не стоит... НО!
Крис Эванс (капитан америка)
Тильда Суинтон
Элисон Пилл (сериалы newsroom и devs)
Эд Харрис (сериал Мир Дикого Запада и еще 173 фильма)
Джон Хёрт (Меланхолия, Догвилль, Гарри Поттер и еще 288 фильмов)
НО! Не стоит :)
Snowpiercer - Сквозь снег
https://www.kinopoisk.ru/film/566283/vk/1/
Про проблемы gram и libra есть старый мультик от студии 420 (с матами, 18+)
https://youtu.be/1ZPLPD9yvnY
https://youtu.be/1ZPLPD9yvnY
YouTube
MMs02ep14 Про бабло [18+]
Легендарное возвращение #YOBATORG: http://yobatorg.to420.org
Ссылка на песню про 50 болгарских копеек: https://www.youtube.com/watch?v=fOMAgkySw1g
Ссылка на песню про 50 болгарских копеек: https://www.youtube.com/watch?v=fOMAgkySw1g
Тема, которую я благополучно прослоупочил - нелепые факапы в разработке.
https://vc.ru/life/124730-tred-razrabotchiki-vspominayut-nelepye-oshibki-v-svoey-rabote
Давно хотел рассказать свою историю, произошедшую почти 20 лет назад.
1/2
Работал я тогда в одном маленьком региональном операторе начальником отдела биллинга.
Ситуация там была интересная - биллинг на протяжении многих лет писала команда из 10 человек. Потом сотового оператора продали TELE2, а команда разработки отделилась и осталась в другой компании, занимающейся продажей интернета.
Поддерживать биллинг сотового оператора силами сторонней компании не виделось учредителям возможным, поэтому решили нанять для этого отдельного человека на переходный период, пока TELE2 не запустит свои мощности.
Как мне стало видеться спустя годы, директор отделившейся компании и по совместительству главный разработчик биллинга, решил провернуть схему как показывают в современных отечественных сериалах типа "мылодрама" или "последний министр".
Он нанял меня на должность начальника биллинга :)
Моя практика SQL на тот момент была ограничена созданием каталога для интернет магазина на Mysql.
Еще я слышал о том, что существуют join'ы ...
Передача биллинга происходила так: я пришел в кабинет к разработчикам (который располагался на том же этаже, что и сотовый оператор) и спросил как будет происходить процесс передачи.
Один из разрабов встал, подошел к стене, выдернул из одного из системников все провода и вручил мне его руки.
Биллинг представлял собой системник high tower с windows NT (или 2000, не помню точно) на борту и сервером MSSQL со всей бизнес-логикой, написанной на хранимках.
Я бегом добежал до своего кабинета и воткнул все все в сеть.
Не помню подробностей как я все это запускал. Видимо, мозг блокирует эти воспоминания :)
Long story short, я немного разобрался как там все устроено.
Бэк, в лучших традициях oracle-style разработки был полностью на MSSQL. Фронтом выступали приложухи, написанные на Visual Fox Pro.
На них работали все отделы - абонентский, бухгалтерия, саппорт и все остальные.
Одна из главных магий этой системы был процесс генерации "книги продаж" для бухгалтеров.
Он должен был запускаться ровно один раз в месяц, в 00:00 первого числа, откатить назад было невозможно, как оно работает - не знал никто.
Внутри процедура генерации занимала экранов 200 T-SQL, кода, который вызывал несметное количество других процедур, часть из которых была зашифрована.
Да, в MSSQL можно шифровать процедуры :)
Смеркалось... Второй из сотрудников нашего немногочисленного отдела случайно запустил эту процедуру в середине месяца. Бэкапов никто не делал...
Следующие пару дней прошли в консультациях на тему "как быть".
В базе была большая таблица, где были записаны все услуги всех абонентов с датами начала и конца биллинг периода.
Один из разработчиков биллинга предложил обнулить конец биллинг периода.
Вечером я сделал UPDATE tbl SET date_end = NULL и ушел домой. Бэкапов по-прежнему никто не делал...
Утром около кабинета стояла делегация почти из всех отделов. Практически с вилами.
Но я был готов, т.к. за несколько минут до этого мне позвонил начальник коммутатора и спросил, не знаю ли я что случилось.
В полночь на коммутатор свалилось 100500 тасков по отключению ВСЕХ абонентов.
Это был старый аналоговый оператор с такими огромными лопатами, а онлайн биллинг тогда был, кажется, только у МТС.
Онлайн - это когда тебя могут прервать в середине разговора, если кончились деньги.
Тут же пересчет балансов происходил в полночь и практически не было абонентов с предоплатой.
https://vc.ru/life/124730-tred-razrabotchiki-vspominayut-nelepye-oshibki-v-svoey-rabote
Давно хотел рассказать свою историю, произошедшую почти 20 лет назад.
1/2
Работал я тогда в одном маленьком региональном операторе начальником отдела биллинга.
Ситуация там была интересная - биллинг на протяжении многих лет писала команда из 10 человек. Потом сотового оператора продали TELE2, а команда разработки отделилась и осталась в другой компании, занимающейся продажей интернета.
Поддерживать биллинг сотового оператора силами сторонней компании не виделось учредителям возможным, поэтому решили нанять для этого отдельного человека на переходный период, пока TELE2 не запустит свои мощности.
Как мне стало видеться спустя годы, директор отделившейся компании и по совместительству главный разработчик биллинга, решил провернуть схему как показывают в современных отечественных сериалах типа "мылодрама" или "последний министр".
Он нанял меня на должность начальника биллинга :)
Моя практика SQL на тот момент была ограничена созданием каталога для интернет магазина на Mysql.
Еще я слышал о том, что существуют join'ы ...
Передача биллинга происходила так: я пришел в кабинет к разработчикам (который располагался на том же этаже, что и сотовый оператор) и спросил как будет происходить процесс передачи.
Один из разрабов встал, подошел к стене, выдернул из одного из системников все провода и вручил мне его руки.
Биллинг представлял собой системник high tower с windows NT (или 2000, не помню точно) на борту и сервером MSSQL со всей бизнес-логикой, написанной на хранимках.
Я бегом добежал до своего кабинета и воткнул все все в сеть.
Не помню подробностей как я все это запускал. Видимо, мозг блокирует эти воспоминания :)
Long story short, я немного разобрался как там все устроено.
Бэк, в лучших традициях oracle-style разработки был полностью на MSSQL. Фронтом выступали приложухи, написанные на Visual Fox Pro.
На них работали все отделы - абонентский, бухгалтерия, саппорт и все остальные.
Одна из главных магий этой системы был процесс генерации "книги продаж" для бухгалтеров.
Он должен был запускаться ровно один раз в месяц, в 00:00 первого числа, откатить назад было невозможно, как оно работает - не знал никто.
Внутри процедура генерации занимала экранов 200 T-SQL, кода, который вызывал несметное количество других процедур, часть из которых была зашифрована.
Да, в MSSQL можно шифровать процедуры :)
Смеркалось... Второй из сотрудников нашего немногочисленного отдела случайно запустил эту процедуру в середине месяца. Бэкапов никто не делал...
Следующие пару дней прошли в консультациях на тему "как быть".
В базе была большая таблица, где были записаны все услуги всех абонентов с датами начала и конца биллинг периода.
Один из разработчиков биллинга предложил обнулить конец биллинг периода.
Вечером я сделал UPDATE tbl SET date_end = NULL и ушел домой. Бэкапов по-прежнему никто не делал...
Утром около кабинета стояла делегация почти из всех отделов. Практически с вилами.
Но я был готов, т.к. за несколько минут до этого мне позвонил начальник коммутатора и спросил, не знаю ли я что случилось.
В полночь на коммутатор свалилось 100500 тасков по отключению ВСЕХ абонентов.
Это был старый аналоговый оператор с такими огромными лопатами, а онлайн биллинг тогда был, кажется, только у МТС.
Онлайн - это когда тебя могут прервать в середине разговора, если кончились деньги.
Тут же пересчет балансов происходил в полночь и практически не было абонентов с предоплатой.
2/2
Отдельного упоминания заслуживает коммутатор. Когда его купили в Израиле 1992 году он был уже сильно б/у. Там его просто списали и продавали за очень небольшие деньги.
В него вставлялись такие платы расширения, на которых было по несколько десятков процессоров Z-80. Это процессоры, на которых работал мой первый компьютер spectrum zx-48. 48 - это количество килобайт оперативной памяти. Он подключался к телевизору и грузился с кассет.
Короче, я понял того разработчика не так. Он хотел сказать, что нужно откатить date_end к предыдущим значениям, а не обнулить.
От того, что я обнулил, система пересчитала все услуги с начала времен до наступившей полночи. У каждого абонента образовалось по несколько миллионов в минусе на балансе и биллинг отправил команды на отключение.
К тому моменту оператор работал уже 10 лет и им пользовались все - от бандитов до губернатора.
Кончилось тем, что мы нашли самый подходящий бэкап недельной давности и восстановились из него. Абонентский отдел еще долгое время меня недолюбливал, т.к. им пришлось вводить все руками за прошедшую неделю заново.
И да, в анализаторе (holistic.dev) будет notice, когда в запросе будет встречаться конструкция UPDATE SET field = NULL :)
Отдельного упоминания заслуживает коммутатор. Когда его купили в Израиле 1992 году он был уже сильно б/у. Там его просто списали и продавали за очень небольшие деньги.
В него вставлялись такие платы расширения, на которых было по несколько десятков процессоров Z-80. Это процессоры, на которых работал мой первый компьютер spectrum zx-48. 48 - это количество килобайт оперативной памяти. Он подключался к телевизору и грузился с кассет.
Короче, я понял того разработчика не так. Он хотел сказать, что нужно откатить date_end к предыдущим значениям, а не обнулить.
От того, что я обнулил, система пересчитала все услуги с начала времен до наступившей полночи. У каждого абонента образовалось по несколько миллионов в минусе на балансе и биллинг отправил команды на отключение.
К тому моменту оператор работал уже 10 лет и им пользовались все - от бандитов до губернатора.
Кончилось тем, что мы нашли самый подходящий бэкап недельной давности и восстановились из него. Абонентский отдел еще долгое время меня недолюбливал, т.к. им пришлось вводить все руками за прошедшую неделю заново.
И да, в анализаторе (holistic.dev) будет notice, когда в запросе будет встречаться конструкция UPDATE SET field = NULL :)
Reactions collector for https://news.1rj.ru/str/nosingularity/437
Еще одна короткая история про бэкапы.
Был у нас (уже не в сотовом операторе) сисадмин. Каноничный такой. Свитер, борода, регэкспы. Сидел под какой-то самопальной сборкой какой-то только красноглазиком известной BSD или чего у них там обычно бывает.
Так вот, бэкапы он делал. Но делал на тот же самый сервер, который и надо было бэкапить.
Комичность ситуации стала ясна когда хотсер всем дц ушел в даун...
Был у нас (уже не в сотовом операторе) сисадмин. Каноничный такой. Свитер, борода, регэкспы. Сидел под какой-то самопальной сборкой какой-то только красноглазиком известной BSD или чего у них там обычно бывает.
Так вот, бэкапы он делал. Но делал на тот же самый сервер, который и надо было бэкапить.
Комичность ситуации стала ясна когда хотсер всем дц ушел в даун...
Я, блин, тут не могу собраться и концепцию серии постов про правила придумать, а у людей вот такой инфоповод:
Today, we're proud to announce improved charts and a new date picker on pganalyze! We're now treating date range selection as a first-class concept to help you better monitor your Postgres databases.
Дейт-пикер у них, сцк, новый :)
Today, we're proud to announce improved charts and a new date picker on pganalyze! We're now treating date range selection as a first-class concept to help you better monitor your Postgres databases.
Дейт-пикер у них, сцк, новый :)
There will be no singularity
Новая серия Рик и Морти это прям пост-пост мета-мета :) Поезд, который ездит по кругу, безумный машинист, бессмысленная концовка - там прекрасно все :) Комбо имени Баадера - Майнхоф настигло меня из-за того, что буквально вчера я посмотрел фильм с бессмысленной…
Telegram
Kedr to Earth
Отличный разбор нового эпизода Rick and Morty, который весь построен на концепциях киноведения и сценарной драматургии. Кратко: сценаристы деконструировали свой собственный сериал (инструкция по сборке нормальной серии прилагается, если у вас есть стоп-кадр).…
Когда вам начинает казаться, что вы немного перебарщиваете со своим pet-project, посомтрите на это...