• Почему до сих пор никто не создал p2p мессенджер?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Потому что у p2p только один единственный плюс в виде децентрализации и он же является минусом перечеркиващим все остальное. Сам p2p также фигово предназначен для передачи мелких и РАЗНЫХ данных но хорошо для передачи мелкими кусочками болищих неменяющихся данных.

    Т.е. грубо говоря одно дело идет раздача 1гб данных куче пиров которые также становится раздающими и в целом ускоряют раздачу потому что этот гиг хочет 1000 человек. Другое дело у тебя 10 байт текста обвязанных 300 байтами служебки и их надо передать одному единственному или паре пиров, остальным он не нужен, в таком случае сеть грубо говоря превращается в кучу шлюзов ретрансляторов из разряда ПирА(отправляет сообщение пиру Я) -> увидел пирБ(не мое передам дальше и затру у себя)->...-> поймал пирП(не мое передам дальше и затру у себя) ->...->->получил пирЯ(а это мне!). В савокупности для передачи породится космическое число мусора и изначальные байта сообщения по дороге выжрут мегабайты чужого трафика. Кроме того время доставки сообщения может быть очень большим пока сообщение путешевствует от пира к пиру даже потому что иногда придется искать маршрут что говорится в слепую не зная с какой стороны находится адресат.
    Почему на мобилках не интересен и не популярен тот же токс, ну вот ты пользуешься торрентом на телефоне? Аааа трафик жалко стало да? вот и тут схожая ситуация.

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

    Намного более интересные это жаббер\matrix которые могут быть гибридными, проще это представить как почту где ты привязался к сервису например яндекс и можешь отправить сообщение пользователю который привязан к гуглу, каждый сервис имеет свои плюшки а если что то не нравится то всегда можно найти другого провайдера почты. Но к сожалению яббер не нашел массового успеха погрязнув в стандартах изза чего потерял совместимость, а матрица досих пор в каком то непонятном состоянии.
    Ответ написан
    Комментировать
  • Зачем делают backend на разных языках?

    @InoMono
    Возьмем например Дропбокс.

    Изначально был написан на Python - это быстрее для прототипирования.
    Потом был переделан на Go - для предсказуемости и скорости. Но зачем переделывать полностью? Многие куски на Python существуют там до сих пор. И работают.
    И маааалюсенький кусочек был переделан на Rust - для ускорения самого узкого места.

    Вот вам и 3 языка работающих одновременно в Дропбоксе на бэке.

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

    Или такова была особенность задачи. Пример с комбинацей Rust/Go выше приведен. Где то может быть лучше один язык, где то другой.

    А если мы вспомним, что проект не только пишется, а еще и готовые компоненты применяются - то автоматически к любому почти проекту добавляются С/С++ те что в БД к примеру и пр. и пр. SQL - тоже язык бэкенда. И пр. и пр.

    Вы преувеличивайте значение языка. Это всего лишь инструмент программиста. Такой же как клавиатура. Опытный программист за долгие годы изучает не меньше десятка языков, а кто то и намного больше. Ничего такого в этом нет.
    Ответ написан
    Комментировать
  • Стоит ли покупать коленный стул?

    @V_Holmow
    Шляпа, нет упоров для локтей = будет болеть спина, нагрузка от туловища идет на колени, а не на тазовые кости как должна = не есть хорошо для коленей.
    да и просто... ну не удобно же, бороться надо не с рабочим местом, а с рабочими задачами)
    Ответ написан
    7 комментариев
  • Интерактивная карта на js?

    gromdron
    @gromdron
    Работаю с Bitrix24
    В приведенном Вами примере используется Raphaël. В принципе, при наличии знаний и опыта, не составит труда собрать ее на любой библиотеке.

    Но наиболее простым будет использование одного из существующих библиотек:
    Ответ написан
    Комментировать
  • Как сохраняются сеансы в Android приложение?

    Le_barto
    @Le_barto
    Junior android developer
    У меня на нескольких проектах было так:
    • вводим пару email, пароль
    • отправляем серверу
    • сервер возвращает токен, по которому все запросы валидируются
    • сохраняем токен в приложении и радуемся!


    Токен можно отправлять например в header каждого запроса, тут уже надо делать как сервер ожидает.
    При запуске можно проверять наличие токена. Сервер может возвращать ошибку авторизации при любом запросе, например, если токен не подходит или устарел
    Ответ написан
    2 комментария
  • Почему говорят, что postgress лучше для более-менее серьезного проекта чем что-либо иное?

    @abroabr
    Не так.

    Серьезные проекты, например, у того же Google прекрасно работают и с MySQL

    Дело в другом - у PostgreSQL больше функционала. Если он вам нужен и если вы умеете им пользоваться.

    У MySQL функционала меньше, он проще, и потому во многих случаях быстрее.

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

    Как пример, JSONB (рекомендую его в PostgreSQL, работает эффективно, позволяет реализовать schemeless). Не путать с JSON (это старая реализация в PostgreSQL, не рекомендуется).

    Смотрите выступления Олега Бартунова на Youtube - он разработчик PostgreSQL и проводит просветительскую работу по некоторым особенностям PostgreSQL.
    Ответ написан
    8 комментариев
  • Как можно менять значение тегов XML через код (Java)?

    @Izgoj
    TextView tvTemp = (TextView) findViewById(R.id.you_text_view);
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tvTemp.getLayoutParams();
    params.setMargins(0,25,0,0);
    tvTemp.setLayoutParams(params);

    LinearLayout.LayoutParams - зависит от текущей разметки
    Ответ написан
    Комментировать
  • Бан за безактивность на upwork?

    syschel
    @syschel
    freelance/python/django/backend
    Да, вы верно слышали. Это защита от спама и гулпых фрилансеров, которые шлют однотипные шаблонные предложения на вроде "найми меня".

    Если вообще без активности аккаунт, ничего страшного не будет. Единственное, поставьте статус "не нуждаюсь в работе" в настройках. Это чтобы вам не слали инвайты. Ибо есть статус профиля "время отклика на инвайты", где желательно его держать в "отвечает в течении суток". И если всётаки прилетит инвайт, но он вам не интересен, постарайтесь как можно быстрее (в течении суток) отказаться от него, выбрав одну из причин в списке. Отказ от ивайтов никак не влияет на рейтинг, только время отклика.

    З.Ы. Во время когда ищу новый заказ, мне 60 бесплатных "коннектов" (по 2 на заявку) очень много, так как очень скурпулёзно выбираю к кому отправить предложение о работе. То задача размытая или не интересная, то цены не те, то условия подозрительные, то клиент какой-то не благонадёжный, то уже наняли. Но некоторые, особенно новички(при регистрации дают 90 коннектов на первый месяц), все эти поинты умудряются прогулять за пару часов в первый день. Рассылая всем подряд предложения. Вот и выходит, что с такими система борется. Повышая качество. Так как не крути, но нас фрилансверов там со всего мира миллионы, а вот работодателей с деньгами всего лишь тысячи.
    Ответ написан
    2 комментария
  • Где выгоднее жить программисту, в Москве или Новосибирске?

    b0nn1e
    @b0nn1e
    Alcohol & Ruby on Rails
    Офтоп немного, но я бы порекомендовал Минск.
    Год назад переехал, и не жалею.
    Ответ написан
    9 комментариев
  • Где выгоднее жить программисту, в Москве или Новосибирске?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Москва - это странный выбор. Лучше жить в среднем по размеру городе, где есть инфраструктура. но цены на услуги ниже, чем в Москве, Питере, Новосибирске и т.д.
    Я живу сейчас в Тамбове - считаю оптимальным выбором. Это достаточно рядом с Москвой (4 часа на экспрессе). Достаточно далеко от Москвы, экология в норме, Тамбов и Белгород самые чистые города европейской части России. Из тех, в которых есть вся необходимая инфраструктура. Цены на жилье радуют. Снимаю очень большую и хорошую 2-шку за 12K + 3k коммуналка. Модно найти однушку за 8k.
    Я долго думал куда съехать (жил в Харькове, потом в Москве) начертил себе табличку, провел тендер и выбрал победителя - Тамбов. Многие наверно удивятся, но я за 3 года не разу не пожалел. Город - отличное место для фриланса. Конечно же работать в Тамбове программистом не где. Есть конечно студии, но там ценники в месяц на уровне 1 закупки в супермаркете. Только фриланс.
    Ответ написан
    6 комментариев
  • Где выгоднее жить программисту, в Москве или Новосибирске?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Если удаленка - все равно где. Если офис - Москва
    По сравнению с любым другим городом, в Москве разница в зп выше, чем разница в съеме квартиры.
    Ответ написан
    3 комментария
  • Как вызвать метод родителя родителя?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    (this as A).Method()

    ((A)this).Method()

    ps .. сам не пробовал ))

    pps .. попробовал.. не прокатило ((

    кстати - protected вообще не дает использовать Method() в Some()

    ppps любопытно, что на stackoverflow полно ответов типа моего, при чем многие отмечены ответами

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

    по поводу расширений - это вообще инструмент, позволяющий много разных элегантных решений

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

    вообще, с годами, убеждаюсь, что городить свою иерархию классов ооочень далеко НЕ всегда оправдано

    pppps ну и раз такое дело - на всякий случай тоже подпишусь, вдруг есть современное решение ))

    обещанный эскиз на основе расширений https://dotnetfiddle.net/UTPZLv
    Ответ написан
  • Как в Firebase сделать многопользовательскую базу данных?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    При создании пользователя в ответ приходит разная информация но самая главная из них это уникальный ID. Вам никто не мешает сразу после успешной регистрации создать в базу ключи users/ id пользователя/ и положить нужные вам данные.

    export function registerUserWithEmailAndPassword(nickname, email, password) {
        return (dispatch) => {
            firebase.auth()
                .createUserWithEmailAndPassword(email, password)
                .then((user) => {
                    firebase.database()
                        .ref('usersChat/' + user._user.uid)
                        .set({
                            nickname: nickname,
                            uid: user._user.uid,
                            timestamp: Date.now(),
                            email: email
                        })
                    return user
                })
            
                .catch((error) => {
                    // Handle Errors here.
                    var errorCode = error.code;
                    var errorMessage = error.message;
                    dispatch({
                        type: types.userRegisterErr,
                        payload: errorMessage
                    });
                });
        }
    }
    Ответ написан
    4 комментария
  • Что дает Java Spring?

    Привет

    Прочитай книжку Spring для профессионалов 4 - поймешь, для чего нужен спринг, и что он тебе дает в общем. Если тебе просто нужно сделать какой-то сайт или веб-проект в одни руки или маленькой командой, то сразу забей и беги от Spring - это явно не твой выбор.
    Ответ написан
    Комментировать
  • Что дает Java Spring?

    zolt85
    @zolt85
    Программист
    Spring Framework, как и любой другой уважающий себя framework, дает Вам основу, скелет, систему координат, в которой Вы (а еще важнее не только Вы, но и другие разработчики) разбираетесь и ориентируетесь. И вот используя этот скелет, можно строить приложения. В основе своей Spring Framework это про бины, управление бинами и IoC (Inversion of Control). Поверх всего этого строятся остальные модули Spring Security, Spring MVC и прочие (тысячи их!).
    Ответ написан
    Комментировать
  • Что дает Java Spring?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вся и идея spring и ему подобных в технологиях DI и IoC.
    Первая технология DI - Dependency Injection - внедрение зависимостей. Смысл следующий, пусть у нас есть класс, который зависит от другого класса, тогда контейнер автоматически найдет все зависимости и сам проинициализирует нужный класс. Пример: пусть у нас есть интерфейс "Фрукт", класс "Яблоко", интерфейс "Паразит", класс "Червяк". В класса "Яблоко" указываем в одном из методов или конструкторе зависимость от интерфейса "Паразит". Теперь положим в контейнер классы "Червяк" и "Яблоко", и попросим контейнер создать дать нам инстанс класса "Яблоко".
    Контейнер выполнит следующие действия:
    - посмотрит, что без класса, реализующего интерфейс "Паразит", он не может создать "Яблоко".
    - посмотрит на зарегистрированные классы, не реализует ли кто интерфейс "Паразит" и обнаружит класс "Червяк"
    - создаст инстанс класса "Червяк"
    - создаст инстанс класса "Яблоко" и передаст ему инстанс класса "Червяк"
    - отдаст созданный инстанс "Яблоко" нам.

    Теперь мы можем создать класс "Ева" с зависимостью от интерфейса "Фрукт", положить его в контейнер, и положить в контейнер класс "Адам" с зависимостью от "Ева" и попросить создать нам инстанс класса "Адам" :-)
    MutablePicoContainer pico = new DefaultPicoContainer();
    pico.addComponent(Fruit.class);
    pico.addComponent(Worm.class);
    pico.addComponent(Eve.class);
    pico.addComponent(Adam.class);
    .....
    Adam adam = pico.getComponent(Adam.class);


    Вторая технология IoC - Inversion of Control - контроль управления - это как раз и есть одна из реализаций принципа DI, когда внедрение зависимостей происходит через посредника - фреймворк.

    Легче всего разобраться с этим (а уж потом переходить к spring) - поработать с простыми контейнерами типа picocontainer , nanocontainer и guice.
    - picocontainer.com/introduction.html
    - https://github.com/google/guice
    Ответ написан
    Комментировать
  • Что выбрать для карьеры c# или ruby?

    @eliastro
    Если нравится руби, то его и изучай. Скорее всего потом ты все равно перейдешь на другие языки и технологии независимо от того, что ты выберешь (руби или с#). Работы на руби много, особенно учитывая соотношения кол-во вакансий и конкуренцию на рынке. Более того на руби ты легко сможешь найти работу удаленно при желании (как на западные компании, так и РФ), т.е. не ограничен рынком своего города или страны. А в C# удаленная работа скорее исключение, чем правило. Также в плане фриланса (upwork например), то руби гораздо предпочтительнее, чем C#.
    Ответ написан
    Комментировать
  • Какой алгоритм использовать для нахождения пути в здании?

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

    Это одна из старых версий, пардон за дизайн.
    5aa42b873b401999336800.png

    Если интересует, свяжись со мной vk
    Ответ написан
    Комментировать
  • Актуальные книги по android для новичков, на русском языке что можно выбрать?

    Conacry
    @Conacry
    Здравствуйте.
    Из книг могу посоветовать следующие:
    1. П. Дейтел, Х. Дейтел, А. Уолд. Android для разработчиков. 3-е издание(2016);
    2. Брайан Харди, Билл Филлипс,Крис Стюарт, Кристин Марсикано.Программирование под Android. 2-е издание (2016).

    Но у книг есть один веский недостаток - они выпускаются уже устаревшими.
    Если хотите иметь полную информацию по последним версиям Android, а также нововведениям в SDK, то официальная документация наше все - https://developer.android.com/index.html

    Также есть хороший ресурс с гайдами - https://guides.codepath.com/android
    Ответ написан
    1 комментарий
  • Дизайнер интерфейсов с нуля. С чего начать и как двигаться?

    OtshelnikFm
    @OtshelnikFm
    Обо мне расскажет yawncato.com
    Делай свой сайт, учись и пиши. Сложится лояльная аудитория, пойдут первые заказы.

    30-40 - разницы никакой. Вот хейтеров не слушай. Многие и в студенческие годы, когда башка варит, могут только болтать языком.

    Учи английский и подтягивай его. Будешь общаться на западных площадках. Но я говорю о развитии как фрилансер - т.к. реалии таковы что HR и говорить не будут - они шаблонны и отметают как только видят что возраст от 25-ти и к 30-ти вообще не смотрят джунов. Они же как роботы - мало у каких эйчаров реально мозги работают. Все думают что выпускник в 21 год это золотой теленок.
    Ответ написан
    Комментировать