• Список технологий необходимых для backend php developer?

    @Vitsliputsli
    Технологий слишком много, и у разных компаний может быть совсем разный стек. Кто пишет сайты - обязательно фреймворки, а где-то их не будет. Где-то будут требовать знание Vertica или Clickhouse, а много где вообще ни разу не услышите этих слов. Кто-то захочет еще и знание Go, а где-то очень желателен будет React и пофиг что это не backend.
    Но есть и общие моменты, очевидно знание git, PSR, composer, xdebug, для мидла должны быть не "навыки ООП", а отличное знание и понимание (в том числе SOLID, GRASP), оценка сложности алгоритмов, sql с пониманием работы индексов (разумеется нормализация, транзакционность, уровни изолированности, ACID), знание того же самого PHP (начиная с того, где и когда применяем Exception заканчивая SPL, Reflection, даже если никогда к ним не обращались, нужно знать, что они есть, когда возникнет необходимость), способы защиты от уязвимостей, сложности параллелизма (та же самя "гонка"), типы данных и что они из себя представляют (начиная с банального почему деньги не храним в float и т.п.). К примеру, вы можете не использовать ORM, но должны знать какие они бывают и доказать почему собственно вы их не использовали в конкретной задаче. Тоже самое trait, clojure и т.д. И много еще чего. Вплоть до провакационых вопросов "есть ли в php перегрузка?".
    Это часть базисных вещей, на которые накладывается специфика работы со своими технологиями.
    Ответ написан
    Комментировать
  • Как убрать readonly в Postgresql?

    Melkij
    @Melkij
    PostgreSQL DBA
    Postgresql вам редактировать и не препятствует. Раз вы смогли сделать create table - значит база не в read only режиме. Напишите соответствующий update и выполните.

    А вот вашему GUI клиенту скорей всего не нравится отсутствие primary key.
    Ответ написан
    Комментировать
  • Какой объем знаний и навыков нужно для того чтобы стать middle Rust разработчиком?

    vabka
    @vabka Куратор тега Rust
    Сейчас редко нанимают чистых растаманов, тк язык молодой.
    Обычно нанимают тех, кто переходит с других, более традиционных языков.
    Так что тебе сначала надо стать мидлом/сеньором в C++/Java/C#/C а потом дотянуть знания раста, чтобы уметь на нём решать задачи, аналогичные тем, которые ты решаешь с основным языком.

    Ну и соответствующий коммерческий опыт ~5 лет.
    Учитывай ещё и специфику Rust-проектов: это что-то новое, что требует безопасности и эффективности, где нельзя/нежелательно/невозможно использовать "Традиционные" языки.
    Так что и уровень ответственности и требуемых знаний будет выше, чем на аналогичную, например Java-позицию.
    Ответ написан
    1 комментарий
  • Как выжить IT-отделу в нынешних условиях?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Пока ничего принципиально не изменится, будет переориентирование на Китай (собстенно, уже давно происходит). Будет некоторый дефицит серверного оборудования, но в большинстве фирм сейчас сервеные мощности в избытке, а пока проявятся проблемы, возможно, что то и поменяется.
    Возможно, есть смысл закупить какие то расходники (диски для хранилищ, картриджи, барабаны для принтеров).
    По ноутбукам и ПК никаких санкций еще не вводилось, будет просто рост цен в соответствии с курсом доллара/юаня.
    Критичные для работы бизнеса сервисы, наверное, есть смысл перетащить из иностранных дата-центров в РФ.
    Еще стоит приготовиться к росту зарплат, так как ИТ-специалисты сейчас востребованы и в условиях быстрого роста цен могут внимательнее смотреть на рынок.
    Вероятно, имеет смысл посмотреть на аналоги ПО, производители которого либо присоединились к санкциям, либо приостановили работу с Россией - Microsoft, Oracle, SAP, Adobe, Autodesk и т.п. Правда, наверное, не стоит сразу бросаться менять это ПО, но аналоги лучше изучить.

    p.s. все вышесказанное - просто мнение, не претендующее на абсолютную истину.
    Ответ написан
    Комментировать
  • Удалённая работа в зарубежной компании — какие есть подводные камни?

    gdt
    @gdt
    Программист
    Работаю удалённо, получаю в валюте, всё ок. Если компания грамотная - то даже в текущей ситуации (пока что) все проблемы можно решить. Проблемы с получением валюты есть только у тех банков, которые попали под санкции, в других банках всё работает. Конечно, на работу людей из РФ сейчас стали принимать гораздо меньше из-за рисков (понятно каких я надеюсь), но в целом всё ещё предлагают - с начала марта 2-3 предложения получил, из которых одно достойное (не хуже, чем у меня сейчас).
    Как говорится, стучите - и вам откроют, дорогу осилит идущий и тд и тп. Не слушайте никого, во всем мире полно как идиотов, так и вполне адекватных людей, которые будут к вам относится нормально вне зависимости от национальность.

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

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

    P. S. По упрощенке ИП платит 6% налога + 1% на сумму свыше 300000р (есть ещё другие обязательные взносы, но они идут в вычет, если всё вовремя платить, так что всё равно выходит 6%). В РФ в ФОТ штатских сотрудников отчисления занимают больше 30%.
    Ответ написан
    2 комментария
  • Почему в Symfony не работают атрибуты?

    17_planet
    @17_planet
    Full Stack Developer, web-studio in Odessa
    Атрибуты это PHP . У вас должна быть версия 8.0 или выше.
    Ответ написан
    Комментировать
  • Golang jetbrains не читает БД в sql?

    @galaxy
    Если я правильно понял вопрос (а это непросто), то потому что язык SQL - нечувствителен к регистру, т.е. следующие запросы эквивалентны:
    select * from Groups;
    select * from groups;
    select * from GROUPS;
    SELECT * FROM groups;
    SeLeCt * FrOm GrOuPs;


    Если вы берете название таблицы/колонки (или иного объекта БД) в кавычки, он становится (по крайней мере, согласно SQL стандарту) case-sensitive, т.е. "group"/"Groups"/"gRoUps" - будут разными идентификаторами (например, все три такие таблицы могут существовать в БД одновременно).
    Если кавычек нет, идентификаторы по стандарту сравниваются после приведения к upper-case. В Postgres это немного не так: там идентификаторы без кавычек приводятся к lower-case.

    Т.е. другими словами, запрос create table Groups ... создаст в Postgres таблицу с именем groups. Запрос select * from GrOupS; будет также искать таблицу с именем groups.
    При использовании кавычек запрос create table "Groups" ... создаст таблицу с именем Groups. Запрос select * from "GrOupS"; будет также искать таблицу с именем GrOupS.
    spoiler
    Речь выше только про Postgresql. Другие СУБД могут вести (и ведут) себя по-другому. Так, в mysql поведение идентификаторов зависит от ОС (точнее, от того, case sensitive/insensitive ее файловая система) и от конфигурации БД.


    Обычно это не вызывает проблем, пока вы не начинаете использовать закавыченные и незакавыченные идентификаторы одновременно. Например, что скорее всего имеет место в вашем случае, таблица создается запросом
    create table Groups ...
    -- реальное имя таблицы - groups

    Когда же вы делаете запрос select * from "Groups", обращение идет к несуществующей таблице Groups.

    В общем, разберитесь, какое название у таблицы в БД (в psql команда \dt, или смотрите свойства таблицы в своей среде). Если оно не lower-case, используйте кавычки с точным названием (например, select * from "GROUPS"), в противном случае лучше обходиться вообще без кавычек.
    Ответ написан
    Комментировать
  • Выгорание. Как не сойти с ума?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Ни слова о себе, своих интересах, названии "большого города"...
    Скажу про Москву - в общественных пространствах постоянно проходят разные (в том числе полностью бесплатные) мероприятия, выставки и т.п.
    Друзей, конечно, за год завести сложно, но знакомых, с которыми легко выбраться на мероприятия - легко. Поверьте, у Вас половина коллег, скорее всего, такие же как Вы и с удовольствием составят компанию как в баре, так и в парке.
    Театр, кино, шоу, спортивные мероприятия.
    В конце концов сетевые и простые игры.
    Берите себя за шкирку и выходите из дома. Вначале будет сложно, потом быстро втянетесь.
    Ответ написан
    2 комментария
  • Как получить данные из postgresql в python?

    shabelski89
    @shabelski89
    engineer
    На скорую руку
    import psycopg2
    from datetime import datetime, timedelta
    from pprint import pprint
    
    
    def get_dt(dt: str):
        return datetime.strptime(dt, '%Y%m%d')
    
    
    def get_dt_delta(dt: datetime, s=1, e=4):
        return dt - timedelta(days=s), dt + timedelta(days=e)
    
    
    def execute(config, sql, param=None, select_mode=True):
        connection = None
        try:
            connection = psycopg2.connect(**config)
            cursor = connection.cursor()
            if param:
                cursor.execute(sql, param)
            else:
                cursor.execute(sql)
            if select_mode:
                return cursor.fetchall()
        except Exception as E:
            print(E)
        finally:
            connection.close()
    
    
    def get_devices():
        devices_q = "SELECT * from devices LEFT JOIN devatt on devices.dev = devatt.dev " \
                    "WHERE devatt.att = 'otherinfo' AND devatt.value like '0%'"
        return [x[0] for x in execute(cfg, devices_q)]
    
    
    def generate_rep(devs, period):
        r = {}
        period_dt = get_dt(period)
        period_s, period_e = get_dt_delta(period_dt)
        for dev in devs:
            q = 'SELECT * from rawdata where deveui = %s and time between %s AND %s ORDER BY id DESC'
            rawdata = execute(config=cfg, sql=q, param=(dev, period_s, period_e))
            r[dev] = rawdata
        return r
    
    
    if __name__ == "__main__":
        cfg = dict(user="pguser", password="localpass", host="127.0.0.1", port="5432", database="wan_server")
        devices = get_devices()
        date = '20220308'
        result = generate_rep(devs=devices, period=date)
        pprint(result)


    1. смотрите как правильно работать с датой и временем
    2. не используйте интерполяцию в sql запросе
    Ответ написан
    1 комментарий
  • Как обходить блокировки при использовании ms sql?

    @Drno
    Арендуете VPS в европе или америк
    Ставите там ВПН сервер
    Подключаете к нему ВПн клиентом сервер с SQL
    Разрешаете принимать запросы SQL от ВПН сервака
    Естесвенно не забываем перенаправить доменное имя на новый IP или создать еще одно доменное имя и прописать их 2шт в программе юзера
    Ответ написан
    2 комментария
  • Как создать базу данных в MS SQL Server 2014?

    t_q_l
    @t_q_l
    Интересная личность
    Комментировать
  • Как быстро и надежно закрывать задачи по сайту не нанимая программиста?

    nowm
    @nowm
    Могу ответить с точки зрения фрилансера:

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

    Вот несколько советов, которые помогут улучшить «возвращаемость» фрилансеров:
    • Чаще всего фрилансер готов делать работу сразу (особенно когда работает с вами первый раз), он показывает рвение и очень быстро всё делает. С вашей стороны ожидается, что вы можете оплатить работу мгновенно после того, как всё сделано и проверено как фрилансером так и вами. Если вы скажете фрилансеру, что вам нужно некоторое время, чтобы дойти до банкомата и пополнить счёт, потому что прямо сейчас не можете заплатить, это очень сильно испортит впечатление, и с большой вероятностью человек не покажет виду, спокойно без психов подождёт, когда вы ему заплатите, но в следующий раз работать с вами больше не будет. Фрилансер готов работать сразу, значит и вы должны быть готовы платить сразу.
    • Если у вас низкая техническая подготовка, и фрилансеру приходится кроме самого кода очень много общаться с вами на тему, что именно нужно делать, желание работать дальше тоже пропадает. Чем меньше требуется обсуждений и созвонов в мессенджере, тем больше веротность, что фрилансер и дальше будет с вами работать. Фрилансеры обычно не считают переписку частью оплачиваемой работы и, соответственно, чем больше времени будет занимать переписка, тем меньше будет желание продолжать работу. Фрилансер обычно хочет сразу делать работу и не отвлекаться на всякую бесплатную болтологию.
    • Если фрилансеру нужно заниматься в дополнение администрированием вашего сервера, а это заранее не обговаривалось, это тоже может испортить впечатление. Часто заказчики пишут, что им нужно поправить менюшку на сайте, а это в итоге превращается в правку менюшки, а потом залитие кода на сайт, настройка и перезапуск сервера и ещё какие-то подобные работы, которых в задании не было вообще. И, скорее всего, вы считаете само собой разумеющимся, что фрилансер должен уметь это делать, и думаете, что это нормальная практика, если он в дополнение к кодингу будет делать ещё и это. Дополнительно, если эти моменты ещё и не оплачиваются, шансы, что люди захотят с вами работать и дальше, снижаются ещё сильнее.
    • Некоторые заказчики любят показывать свой авторитет. Запомните, что для фрилансера вы не начальник, а равноправный партнёр, и он ждёт от вас соответствующего уровня общения. Если вы строите из себя начальника, люди будут придумывать любые отмазки, но повторно работать не станут.


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

    @tim8ska
    Руководитель IT проектов в крупнейшей автокомпании
    Добрый день,

    Не совсем понятна ваша задача и нет исходного файла. Попробовал воспроизвести ваш файл.
    По задаче, так как не понятно что вы хотите, то изложу свои решения вопросов, а вы уже решите что вам более подходит:
    1. Формулу можно написать вне сводной таблицы, как вы привели пример на первом скрине, тогда в ней ошибки не будет. Эти данные потом можно будет выводить на соседнюю вкладку так, как вам это нужно.
    2. Формулу можно написать в вашей исходной таблице, которая будет рассчитывать процент от текущей категории, потом просто выведите это значение в Столбец. Моя формула =C4/ СУММ(FILTER($C$2:$C$18;$A$2:$A$18=A4))
      61f43425b92b9832830934.jpeg
      Результат:
      61f434dff1be4753912391.jpeg

    3. Третий и самый простой вариант: в сводной таблице вы можете добавить ещё один, тот же дублирующий столбец (у меня основной столбец "Значение", поэтому второй раз добавляю "Значение"), но "Показывать как" его уже в % от необходимого вам параметра столбец или строка. Вот пример что у меня получилось:
      61f4355f5ca9b389129719.jpeg
    Ответ написан
    Комментировать
  • Нормально ли для PM вести одновременно 7 проектов в мобильной разработке?

    @tim8ska
    Руководитель IT проектов в крупнейшей автокомпании
    Считаю, что "проектом" можно обозвать много чего. Отсюда и следует их объем и сложность, а следовательно и возможность ими управлять.
    Если проекты не сложные, по развитию уже действующих, то 7 сложно, но посильно.
    Если 7 полноценных сложных проектов, то скорее всего будет очень сложно и вплоть до провала всех.

    В данный момент у меня 3 сложных проекта, 4 средней сложности и много мелких задач и я чувствую, что не справляюсь в некоторых из них. А есть ещё крупные задачи, за которые я пока "не успеваю" взяться. Я участвую со стороны заказчика.
    Ответ написан
    Комментировать
  • Стоит ли использовать микрокомпьютер для удаленной работы?

    @Arlekcangp
    Разработчик, Лид, Архитектор ПО
    Ох, тут уже на предлагали... Что ж, я не путешествую, но вопрос "куда можно запихнуть мини ПК" меня какое то время мучил, и я пришёл к выводу, что из мини ПК может получится неплохая ретро-консоль. И естественно она должна быть портативной. И раз вам так хочется сменить ноут на миник, то поделюсь к каким выводам я пришёл.
    1. Покупать что то излишне миниатюризированное формата raspberry Pi не стоит. Это вариант для умного дома и управления прочими прибамбасами, а не для работы или тем более игр. Естественно туда же идут и все варианты, напоминающие флэшку. При попытке работать будете плеваться от тормозов.
    2. Излишне тесный корпус приводит к нагреву и требует излишнего охлаждения. А это шум, доп потребление, механические детали и повышение стоимости . В тесных корпусах возможно только CPU с очень низким теплопакетом, а значит смотри пункт первый, тормоза неизбежны.
    3. Только не Андроид (и arm)! Не знаю кому как, а мне софта на адройде мало И практически отсутствует open source варианты. Так что и всякие планшеты и тв-боксы и подобный хлам - в лес. К тому же можно ещё испытать и прекрасный геморрой при попытке с планшета вывести изображение на монитор. Не все планшеты такое поддерживают.
    4. И не intel NUC или тем более его китайские собратья. В качестве самого NUC сомневаться не приходится. Однако, тем не менее, это проприетарная платформа и от ноутбука отличается только отсутствием монитора... Ничего толком не известно сколько будет стоить апгрейд и будет ли он вообще возможен. А спрашивается зачем тогда оно ? По этой же причине и не мак-мини и прочие надкусанности. Сюда же ещё и дефицит софта в сравнении с x86 как и у андройда.
    Итого: приходим к выводу, что это будет самосбор:
    Вариант 1: Корпус формата mini ITX - не слишком маленьких, что бы туда влезало типовое железо и небыло проблем с охладом и не слишком большой потому что портативность. Объём 2-5 литров. Плюсы:
    - можно собрать x86 на десктопном процессоре, с приличным объёмом оперативки и даже встроенным SSD приличного объёма (хотя уж с этим то сейчас проблем нет и полно внешних корпусов для SSD, но встроенный вы не будете искать среди кучи хлама после очередного переезда.
    - всё ещё поддается апгрейду, но занимает места примерно столько же сколько и ноут. Допускает относительно хорошее охлаждение Широкий выбор самих корпусов, как у именитых брендов так и китайцев. Полностью сменная начинка, которая никуда не исчезнет с рынка. И даже сменный процессор и память. И в тоже время - внешний БП как и в ноуте (правда без батареи, но как говорится, кто мешает и её воткнуть...), может оказаться полезной вещью в дороге, если нужно запитать ещё какие то низковольтные устройства от 12 вольт
    - Возможность втыкивать достаточно мощный процессор. Я присматривался к райзену с интегрированным GPU. На таком не только работать, но и во что то не сильно требовательное можно поиграть.
    - Можно настроить dual boot - windows + linux для тех кому нужно. Полноценная сеть (уже не во всех ноутбуках она есть. А во всяких малиноподобных вариантах - как правило, сеть медленная)
    - Широкий набор внешних портов. Любой ноут здесь проигрывает. (другой вопрос нужно ли это для вашей работы)
    - Прочный металлический корпус (полно как стальных, так и алюминивых вариантов. Есть и пластиковые, но я бы брал металл как из-за прочности так и из-за охлаждения)
    Минусы:
    - Цена Как говорится, из разряда "отложу как я это до лучших времён" С такими ценами, как сегодня, вообще не выгодно менять железо.
    - Надо собирать самому (ну для меня это не минус, а для вас - не знаю)
    - Размер и вес скорее всего будет немного больше того же Intel NUC но, считаю, что это не существенно.
    - мощность системы не должно превышать 150-200 ватт иначе будет перегреваться да и БП на такую мощность найти сложновато. Вполне можно уложиться если брать CPU с TDP 45-65 Ватт

    Вариант 2 Мощный самосбор в корпусе miniITX объёмом до 12 литров. Плюсы:
    - Всё тоже самое что и варианте 1 но немного дешевле т к корпус больше
    - Уже есть возможность запихнуть какой-никакой дискретный GPU Но тут надо заранее выбирать и велика вероятность того, что этот элемент потом обновлять будет тяжело, т к трёх-слотовый монстр длиной 30+ сантиметров туда не встанет, а среднебюджетных вариантов как то не видно на горизонте Только слабенькие GPU делают в усеченных размерах и их ещё найти нужно.
    - можно поставить очень хорошее охлаждение при желании. Но тоже нужно об этом думать на этапе выбора
    корпуса
    - Уже относительно стандартные внутренние БП на 300-500 ватт
    Минусы:
    - Вес. Если для вас не критично вес в несколько килограмм (сейчас только видяхи по килограмму весят =)
    - Размер 12 литров - это как два с половиной пятилитровых бутыля. Для сравнения, обычно корпуса ноутбуков не превышают 2-х литров. Очевидно, при авиаперелетах это скорее всего в багаж отправится...
    Ответ написан
    1 комментарий
  • Как создать нового юзера и новую базу в postgres, на убунту?

    откуда брать логин и пароль от этой базы?

    Ты их указываешь, когда в первый раз базу создаёшь.
    Если не указал, то лезь в /etc/postgresql/[версия]/main/pg_hba.conf и разрешай беспарольный доступ.
    # IPv4 local connections:
    host    all     all     127.0.0.1/32      trust
    # IPv6 local connections:
    host    all     all     ::1/128           trust

    Главное потом обратно верни.

    После изменения конфига надо постгрес перезапустить.

    И тогда ты сможешь подключиться примерно так:
    psql -U postgres -h localhost

    Для создания нового пользователя - подключаешься к базе через psql или через pgadmin, или ещё как, и делаешь запрос CREATE USER
    https://www.postgresql.org/docs/14/sql-createuser.html
    Для создания базы, соответственно CREATE DATABASE
    https://www.postgresql.org/docs/14/sql-createdatab...
    прописав sudo -i -u postgres

    Это совершенно не обязательно (я даже не уверен, что так можно)
    Ответ написан
    2 комментария
  • Как создать нового юзера и новую базу в postgres, на убунту?

    Melkij
    @Melkij
    PostgreSQL DBA
    Парольная аутентификация лишь один из множества доступных вариантов. Хотя наиболее простой и распространённый. Какой способ аутентификации будет требовать СУБД - зависит от списка правил в pg_hba.conf. Очень редко нужно что-то кроме служебного правила peer для postgres (именно из-за него psql после sudo -iu postgres не спрашивает никакие пароли, но только у postgres'а) и md5 для всего остального.

    Базово создание новой базы с отдельным пользователем-владельцем выглядит так (от суперпользователя базы):
    CREATE USER "$NEWOWNER" PASSWORD '$NEWPASS';
    CREATE DATABASE ${NEWDB} OWNER "$NEWOWNER";
    REVOKE ALL ON DATABASE $NEWDB FROM public;


    В соседнем ответе вам неверно подсказывают, что "можно сразу указать какому юзеру разрешен доступ". create database разрешит доступ всем (но именно подключение к базе, а не ко всему внутри базы - что частая проблема непонимания прав). И имеет смысл наоборот отобрать доступ от всех прочих, т.е. от public. Owner, конечно, доступ сохранит.

    Чуть ближе к production имеет смысл использовать такой шаблон:
    CREATE USER "$NEWOWNER" PASSWORD '$NEWPASS';
    CREATE DATABASE ${NEWDB} OWNER "$NEWOWNER";
    CREATE ROLE ${NEWDB}_role;
    CREATE ROLE ${NEWDB}_ro;
    CREATE ROLE ${NEWDB}_rw;
    GRANT ${NEWDB}_role TO ${NEWDB}_ro, ${NEWDB}_rw;
    REVOKE ALL ON DATABASE $NEWDB FROM public;
    GRANT CONNECT ON DATABASE $NEWDB TO ${NEWDB}_role;
    GRANT ${NEWDB}_rw TO "$NEWOWNER";
    \c $NEWDB
    ALTER SCHEMA public OWNER TO "$NEWOWNER";
    REVOKE ALL ON SCHEMA public FROM public;
    GRANT USAGE ON SCHEMA public TO ${NEWDB}_ro, ${NEWDB}_rw;
    ALTER DEFAULT PRIVILEGES FOR ROLE postgres GRANT SELECT ON SEQUENCES TO ${NEWDB}_ro;
    ALTER DEFAULT PRIVILEGES FOR ROLE postgres GRANT SELECT,USAGE ON SEQUENCES TO ${NEWDB}_rw;
    ALTER DEFAULT PRIVILEGES FOR ROLE postgres GRANT SELECT ON TABLES TO ${NEWDB}_ro;
    ALTER DEFAULT PRIVILEGES FOR ROLE postgres GRANT SELECT,INSERT,DELETE,UPDATE ON TABLES TO ${NEWDB}_rw;
    ALTER DEFAULT PRIVILEGES FOR ROLE "$NEWOWNER" GRANT SELECT ON SEQUENCES TO ${NEWDB}_ro;
    ALTER DEFAULT PRIVILEGES FOR ROLE "$NEWOWNER" GRANT SELECT,USAGE ON SEQUENCES TO ${NEWDB}_rw;
    ALTER DEFAULT PRIVILEGES FOR ROLE "$NEWOWNER" GRANT SELECT ON TABLES TO ${NEWDB}_ro;
    ALTER DEFAULT PRIVILEGES FOR ROLE "$NEWOWNER" GRANT SELECT,INSERT,DELETE,UPDATE ON TABLES TO ${NEWDB}_rw;

    В результате получим:
    - пользователя-владельца базы, который предназначен выполнять всякие миграции схемы данных
    - роль имя_базы_role которую можно давать другим пользователям для возможности подключения к этой базе, но без доступа к таблицам приложения (например, используем для мониторинга)
    - роль имя_базы_ro которая даст select-only права ко всем (в том числе будущим) таблицам, созданным от пользователя-владельца это базы
    - роль имя_базы_rw - соответственно для выполнения select,insert,update,delete
    Ответ написан
    Комментировать
  • Какие советы по созданию резюме вы можете дать начинающим и не очень начинающим специалистам?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    С малых лет увлекался компьютерами. В школьные годы ходил на курсы «Сергис».После 9 класса отучился в колледже Бонча. После колледжа поступил в университет (закончить не смог из за семейных обстоятельств, в ближайшее время собираюсь перепоступать).

    Никому не интересно. Тут нет ИТ опыта.

    С компьютерами как эникей-сисадмин начал работать в судах

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

    У моменту увольнения из был Консультантом(и ИО начальника отдела информатизации и статистики)
    Управлял отделом (пусть и маленьким)

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

    Занимался всем (ремонт компьютеров, мелкий ремонт мфу, обновление и настройка по на пк и серверах)

    Ну вот. Что это за ремонт?
    Я понимаю, когда под "чинил мфу" ты бы написал "менял печку, перепаивал конденсаторы на платах". А так, среднестатистический эникейщик под ремонтом принтеров и МФУ обычно вытаскивает забитую бумагу и сдает картриджи на перезарядку.

    Я попал на время становления ИАЦ по этому на нас испытывали многое по
    И у нас было больше свободы и доступа в отличии от других судов
    Я многому научился за годы работы там

    Какая полезная и понятная информация.

    Позже я устроился на завод «младшим сисадмином»
    Позже стал начальником отдела
    И в итоге являюсь Инженером ТЗИ

    Какая полезная и понятная информация.

    За время своей работы я поднимал доменные, файловые сервера

    Создавал свой домен с нуля, или что такое "доменный сервер"?
    Что такое файловый сервер - просот расшарил папку на диске (сейчас может даже блондинка сделать), или ставил Novell Netware?

    Обновлял и правил 1с на серверах

    Что сюда входит? Обновлял темплейты отчетов? Писал код? Или просто по инструкции обновлял? Во многих компаниях обновление делает либо сам бухгалтер, либо отдельно выделенный человек. ЧТо делал ты - неясно.

    Тянул сеть и худо-бедно настраиваю микротики
    Поднял сеть видеонаблюдения на трассире
    Разобрался и привёл в порядок систему турникетов и шлагбаумов perco
    Позже прошёл обучение в perco (хотя по факту я уже все знал к тому моменту из того чему они учили)

    Ну хоть что-то конкретное. Но опять таки, микротики можно настраивать по-разному. Система турникетов и шлагбаумов - сам проектировал или просто оптимизировал уже имеющееся? (Скорее всего там очень простые настройки)

    Работал с поставщиками и менеджерами

    Так все это делают в конторах где нужно покупать какую-то технику.

    И по факту организовал пусть не идеальную, но стабильную работу на отдельно взятом заводе
    Я если чего-то не знаю то гуглю/ищу знакомых/техподдержку которые могут ответить на мои вопросы
    Да у меня есть пробелы в знаниях
    Я этого не скрываю
    Я слаб в теоретической части и я это понимаю
    По факту со многими вопросами приходилось разбираться на ходу

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

    Я пытался откликнуться на вакансии младших системных администраторов, эникеев в крупных и средних компаниях, но мне приходит отказ или просто игнор

    Так а требования совпадают с резюме?

    Соответственно прошу помочь статьями/объяснением как правильно создать резюме и как подать себя

    Да просто нужно давать конкретику. Названия технологий. Объемы задач. Конкретные зоны ответственности.
    За весь вопрос кроме слова "домен" и "микротики" не было ни одного названия продукта, ни одного бренда.
    Если ты даже не можешь сформулировать в понятный текст даже свой имеющийся опыт кто будет рисковать брать тебя на работу и учить чему-то что требуется на конкретной позиции?

    Вот после прочтения, я понятия не имею, сможешь ли ты поднять домен с нуля. Сможешь ли ты вайфай настроить с бесшовным соединением в частном доме чтобы добивало на 100-200м и не пускало соседних кидди-хакеров в локалку. Сможешь ли корпоративную почту хотя бы настроить или какой-то мониторинг организовать. Умеешь ли в скриптинг хоть на чем-либо.

    Нет информации никакой.
    Ответ написан
    Комментировать
  • Что писать в резюме чтобы были шансы куда-то попасть без опыта?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Буквально неделю назад закрыл в отделе вакансию, искал человека в том числе без опыта (не по Вашему профилю, правда), смотрел в пераую очередь на сопроводительное письмо и описание технологий, с которыми человек сталкивался. Если это был отклик, а не предложение от агентства, смотрел особенно внимательно.
    Ищите, и найдете.

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

    И рассылайте, рассылайте, рассылайте резюме. На HH, linked.in, и других площадках. При прошлом поиске работы у меня было отправлено более 150 резюме и только с десяток дошли до собеседования, кстати. И, замечу. я уже много лет в разработке. Но бывает что везет и даже первое резюме оборачивается оффером.

    "Что писать" - я писал в прошлом Вашем вопросе (если не ошибаюсь), - "Фриланс" и туда описание своих проектов. То, что фрилансили на себя, мало кого волнует, можно сказать и не ложь. И не ленитесь составить нормальное сопроводительное письмо с кратким перечнем что умеете, а на особо интересные вакансии не ленитесь это письмо подправить под конкретные требования вакансии.

    Удачи в поиске!
    Ответ написан
    Комментировать
  • Найти работу java без опыта и образовния - невозможно?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    99% резюме не смотрят - а сколько отправили?
    К сожалению, сейчас такая ситуация с отделами кадров, что на некоторые вакансии хорошо если на одно из ста резюме ответят хотя бы. Много размещенных резюме по уже закрытым вакансиям, под своего человека, хватает и таких HR, что объявление размещают и поднимают в поиске, но отклики даже не смотрят. Продолжайте рассылать...
    Если показывали какие то проекты, значит, уже нельзя говорить про полное отсутствие опыта. В конце концов можете вписать пару месяцев фриланса, чтобы пробиться до технического собеседования ("Все врут в резюме (с)").
    Ответ написан
    Комментировать