• Как обновляют структуру БД и данные на продакшене?

    Melkij
    @Melkij
    PostgreSQL DBA
    Поскольку вопрос о трансформации имеющихся данных - то индивидуально для каждой задачи.

    Начать необходимо вот отсюда: https://habrahabr.ru/post/146901/
    И, собственно, придти к выводу, что лучше оставить как есть в одном поле. Если в каких-то местах нужны другие формы обращений - прописать их явно, а не конструируя по имеющимся заблуждениям о фио.

    А так:
    0) делается дополнительный бекап
    1) выкатывается alter table добавляющий новый поля
    2) выкатывается приложение, умеющее писать синхронно старую и новую структуру, но читающее только старую
    3) отдельным процессом в цикле небольшими частями преобразуются данные - это если подлежит автоматической обработке
    4) выкатывается приложение использующее только новую структуру
    5) архивируется и удаляется исходная структура

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

    Если тривиальной автоматике обработка не подлежит, то часто вместо 3 пункта делают выгрузку primary key, source_data, как-нибудь изменяют и готовят csv primary key, source_data, new_data, копируют в temporary table, затем делают слияние мультитабличным update этих двух таблиц с recheck'ом по source_data. Затем выгружают данные для которых не было обновления, разбираются, ещё раз обновляют и т.д. до заполнения всего.
    Ответ написан
    2 комментария
  • Почему много людей в IT недовольны своей работы?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Почему никто не уточняет что часто заработанные деньги нужно пускать на починку машину

    Ну да, у IT-шников ведь проблем со здоровьем не бывает и они заработанные деньги на лечение не тратят.

    меня поражают люди которые имея большой опыт в IT отговаривают всех сюда идти, при этом советуют другие профессии

    Сразу оговорюсь, что это моё субъективное видение и не претендует на абсолютно правильный ответ. Работа в IT (разработке, так как в другой сфере, касающейся IT, я не работал) предполагает, что ты этим "горишь". На стройку ты пришёл к 9, ушёл в 18 (образно) и пошёл пивка попить в бар с товарищем. И не думаешь о работе до 9 утра следующего дня.
    В разработке не так (лично у меня). Вот я официально удалённо работаю, с 10 до 19. 5/2, отпуск, праздники, выходные, все дела. НО! Я не могу просто встать в 19 часов и переключиться на дела семейные. Ну вот не получается. Особенно если не удалось доделать какую-то задачу и завтра надо продолжать.
    Бывает сидишь, разговариваешь с женой/другом, а в мыслях решаешь как бы половчее написать компонент, чтобы меньше копипасты (утрированный пример). И так почти постоянно.
    Если к этому нет тяги, то я считаю, что и начинать не надо. Идти в IT только польстившись на зарплату не стоит. Помимо денег работа и удовольствие приносить должна.
    Ответ написан
  • Почему много людей в IT недовольны своей работы?

    У каждого своя причина. Кто-то выгорел, кто-то просто устал. Со временем понимаешь что зп это не главное, да и зарплата в IT не такая уж и большая. И что ты каждый день сидишь по 14, 16 а иногда по 18 часов в день перед монитором. Никакой физической активности. Решаешь какие-то странные хочухи клиентов. Результат твоей деятельности мало кто увидит, большая часть твоего кода уйдет на помойку. Что каждый день выходят новые языки, фреймворки. Что количество данных, которые нужно пропускать через мозг, растет с каждым днем. А мозги только стареют. Помнишь Ваас рассказывал про безумие? Так вот, это оно. Каждый день ты залипаешь перед монитором, пытаясь решать кем то придуманную проблему. У тебя уже искривление позвоночника, зрение -5, туннельный синдром где-то не за горами. А ничего, кроме как пялиться в монитор, ты не умеешь.
    Ответ написан
    31 комментарий
  • Что нужно знать, чтобы стать хакером?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ей, хе хей!

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

    Хакер - это не тот, кто взламывает, ломает. Ближе всего, конечно, определение, как хулиган. Но тоже не совсем верное. Это скорее безбашенный человек, который не знает слова "невозможно" и пытается докопаться до порой недокапываемого. Но к тому же, он весьма просвещён в области Computer Science (понимает, когда есть смысл, а когда нет смысла вскрывать RSA и подобное). К тому же он далеко не профан в схемотехнике: паяльник держит ровно, мозг может выдать схемку, а руки всё ровно сотворить.

    В общем хакер - это тот парень, кто без ума от компьютерной техники. Конечно, в современном мире это слово искажено, не без успеха небезызвестного Кевина Митника (можете почитать "Искусство обмана" с комментариями Митника).

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

    Многие мои знакомые узнавали об устройстве компьютера едва ли не сами, методом проб и ошибок. Запомните это: на границе исследованного этот метод, пожалуй, единственный. Больше ничего нет просто потому что никто ничего не продумал.

    Но. Хакеры ничего не защищают. Они исследуют. Настоящий хакер делает лишь то, что ему нравится, иначе будет мучать депрессия. Хакер не обязательно должен ломать сети. Он вообще не обязательно должен ломать. Но у хакера очень узкая специализация: базовые навыки в IT в общем и невероятные в своей специализации. Это потому, что невозможно достич успеха не концетрируясь на чём-то одном.

    Кевин Митник - хакер информационной безопасности
    Джон Кармак - хакер трёхмерной графики
    Джулиан Ассанж - хакер информационной безопасности
    Линус Торвальдс - хакер just for fun'а

    Есть ещё много реально крутых хакеров. Если Ваш путь - информационная безопасность, то вот небольшой roadway: в первую очередь следует изучить теорию чисел, разобраться в криптографии, потом разобраться в сетевых технологиях (здесь очень много всего: от iptables до сетевых интерфейсов как в софте, так и в железе), наконец потом немного драйверов, userland'а и kerneland'а: как работает ОС, где слабые места. В перерывах кормим себя web'ом: apache, ngix и прочая сетевая утварь; также изучаем багрепорты и те дыры, которые уже были найдены когда-то, пытаемся найти и то, как они были найдены, в каких обстоятельствах.

    Проникаемся всей этой атмосферой. Порой вытворяем безумное. Нет, не пытаясь получить премию Дарвина, скорее пытаемся решить задачу тысячелетия и/или взломать пентагон.
    Ответ написан
    3 комментария
  • С помощью каких яп в 2020 делают браузерные игры?

    @cython
    ЯП: JavaScript, Typescript
    Фреймворки: Phaser, Pixi.js, ...

    Раньше Flash использовали, но сейчас он мёртв
    Ответ написан
    Комментировать
  • Как защитить Rest API от использования третьими лицами?

    deksden
    @deksden
    Enterpreneur
    Давайте рассмотрим вопрос чуть поструктурнее.

    Несанкционированное использование неофициальным клиентом - значит пытаемся защитить клиента.

    Https с ключом к API защитит только от тривиального перехвата трафика сниффером (mitm).

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

    Если ломать не надоело - то следует задуматься над причинами: почему кому то так хочется иметь неофициальный клиент к вашему api. Тут будет проще договорится - или продолжить играть в мечи и щиты.
    Ответ написан
    1 комментарий
  • Как хранить геоданные типа координаты - значение?

    yttrium
    @yttrium
    если нужны пространственные запросы, то можно хранить в PostGIS, mongo, mysql, sqlite и т.д.
    если не нужны пространственные запросы, то можно хранить где удобно csv, geojson, BD
    Ответ написан
    2 комментария
  • Какой сервис API-карт лучше выбрать?

    @Dmtm
    Android
    ни один провайдер тайлов не захочет бесплатно раздавать под высокой нагрузкой
    надо платить или разворачивать сервер у себя, тем более что весь мир не нужен и как я понимаю речь о городе/области
    есть варианты с генерацией тайлов у себя по osm db, тут придется предварительно вырезать ненужную информацию про весь мир/страну и оставлять только актуальную область
    Ответ написан
    Комментировать
  • Какой сервис API-карт лучше выбрать?

    @EmelyanovKonstantin
    GIS архитектура, аналитика, разработка
    Рассматриваю в данный момент Open Street Maps как предподчтительный вариант, но очень не уверен в своём выборе (пишут, что сложно в нём разобраться).

    Если использовать Open Street Map как подложку с openstreetmap.org, то всё очень просто. Подключил и работает. При малых нагрузках.
    Если использовать OSM как БД, чем она и является, то да - придётся разбираться и понимать какие задачи вы хотите решить с помощью неё.
    Если говорить о проекте в целом, стоит сперва разобраться с данными. Понять, что вы хотите получить и откуда это брать.
    Тот функционал, который вы описали можно сделать на различных гис-технологиях как с использованием сторонних сервисов так и полностью автономные решения.
    Ответ написан
    Комментировать
  • Какой сервис API-карт лучше выбрать?

    @pfg21
    ex-турист
    leafletjs
    адреска рядом - обратный геокодинг через номинатим
    инструменты бесплатно, серверы и нагрузка на твое усмотрение.
    дык запрос "карта" на хабр или к примеру leaflet
    Ответ написан
    Комментировать
  • Возможно ли совмещать очную форму обучения в ВУЗе и фриланс?

    @VegasChickiChicki
    С Армянское Радио не соглашусь. Возможно именно фриланс и получится совмещать, но тогда рассчитывайте лишь на малый заработок, ибо больше 3-5 часов уделять работе не получится. Я устроился на полны день в студию на удаленную работу и решил взять академический отпуск(немного расстроился в вышке, возможно не ту профессию выбрал) и у меня все нормально, но вот учиться + работать удаленно - не вариант, просто не хватило бы времени.

    P.S. Даже не думайте, что вы тот самый супер герой, который сможет посещать 3-4 пары в день да еще и пахать потом по 6-8 часов, что бы иметь хороший заработок, это не так, поверьте мне - идея плохая.
    Ответ написан
  • Какой язык программирования для Back-end производительнее?

    solotony
    @solotony
    покоряю пик Балмера
    проблема PHP как и любого другого интерпретируемого языка - время затрачиваемое на компиляцию и инициализацию, которые выполняются на каждом запросе.

    а Фреймворки в силу их монструозности тормозят дай боже.

    НО для большинства задач этого вполне хватает.

    если вы планируете "написать соцсеть" то пишите ее на том что знаете и с чем уверенно работаете. а когда вы реально столкнетесь с тормозами - тогда и думайте.

    никогда не стоит забывать заветы дедушки кнута: premature optimization is the root of all evil

    хотя если вы действительно планируете работать в сфере "хайлоад" - возможно следует изначально выбрать компилируемый язык - go, java.

    p.s. я сам перешел на python/django
    Ответ написан
    6 комментариев