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

    @svsanek
    На coursera отличный курс Седжвика. https://www.coursera.org/instructor/~211
    Вообще круто рассказывает. С наглядной демонстрацией. На курсе есть форум с тонной проблем и решений. Короче - рекомендую
    Ответ написан
    Комментировать
  • Как организовать работу удаленных программистов?

    @svsanek
    Из личного опыта - много работал сам удаленно, сам нанимал людей. Больше всего понравилось как работают американцы.
    1. Все проекты на github либо bitbucket. Баг трекер там же
    2. Каждой задаче дается оценка и за оплачивается только оценка. Т.е. ты сказал, что сделаешь за 4 часа - заплатят только за 4-ре часа и не кого не волнует сколько ты провозился.
    3. Задачи дробят до самого маленького уровня. По каждой задаче все обсуждения через коменты к задаче. Никакого скайпа.
    4. Каждый час-два пинг "как дела? на каком этапе?". Пропал больше чем на 2 дня - уволен.

    Итого:
    - Возможно ли найти ответственных и самостоятельных людей?
    да
    - Каким образом следует контролировать сотрудников?
    Регулярно пингуй. Требуй решения задач в срок. Если пропал больше чем на два дня - проще избавиться и найти нового (я так за одним долго бегал). Лог задачи веди в коментах к этой задаче.
    Если ли смысл использовать тайм-трекеры на ПК работников?
    бессмысленно
    - Как начислять ЗП? Использовать фикс. ЗП / оплачивать позадачно / почасово?
    Давай оценить задачу, сам прикинь сколько в часах ее делать. Договоритесь, что на эту задачу столько-то часов. Плати только за часы. Ты не крупная компания, которая может оплачивать перекуры и болтовню за кофе.
    - Сколько в среднем платить удаленному PHP-программсту средней квалификации (junior / middle)?
    Есть знакомый - очень хороший PHP-девелопер (больше 5 лет стажа только удаленной работы) - берет от 750р за час. Посмотри по фриланс площадкам - сколько ребята просят за час.
    Ответ написан
    7 комментариев
  • Как сервер может узнать, что клиент оборвал TCP соединения?

    @svsanek
    Только таймаут.
    Ответ написан
    Комментировать
  • Насколько полезен Hibernate? Сильно ли он упрощает работу?

    @svsanek
    Смотри. Что дает Hibernate - мапинг объектов на реляционную базу. И тут сразу куча вопросов - а как отображать ООП на реляционную модель (где нет наследования, инкапсуляции, полиморфизма). Отсюда много сложностей. Еще возникают такие вопросы - ты получил объект из базы, передал его в какой-нибудь UI - там 10 раз поменяли одно и то же поле - так 10 раз делать апдэйт базы или один? Хайбернейт должен догадаться или программист ему подсказать. Отсюда появляются всякие циклы жизни сущности, кэши и куча всякой дополнительной головной боли. Это если не касаться наследования, отношений один к одному, многие ко многим.
    Мой вердикт - хайбернейт несет много дополнительной нагрузки - не зря по нему столько книг написано.
    Но у него есть и плюсы

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

    Итак плюсы
    1. Ты продолжаешь работать с объектной моделью и забываешь про все эти 100000+ строк sql запросов.
    2. Тебе легко добавлять новые сущности, рулить транзакциями, про оптимизацию думают за тебя (кэши)
    3. Ты вообще забыл что такое джойны и по каким полям. Ты начинаешь верить в волжебство. Квэри билдеры просто сумасшедшие. А на груви код в одну строку просто сводит с ума!
    4. У тебя реально много таблиц (сущностей)
    5. Ты познал хайбернейт и оформил код конвеншн на проекте и вообще забыл, что такое проблемы

    Минусы
    1. Если у тебя 2 таблицы - нафига тащить тонну сложностей в свой проект. Посмотри книги по хайбернейту. Книга только по одной технологии джава. Целая книга!!!
    2. Ты должен четко понимать цикл жизни сущности. Когда она в сессии, когда нет, как она попадает в сессию, что с кэшем, а если у сущности релейшеншипы, а если лэйзи лоадинг. Просто тонна всего.
    3. Ты понимаешь, что ты перестаешь рулить запросами - и что-то оптимизировать нереально сложно. Что в sql правиться одной строчкой - используя хайбернейт неудивительно если ты перепишешь всю иерархию наследования с попутным рефакторингом контроллеров, юйа и т.д.
    4. В один момент ты можешь понять, что пропустил тему с лэйзи лоадингом и начал класть на лопатки оракл. А знающие люди подскажут сколько стоит это поправить.
    5. И да. Если тебе нужен перформанс - пиши запросы сам. ORM тут явно не подойдет.

    По-этому - просто составь табличку плюсов и минусов и реши.
    Хайбернейт крут, только когда он обоснован
    Ответ написан
    Комментировать
  • Что не так с авторизацией приложения на сайте?

    @svsanek
    1. Если не прошла авторизация, меняйте статус HTTP!!!! Не шлите странице со словами "о боже мой, вы ошиблись" и статус 200, Шли просто ответ со статусом 403 например.
    Вообще нужно понимать, что андройд приложение - это не браузер. И данные ему нужно слать как можно более удобные. Самый лучший универсальный вариант - REST сервисы.
    Если не понимаешь, как REST работает - посмотри как делают single page application например с помощью angularjs
    Либо на courcera есть шикарный курс - про написание бэкэнда для андройд девайсов.
    В дополнение к предыдущему ответу
    помимо токенов - посмотри еще на remember me.
    Ответ написан
    Комментировать
  • [РЕШЕНО]Почему не запускается приложение на android 5.1?

    @svsanek
    Вот тут change log https://paste.teknik.io/1010 того, что поменялось в 5.1 относительно 5.0
    Вообще я советую твоим друзьям (или тебе) поставить adb и после ошибки выполнить adb logcat > log.txt
    После, если сам не поймешь в чем ошибка (в чем я очень сильно сомневаюсь), кинь лог сюда
    Ответ написан
    1 комментарий
  • Как перенести данные из одной бызы данных oracle в другую?

    @svsanek Автор вопроса
    С sqldeveloper-ом проблема - нужен dba аккаунт, что бы схему скопировать - у меня нет dba правю.
    Нашел такую тулзу - Navicat называется. Как раз имеет тот функционал, который мне нужен.
    Ответ написан
    Комментировать
  • Что можно почитать по Java?

    @svsanek
    Лучше посмотри видеокурсы! Я в свое время копал в эту сторону, много чего пересмотрел - курсы от Linda.com, courcera - да кучу всего. На мой взгляд - самые лучшие курсы - www.youtube.com/channel/UCuIctN7x71qam9K_ZxS1W2A
    Просто бомба.
    Ответ написан
    Комментировать
  • Почему AlarmManager после перезапуска сервиса первый раз выполняется через 30 сек?

    @svsanek
    Какая версия sdk? Внимательно почитай java doc к AlarmManager - дело в том, что начиная с версии > 19 - нет гарантии, что AlarmManager сработает точно в то время, которое ты указал.
    "Note: as of API 19, all repeating alarms are inexact. If your
    * application needs precise delivery times then it must use one-time
    * exact alarms, rescheduling each time as described above."
    Это из javadoc
    Надеюсь, что я правильно вопрос понял
    Ответ написан
    Комментировать
  • Какие есть видео курсы по Java?

    @svsanek
    отличные android курсы на www.udacity.com прям от google. В этих курсах есть и про программирование на java. Впринципе если под андройд разрабатывать - на первое время хватит.
    Ответ написан
    Комментировать