• Как разобраться с путями gulp?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    / - корневая директория
    ./ - текущая директория (поиск в ней ./install.sh)

    . - запуск файла в текущем окружении pubs.opengroup.org/onlinepubs/9699919799/utilities...

    А можете подробнее про ? где он встречается)

    Буду банален, посмотрите https://learn.javascript.ru/screencast/gulp . Там разобрано много вопросов по внутренней архитектуре gulp
    Ответ написан
    Комментировать
  • Как пофиксить постоянный сброс конфигурации (авторизации) SSH в Git?

    ProgramCodePav
    @ProgramCodePav Автор вопроса
    Front-end developer. Love open source
    Проблема заключалась в отключении ssh-agent при закрытии консоли. Его нужно добавить в автозапуск: github guide

    В винде в папке юзера создаем .bashrc и .profile . Добавляем код по гайду и все.
    Ответ написан
    Комментировать
  • Как у вас организована командная работа?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Используем BitBucket + Trello + Google Docs (основные доки по проектам, макеты, схема бд и все такое - очень удобно) + Telegram (когда онлайн, значит работаешь).

    Раньше был документ на Google Docs в формате экселя. К нему были подключены формы, которые заполнял каждый разраб в конце работы с оценкой своей деятельности и кратким описанием какие таски делал, какие проблемы были, да и вообще пишет, что считает нужным. При входе в документ срабатывает скрипт, написанный на basic внутри гуглоЭкселя (макрос это называется вроде), который все данные (оценки и никнеймы) формирует и составляет график продуктивности. Сейчас это неактуально, т.к. команда уменьшилась ) но работало неплохо. Такой вот забавный велосипед
    Ответ написан
    1 комментарий
  • Какие есть толковые книги по написанию приложений для андроид?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Боян, но все же советую Брайн Харди, Билл Филлипс - Программирование под Android (Для профессионалов).
    В книге описывается разработка 6 приложений от слабенького до интересного парсера картинок с фотосервиса.

    Разница в методах реализации заметны лишь опытным программистам, которые прощупали уже. Здесь надо всем ежиков пинать.

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

    По поводу примеров. Они могут быть написаны под самый популярный или самый простой стиль (всегда проще дать отдельный класс пользователю, чем вставлять строки внутри неизвестного класса в неизвестных местах и т.д.). Ваш вариант может быть правильным, но он не особо соответствует стилю программирования в поддерживаемых приложениях (которые расширяются и обновляются), ведь лучше общий функционал (особенно при нескольких активити) вывести в отдельный класс, где он будет лучше доступен (в одном месте и без дублирования).
    Ответ написан
    Комментировать
  • Android Studio не обновляется!Что делать?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Вообще она еще сыровата на падения. После любого крита мне приходилось заново устанавливать студию. Хотя бы SDK перекачивать не надо было)
    Ответ написан
  • Адаптивная верстка, как можно решить данную проблему?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    на 480px верстка должна стать статической. То есть не проценты, а пиксели должны быть значениями ширины, высоты и т.д. В калькуляторе перегоните из процентов в пиксели. И еще viewport scale на всякий случай посмотрите
    Ответ написан
    Комментировать
  • Java как язык: есть ли отличия между разработкой для Android и Java SE/EE (февраль 2015)?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Верно последнее высказывание.
    Все одинаково. Не важна версия языка. Разница между версиями android заключается в API. Для поддержки очень старыми версиями android современных возможностей используется Support Library.

    Допустим, велась разработка на Java 6. Потом пришло обновление до Java 8. Вы переписываете код на Java 8 (оптимизируя только функции и работу Java, а не Android) и все отлично работает.

    То есть как язык является именно "каноническим" от Oracle. Но Android, кажется, работает только с Java 6. (поправьте в комментариях, если не так).

    В структуре он имеет сходство с Java EE (можете это сразу заметить), но это структура Android-проекта.
    Ответ написан
  • Почему не конвертируются Fragment?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Обратите внимание на используемые библиотеки. Если вы использует Support Library (для поддержки старых версий Android), то типы должны быть из соответствующих библиотек. Например:

    Из первого листинга видно, что фрагмент менеджер не входит в библиотеку Support, а фрагмент - входит.

    import android.app.Activity;
    import android.app.FragmentManager;
    ...
    import android.support.v4.app.Fragment;


    Функций getSupportFragmentManager() применяется к классам из Support library.

    ps: для фрагмент менеджера: import android.support.v4.app.FragmentManager;
    Ответ написан
    2 комментария
  • Можно ли развернуть веб-приложения в локальной сети?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Сам еще не работал с этим, но читал о sqlite - встраиваемой СУБД. Думаю, эта статья для вас
    habrahabr.ru/post/56694

    Если в рамках локальной сети, то можете установить denwer или подобный веб-сервер, для эмуляции на локальном пк (который как сервер).

    А еще на пк-сервере может быть C#-приложение, которое работает с sqlite (то есть сервер), а на других пк - клиенты.
    Ответ написан
    5 комментариев
  • Как создать кнопку с картинкой?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    кнопка? Пусть кнопкой будет блок div, в котором картинка img и текст. Сделайте стилизацию float: left; display: inline. И просто вешайте onclick событие
    Ответ написан
  • Для PHP нужен лок. сервер, а для других ЯП?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Серверные языки имеют особенность - обработка только на сервере. Это от софта зависит. Что происходит, когда вы заходите на страницу с кодом PHP (или другого языка):
    1. Ваш браузер посылает запрос на получение html страницы (файла) по %url%;
    2. Сервер получает ваш запрос, берет запрошенную страницу (допустим index.php с html + php или просто php кодом), обрабатывает операции с языком php (как обычная программа);
    3. После обработки PHP команд на сервере, на выходе получается html-страница (содержимое, конечно же, зависит от того, что написано было в коде - может и пустая быть)
    4. Сервер отсылает вам эту страницу
    5. Ваш браузер получает ее и открывает

    upd: именно поэтому вам не обойтись без сервера. А локальный он или выделенный - без разницы, фишка в ПО
    Ответ написан
  • Трудоустройство. Не знаю что делать?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Лучше заниматься тем, что вам нравится (С++), но Java очень неплох, к слову. И произошел Java от C++. Плюсы немного сложнее и в них много нюансов. Не скрою, что на плюсах проще на работу устроиться, но для их понимания (изучения), вам надо еще кучу времени потратить. Не знаю, где сейчас можно найти джуниор C++, но Java можно хотя бы потому, что популярна мобильная разработка.

    Для начала посмотрите на open source. Но если вас это не устраивает и необходимо "завтра" работать в офисе,в коллективе, лучше изучайте Java. Я изучал его из-за Android и очень брезгливо относился, но сейчас мне он очень нравится. Такой классный community-язык.

    Готовность к джуниор? Хм, просто подготовьтесь к требованиям вакансии и немножко попилите программок. Сделайте, например, стандартные приложения - чат, блокнот, учебный журнал, расписание. Просто руку набить и сказать на собеседовании об этом. К тому же, будьте уверены. Будете сомневаться, многое просто не скажите о себе (что, возможно, работодателю хотелось бы услышать о вас - умеете мотивироваться). Сам джуниор подразумевает разработчика без опыта, но со знаниями. Но надо помнить, что обычно смотрят на умных людей. Может быть у вас меньше знаний, но вы умный, активный и более развиты как личность - шансы выше.

    И, правда, хватит сомневаться. Вы талантливый, жгите! Если туго идет - все равно ломайте, пробуйте, гуглите и тренируйтесь читать на английском (очень сильно навык возрастает), решайте проблемы - это все опыт, который в итоге вас создаст. Страх парализует и ломает. Если выберите язык, сделайте решение и следуйте ему, несмотря на сомнения, иначе будете сомневаться еще 3 месяца (время, за которое можно стать джуниором по любому из них)
    Ответ написан
    2 комментария
  • Android как решить конфликт HttpRequest в одной сети WiFi?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Серверную часть пишите с потоками.

    Вот реализация сервера для чатика с потоками
    https://github.com/PaVM/ChatApplicationServer/blob...
    Ответ написан
    Комментировать
  • Программирование с нуля. Как начать?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Привет. Вы уже успели понять, что главное - желание. Но если и учиться (а это скучно), то надо заниматься максимально классными для вас вещами. Не менее важно видеть результат, поэтому лучше несколько маленьких проектов, чем один большой, который не закончите. Ответ на необходимость строго типизированного языка - да.

    Суть:
    Вам надо сначала изучить логику работы ЯП (pascal, на первых порах и C++ сойдет), потом уже браться за ООП (object pascal, C++, C#, Java и многие другие). А также рулит опыт. Сколько бы вы книг не вычитали, решает опыт. Читайте и пишите код. Устали читать, пишите код. Напишите программу на свой день рождения. Напишите программы для решения типовых задач (если учитесь) и не парьтесь с домашкой :)

    По делу. Я начинал также с паскаля, потом делфи (object pascal)... куча технологий и языков. Пришел к Java Android.

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

    А теперь надо ответить на вопрос: Сколько у вас есть времени и каким бы вы хотели быть программистом (хорошим, лучшим или как хобби)?

    Если у вас много времени, терпения и желание стать лучшим, то надо изучать с нуля:
    pascal (не полностью, а просто научиться решать стандартный перечень задач - работа с массивами, вычисления выражений, работа с файлами, работа со структурами данных - так проще).
    В принципе это займет недели 2, если стараться. Дальше у вас уже будет понимание логики языка. Можно садиться на более сложные (c#/java советую, c/с++ интересные, но сложнее).

    Если у вас времени в обрез или вы хотите просто начать уже сейчас, то советую начать изучать Java. Имхо, Java - один из самых легких из продвинутых ЯП (посмотрите книгу Head First Java).

    Если смотреть издалека, то Pascal я советовал только потому, что он очень простой и функциональный... Он как раз помогает понять типы данных, важность соблюдения границ массива, а структуры данных позволяют работать почти как с ООП языками (типа Java/C++/C#/etc.). Однако всего немногим сложнее будет изучение java, благодаря книжке Head First Java - она отлично составлена, с рисунками, стрелочками и забита аналогиями, а минусом здесь является бросание в пекло (в ООП), где всякие непонятные классы и т.д., отвлекающее от самой основы логики программирования.

    По языкам. (не особо слежу, скажу по своим ощущениям)
    Сейчас особенно выезжают две сферы на рынке - мобильная разработка и веб-разработка (для сервера).
    Справляются с этими задачами круто Java, .net C#, C++.
    Java - львиная доля разработки под Android, Один из популярнейших языков для серверного программирования, big data и других вычислений, иные разработки.
    C# - самый активный конкурент в серверном программировании для Java, разработка под winphone, windows с прямочками от MS (ведь C# разрабатывает MS).
    С++ - везде, но в основном применяется для системного программирования, драйверов и участков программ, где нужна большая скорость выполнения программы (поисковые движки, обработка голоса). Мне он нравится больше всех, но это для себя) На этом языке сложнее всего научиться, но с некоторым опытом работы (2-3 года) можно пройти в топовые конторы.

    ------------
    Честно говоря, мне очень помогали знания курсов Архитектуры ЭВМ и алгоритмов в изучении. Это не обязательно, но очень интересно )

    Итог:
    Если хотите вытоптанный путь, но немного более долгий - начинайте с pascal и потом садитесь на java/C#. Такой путь не требует особых знаний, кроме самих языков (в отличии от С++, где нужны базовые знания о работе компьютера).
    Если вы сообразительный и сильный (умеете мотивироваться и добиваться), то начинайте сразу с java. Сложно будет первые пара программ. Гугл сделает их за вас, но вообще это очень легкий язык.
    С++ - не знаю. Многие советуют с него начинать. Вообще, он довольно простой и структурный в начале, усложняется довольно быстро, но логично. Хороший язык, но его проблема для новичков - нужно учитывать очень много нюансов.

    Кстати, у java есть небольшой плюс - javarush.ru. Интересный проект) фремиум, но бесплатно можно пройти уровней 10-15, это, по сути, позволит познакомиться с языком.
    PS: если вы не решились, начинайте любое. Начните сложные, простые языки, поделайте, поломайте. Это правда поможет. Пробуйте, изобретайте свое.
    Что-то я затянуто написал... ночь.:)

    Успехов!
    Ответ написан
    Комментировать
  • Как победить IE?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    пробовали box-sizing для div'ов использовать? Это свойство позволяет по-разному воспринимать ширину объекта. поробуйте border-box
    Ответ написан
    Комментировать
  • Какие приложения сделать на Android для практики?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    1. Аналог популярного ПО. Например, всякие анализаторы состояния и т.д. (они собирают статистику и визуализируют ее - например, какой-нибудь вайфай чекер с регистрацией частоты подключения к wi-fi, которую можно посмотреть на графике, а также список роутеров, доверие к которым определяется количеством подключений к ним. Но это утилита, что имеет свои минусы).

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

    3. креатив.
    Фоток скрытой съемки. Это как обычная камера, но на экран не выводится информация с камеры, а съемку можно сделать, например, качельками:) кстати, отличная идея, может и выстрелит немножко.
    Еще можно написать генератор бесполезных идей. С вашей стороны вы создаете кучу инструментов и возможностей (рисование смайликов пользователем), добавление звуков нажимания на этот смайлик (которые, например, можно записать с микрофона и слегка обработать до смешного) и т.д. Это как бы фреймворк для пользователей:)
    Ответ написан
    Комментировать
  • Придумал настольную игру, какой посоветуете алгоритм для соперника-бота?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Есть просто идея:)

    Можно сделать заранее много наиболее эффективных (или по сложности) семлов. А также бот будет записывать каждый примененный семпл в файл. На основе данных файла может быть осуществлен алгоритм псевдохитрости соперника. Например, 3 раза один семпл (или похожие) работают, а в четвертый раз самый страшный семпл для игрока, который подстроится под предыдущие 3 варианта. Также для одного из 5 вариантов бота можно сделать случайным. Это все для первого шага.

    Далее нужно небольшое исследование эффективности. Вообще бот может читерить, но если игра честная, то алгоритм должен быть человеческий.

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

    Второй пример выходит из первого: можно сначала проверить все 5 горизонталей, выдвигая левее и правее лишь одну точку в варианте Б.

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

    Второй этап:
    После оценки всех горизонталей можно резко выдвинуть в положительные стороны все варианты ответов (например, 5 точек варианта 1, все до края - влево, вправо, влево, влево, влево - это на основе анализа результатов первого этапа, а 5 точек варианта 2 - тоже самое, что у варианта 1, но деленное на 2).

    Третий этап: (fail)
    совмещать варианты 1 и 2 по шагам.
    например, вариант 1 выиграл более, чем вариант 2.
    Напомню расположение варианта 1 (от центра): влево, вправо, влево, влево, влево .
    А это расположение варианта 2 (от центра): влево/2, вправо/2, влево/2, влево/2, влево/2 .
    Значит первая (верхняя) горизонталь варианта 2 двигается влево на расстояние влево/4 (то есть на клетку). Если Ва... тут я сломался:) потому что возвращаемые данные не цифры, а bool. ( я додумать его попробую, просто дам ответ лучше по-раньше, вдруг вы поймаете направление и справитесь лучше )

    -----------

    Еще один алгоритм: последовательный.

    Первый этап аналогичный предыдущему алгоритму, то есть оба варианта одинаково расположены с отклонением в одну клетку, на одной горизонтали, потом на другой и до конца, чтобы собрать данные.

    Отличие в том, что если исследует карту вариант 2, то вариант 1 становится на выигрышную точку вместе с вариантом 2.

    например:
    Расположение всех точек, шаг 1:
    Вариант 1 <=> вариант 2
    Центр <=> Центр+1клетка вправо
    Центр <=> Центр
    Центр <=> Центр
    Центр <=> Центр
    Центр <=> Центр

    Вариант 2 выиграл. Значит в первой горизонтали стандартной точкой становится Центр+1клетка вправо. То есть:
    Расположение всех точек, шаг 2:
    Вариант 1 <=> вариант 2
    Центр+1клетка вправо<=> Центр+1клетка вправо
    Центр <=> Центр+1клетка вправо
    Центр <=> Центр
    Центр <=> Центр
    Центр <=> Центр

    Вариант 2 проиграл.
    Расположение всех точек, шаг 3:
    Вариант 1 <=> вариант 2
    Центр+1клетка вправо<=> Центр+1клетка вправо
    Центр <=> Центр+1клетка влево
    Центр <=> Центр
    Центр <=> Центр
    Центр <=> Центр

    Если вариант 2 проиграл, то точка второй горизонтали оказалась по центру. И в таком плане.

    --

    Плюсы и минусы. У первого варианта, очевидно, больше эффективность, но он не продуман до конца, а второй вариант 100% рабочий, но достаточно долгий.
    Конечно, можно совместить 1 и 2 вариант. Таким образом После первого этапа (оценки ближних от центра клеток), можно перемещать точки в крайние положения.

    Что я не продумал - вероятно есть способ использовать оба вариант, а не когда один в простое :)
    Ответ написан
    Комментировать
  • Как расположить элементы так же, как в макете?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    вам нужна кросс-браузерная верстка. Она делается с помощью поддерживаемых во всех браузерах свойствах (сохраните). Для позиционирования элементов, обычно все элементы в плавающем стиле делаются (свойство float) и относительным позиционированием (relative).

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

    Теперь по делу:
    0. Весь контент на сайте можно расположить в Div'e с названием container (чисто символически) и выставить конкретное значение ширины, а чтобы было по центру - margin: 0 auto;
    Почему конкретное значение? вы можете делать резиновый сайт, но проще сделать адаптивную верстку с несколькими вариантами (на @ media-queries )

    В контейнере:
    1. Левое меню вы можете сделать Div и выровнять по левой части (float:left), в который вложите опять же Div'ы, которые будут кнопками.
    2. Правая часть ни что иное, как второй Div, в котором расположены другие div (с обязательно одинаковым свойством float). Каждый такой вложенный div является автоматически будет друг под другом. если будет проблема, смотрите в сторону box-sizing.

    Это в общем-то основные сведения, чтобы отталкиваться. Вот пример, который я делал сайт
    Ответ написан
    Комментировать
  • Как разложить строчку с числами на байты и обратно в java (Android)?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Простите за такой код :)

    string str = tbInputField.Text; // 57126973
    
    tbPlaintxt1.Text = str[0];  //5
    tbPlaintxt2.Text = str[1];  //7
    tbPlaintxt3.Text = str[2];  //1 ...
    tbPlaintxt4.Text = str[3];
    tbPlaintxt5.Text = str[4];
    tbPlaintxt6.Text = str[5];
    tbPlaintxt7.Text = str[6];
    tbPlaintxt8.Text = str[7];


    Попробуйте что-то в это роде
    Назад:
    tbInputField.Text = tbPlaintxt1.Text + tbPlaintxt2.Text + tbPlaintxt3.Text ... + tbPlaintxt8.Text;


    А вообще это основы. Советую книжку по Java почитать о форматировании строк и работой с типом String.
    Ответ написан