• Как исправить результат выборки из БД?

    @remzalp
    Программер чего попало на чем попало
    У меня идиотский вопрос - что мешает один раз нормализовать данные в БД, чтобы не городить костылей?
    Почему название валюты внезапно стало значением?
    Почему в поле для хранения числовых значений вообще сумел храниться текст???

    На данный момент ситуация видится мне такой:
    #define TRUE FALSE //счастливой отладки

    На предмет костыля для решения проблемы:
    if (!is_numeric($cryptocurrency_value)) continue;
    if (!is_numeric($cryptocurrency_time)) continue;

    и всё, если у нас нет даты или числа в значении валюты - мы просто пропускаем эту запись.
    Добавить в цикле как раз по точке обрыва кода.
    Ответ написан
    3 комментария
  • Как быстрее/правильнее загружать данные?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Пара кейсов, после которых идея "передать на фронт и фильтровать там" перестает казаться такой хорошей

    1) Прилетел массив на 10 000 элементов. Клиент зашел с Samsung galaxy S2 , попробовал загрузить/фильтрануть, посмотрел, как завис браузер, и ушел. Не забывайте, что не все пользователи сидят с десктопов как у разработчиков с 16-32Gb оперативы. Мобилка может поперхнуться банально из-за большого json-а

    2) Как только потребуется сделать паджинацию - фильтрация на фронте станет выдавать неожиданно некорректные данные

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

    Я верю, что можно сделать выдачу и фильтрацию чисто на фронте с любым количеством элементов, если команда состоит из сплошных ниндзя и рокстаров, но практика в 3 подобные ситуации показывает, что в итоге эту фильтрацию придется переписывать как минимум на гибридную (и поддерживать 2 решения, на фронте для малого количества записей, и на бэке для большого), либо полностью на сервер сайд, так как к сожалению команда никогда не состоит из идеальных разработчиков, чаще из обычных живых людей
    Ответ написан
    2 комментария
  • Как можно реализовать вывод новостей в сайте на php?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Считаем кол-во новостей, делим на некий $limit(количество новостей на страницу), соответственно получаем кол-во страниц $page_count, вместе с запросом передаем параметр, допустим &page=3, соответственно делаем запрос БД с учетом нашего limit и с offset, который будет равен $offset = $limit * $_GET('page').
    Получится запрос типа:
    SELECT * FROM news LIMIT $limit OFFSET $offset;
    Сами ссылки при этом это обычный цикл for($i=1;$i<=$page_count;$i++). Обычный список, который содержит ссылки у который href будет содержать итератор $i. Ну и соответственно имея $_GET('page') и $i вы модете вычислять активный пункт и т.д. Выводить не все, а только следующие 5 и предыдущие 5. Тут уже как говорят "по вкусу"
    Ответ написан
    Комментировать
  • Как можно реализовать вывод новостей в сайте на php?

    netrox
    @netrox
    Ответ написан
    Комментировать
  • Как создать чат-канал, как в WarCraft III?

    myjcom
    @myjcom Куратор тега C++
    Если
    С++ \ WinAPI
    Глейзер Дж., Мадхав С. - Многопользовательские игры.
    Разработка сетевых приложений. - 2017
    Глава 2 - Интернет
    Глава 3 - Сокеты Беркли

    остальное по желанию.
    Плюсы:
    Объяснение на пальцах без лишней мути.
    Нет устаревших функций. С++, ООП (обертки из классов).
    В третей главе есть упражнения как раз по Вашей теме.
    spoiler

    Вопросы для повторения
    1. Назовите некоторые отличия POSIX-совместимых библиотек сокетов от ре-
    ализации в Windows.
    2. Какие два уровня TCP/IP отвечают за адресацию сокетов?
    3. Объясните, как и почему сервер TCP создает уникальный сокет для соединения
    с каждым клиентом.
    4. Объясните, как связать сокет с портом и что это означает.
    5. Добавьте поддержку адресов IPv6 в SocketAddress и SocketAddressFactory .
    6. Добавьте возможность создания сокетов TCP в SocketUtils .
    7. Реализуйте чат-сервер, использующий протокол TCP для соединения с един-
    ственным узлом и передачи сообщений в обе стороны.

    8. Добавьте поддержку нескольких клиентов в чат-сервер. Используйте неблоки-
    рующие сокеты на стороне клиента и select на стороне сервера.

    9. Объясните, как изменить максимальный размер окна приема TCP.



    ссылки на актуальную литературу и исходники на гитхабе в самой книге

    по исходникам, что бы не искать - то что нужно Вам лежит здесь https://github.com/MultiplayerBook/MultiplayerBook...
    Ответ написан
    Комментировать
  • Стоит ли выкладывать свои мини-проекты на гитхаб?

    nki
    @nki
    bezkart.ru готовая система лояльности
    К поделкам отношусь хорошо, сам такими занимаюсь. Пример работ на гитхабе это хорошо. Как минимум, показывает, что вы знаете что это такое и умеете с ним работать. Оценивать специалиста по работам десятилетней давности - глупо. Не парьтесь, ведите свои проекты как вам удобно.
    Ответ написан
    Комментировать
  • Как находить и участвовать в проектах на гитхаб?

    sim3x
    @sim3x
    Делаете работу
    В процессе находите ошибку в стороннем коде
    Находите ее источник
    Пишите багрепорт и тесткей
    Так как всем пофиг
    Сами фиксите баг
    Неделю стучитесь мейнтейнеру, чтоб он принял ваш пушреквест
    Он вас посылает, тк ето не баг
    Ответ написан
    10 комментариев
  • Стратегия входа, путь развития во фрилансе. С чего начать, чтобы стать верстальщиком и php-программистом?

    Jump
    @Jump
    Системный администратор со стажем.
    marsel81,
    Как понимаю, самые популярные и востребованные "профессии" во фрилансе - это верстка и php-программисты на разных фреймворках.
    Неправильно понимаете.
    Названные вами направления это очень узкий пласт фриланса даже в IT, хотя и достаточно популярны.

    Электрики, маляры, строители, учителя, сантехники, архитекторы, дизайнеры, программисты, системные администраторы, и много других профессионалов работают во фрилансе, и очень востребованы.
    Ответ написан
    Комментировать
  • Стратегия входа, путь развития во фрилансе. С чего начать, чтобы стать верстальщиком и php-программистом?

    Nikolino
    @Nikolino
    Html и css с практическими задачами лучше изучать на htmlacademy.ru. После того как освоился, качаешь бесплатные psd макеты и верстаешь, с адаптивом, какие-то сложные вещи, которые не можешь сверстать оставляешь пока.
    Далее ищешь видео где верстают макет, обычно на первых секундах-минутах показывают макет и сразу можешь понять сможешь ли сверстать сам или нет, если понимаешь, что не сможешь, то смотришь как автор это сделает, узнаешь новое для себя.

    По php. Читать большие и толстые книги пока бессмысленно, всё прочитанное будет вылетать из головы. Ставишь OpenServer, и сразу в бой:
    1. Переменные, условия, циклы, массивы.
    2. Пользовательские функции
    3. Базовые функции по работе со строками и с массивами. Комбинация функций. (важно понять и запомнить что они умеют).
    4. Post и Get запросы, получение Post и Get запросов из формы (тут сразу и html по формам подтянешь)
    5. Базы данных, простые запросы к базе, выборки, запись в базу данных из формы.
    6. Куки, сессии.
    7. Чтение и запись в файлы.
    8. Регулярные выражения.
    9. ООП, базовые понятия. Самое сложное и непонятное для новичка. Непонятно потому, что не ясно зачем это нужно и почему это в дальнейшем упрощает работу, поэтому как-то мимо ушей все пролетает.

    Если с английским хорошо, то codecademy.com.
    Если плохо, то базовую теорию (и сразу практику) делать здесь.

    Далее лучше сразу переходить на фреймворк (лучше Laravel). MVC в теории тоже понимается плохо потому, что пользу донести до понимания новичкам сложно, а при работе с фреймворками сам понимаешь почему это удобно.
    Во время изучения фреймворка и ООП подтянешь.

    Самое главное, по моему опыту обучения, это сразу делать практические задания по ходу изучения тем, постепенно, набивать руку. Задания лучше не пропускать (с мыслью "да тут легко, в теории я знаю как это сделать, пропущу, интересно что будет дальше").
    Самое неправильное, это дойти в чтении чуть ли ни до ООП, а открыв редактор кода, понять, что не можешь написать простые условия или перебор массива.

    То есть чтения меньше, практики больше. Это про голый PHP.

    Про фреймворк, если английский позволяет то Laracasts: Laravel 5.4 from scratch. Если не позволяет, то ищешь в ютубе что-то вроде "простой блог на Laravel", смотришь и кодишь параллельно у себя.
    Тут тоже самое, под попкорн просмотреть всю серию роликов от начала до созданного блога с админкой бесполезно. Обнаружится потом, что не можешь даже базовые вещи сделать. Нужно делать параллельно с автором, он делает какой-то функционал, смотришь, делаешь также, изначально может быть непонятно многое и зачем автор это делает, но со временем поймешь как это работает.

    Далее пробуешь сделать что-то свое, какие-то "фичи", например авторизацию с помощью соц. сетей, лайки к постам и комментариям (с помощью ajax, тут можно jQuery изучить чуть-чуть), вложенность комментариев и т.д. Можешь другой себе проект придумать(представь себя стартапером).

    Далее можно изучить системное администрирование чуть-чуть, покупаешь VPS недорогой, ставишь Nginx, MySQL, PHP-FPM и т.д. Пробуешь залить туда свой проект, так чтобы всё работало. Далее можешь попробовать прикрутить какой-нибудь поисковый движок (Sphinx, например). Изучение командной строки тоже на codeacedemy.com есть.

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

    Сам изучаю всё это недавно. До этого был Python+Django(первый фреймворк). В команде никогда не работал. Так что можно сказать передаю опыт от новичка новичку.
    Ответ написан
    3 комментария
  • Как научится понимать Bitrix за один вечер?

    neuotq
    @neuotq
    Прокрастинация
    Перво наперво настойчиво рекомендую сообщить об этом заказчику, саму верстку выполнить в полном объеме согласно принятому описанию заказа, а далее предложить варианты заказчику. Либо вы заканчиваете полностью просто верстку статичных html для последующей интеграцией специалиста по bitrix в саму систему, либо вы сами берете на себя эти доработки но с условиями расширения времени заказа (и может быть оплаты).
    Вашей вины в том что заказчик полностью не описал задачу нет, но и самого заказчика конечно же полностью в этом винить нельзя и будет по честному для заказчика как можно быстрее ему сообщить о проблеме и наиболее легкие пути выхода для всех сторон.
    Если там человек адекватный, он оценит честность и думает пойдет вас на встречу если вы аргументировано обоснуете иные сроки или иные условия выполнения заказа.
    Ну и в крайнем случае можно закрыть заказ по согласовыванию сторон, если же он подаст жалобу, то у вас тоже есть право жаловаться на условия ТЗ, в которых не было раскрыта истинная сложность задания.
    И еще раз повторю, я настоятельно рекомендую быть прежде всего честным с заказчиком, а не стараться сделать то что у вас очень может быть не получится и таким образом неожиданно для заказчика сорвать сроки/качество продукта. Поэтому лучше как можно раньше предупредить, чтобы человек тоже скорректировал свои планы и оценил вашу честность.
    Ответ написан
    Комментировать
  • Как научится понимать Bitrix за один вечер?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Найдите подходящий скринкаст на Ютубе
    Ни пуха ни пера вам -- для верстальщика это будет испытание:)
    Там не все так просто, как с обычными легкими цмс, у которых есть шаблоны

    Время на теорию у меня всего один вечер (а скорее всего ночь).

    Помимо Битрикса вам нужно изучить методологии разработки, в частности ФФФ, где подразумевается ТРЕЗВАЯ оценка и договоренность по времени с запасом, чтобы не планировать ВПРИТЫК (я молчу про дичайший дедлайн в один вечер), тк в ее основе лежит принцип:
    "Всегда пойдет все не так, как задумал, тк живем среди живых людей и что-то обязательно сдвинет сроки"

    - Пообещали сделать за вечер и сделали за вечер -- всего лишь выполнили обещанное (хотя вам это много стоило)
    - Пообещали за вечер и сделали за 3 -- вы облажались в 3 раза
    - Пообещали сделать за неделею и сделали за вечер или за 3 -- вы супер обслужили быстрее в разы и потрясли заказчика
    Выбирайте
    Ответ написан
    1 комментарий
  • Как ускорить загрузку веб-страниц?

    rim89
    @rim89
    программист-велосипедист
    да много чего есть:
    - перехода на HTTP/2
    - анализ работы бэкенда, базы
    - анализ вкладки Network в хроме
    - вариации компрессии картинок
    - вынос части функционала в асинхронную загрузку
    ...
    Ответ написан
    Комментировать
  • Как ускорить загрузку веб-страниц?

    tema_sun
    @tema_sun
    Сначала узнайте, что у вас медленно работает, а потом уже улучшайте. А то я могу посоветовать вам правильно настроить postgres, а у вас sqlite в проекте.
    Ответ написан
    Комментировать
  • Как обезопасить проект с полностью раздельным фронтендом и бекендом?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Тут две задачи стоит:

    - обезопасить общение между клиентом и фронтендом
    - обезопасить общение между фронтендом и бэкендом

    Первое делается известными методами, я думаю их перечислять не надо.

    Второе можно делать по-разному:

    - можно организовать закрытую сеть между всеми серверами (варианты разные: от vpn, до физически отдельной сетки).
    - можно делать https соединения, проверяя сертификаты друг друга
    - можно подписывать сообщения, например с помощью https://en.wikipedia.org/wiki/HMAC

    Можно даже всё вместе сделать - зависит от уровня паранойи.

    Передавать креды пользователя в открытом виде, само собой, нельзя. Нужно обезопасить само соединение (например, https использовать) или сами креды (шифровать ключом, известным только фронтенду и бекенду).
    Ответ написан
    6 комментариев
  • Как обезопасить проект с полностью раздельным фронтендом и бекендом?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    Какие еще вопросы по безопасности нужно закрыть?

    ровно всё тоже самое что и при монолитном приложении.
    пишите нормальный код без дыр в виде sql инъекций и всякого такого.

    Насколько это безопасно и как защититься от подделок запросов в целом?

    для вас неважно подделка это или нет.
    Запросы выглядят одинаково и в случае отправки с сайта, и в случае отправки например каким-нибудь скриптом "злоумышленника".
    Если надо защиту, то делайте проверку авторизации и лимит на количество запросов.
    Больше вы ничего не сделаете.

    В общем разделение не переворачивает весь сайт с ног на голову, это все тот же сайт со стандартными "угрозами" и защитой от них.
    Ответ написан
    4 комментария
  • Как работает mysql limit?

    Melkij
    @Melkij
    PostgreSQL DBA
    Потому что верное описание синтаксиса limit дано в первой статье.
    Что проверяется первоисточником https://dev.mysql.com/doc/refman/8.0/en/select.html
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]


    Формируется выборка из row_count + offset числа строк, затем первые offset строк отбрасываются и в результирующий набор попадает не более row_count строк.

    Без явно указанного order by выборка смысла не имеет вообще, СУБД по стандарту имеет право отдавать любые удовлетворяющие запросу данные в любом порядке по своему усмотрению. Соответственно offset будет взять непонятно откуда и непонятно как.
    Ответ написан
    Комментировать
  • Какие существуют алгоритмы расчета рекомендованной цены?

    @Xilian
    Программист 1С, сетевые технологии, SQL
    >>Какие способы существуют, какую литературу посоветуете?

    Советую 5 лет в ВШЭ. Дефицитку, запасоемкость, логистику по поступлению, доп затраты, уровень лояльности никто за 5 минут объяснить на пальцах не сможет.

    Товар стоит ровно столько, за сколько его согласны купить.
    Ответ написан
    Комментировать
  • Локальный сайт (страница) для работы с БД?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Десктоп приложение на https://electronjs.org/ (сможете использовать привычные web технологии) + https://pouchdb.com/ для хранения данных.
    На сервере couchdb.apache.org для прозрачной синхронизации при появлении сети.
    Ответ написан
    2 комментария
  • Хочу создать проект. Направляйте. Можно ли записывать на магнитную карту данные?

    Jump
    @Jump
    Системный администратор со стажем.
    Можно ли записывать на магнитную карту данные?
    Да.
    можно ли запрограммировать кард ридер таким образом, чтоб он не только считывал, но ещё и записывал данные на карту
    Нет.
    Возможно, можно использовать не магнитные карты
    Вполне, например перфокарты.
    Ответ написан
    Комментировать