• Чем опасны кастомные прошивки и рут права?

    @vashaaa
    Юх с горы
    Фильтруйте устонавливаемые приложения и все будет окей. С плеймаркета каку скачать нельзя, а вот когда на прямую с интернета, бывают случаи что нечесный программист положил туда свое приложение, чаще для рекламы, реже для таких вот атак что вы говорите. Ставьте рут, сейчас по моему только домохозяйки без рута живут.
    Ответ написан
    2 комментария
  • Нужно ли делать дизайн мобильной версии или верстальщик разберется?

    Ankhena
    @Ankhena Куратор тега Вёрстка
    Нежно люблю верстку
    Нужно ли рисовать мобильную версию:
    зависит от
    - дизайна
    - содержимого
    - квалификации дизайнера
    - квалификации верстальщика (и возможно сотрудничества дизайнера, чтобы дорисовать какие-то иконки/мелочевки по требованию верстальщика)
    - аудитории сайта и % пользователей с мобильников

    Делать ли отдельную мобильную версию:
    - если контент существенно отличается - ДА
    - если нет или скрыты лишь некоторые несущественные блоки - делать адаптивный

    Бутстрап
    - зло :)
    Ответ написан
    4 комментария
  • Как работать с сокетами в несколько потоков?

    Существует 3 основных подхода.
    1. То, что вы имеете ввиду - после accept() создавать отдельный поток на каждого лиента и обрабатывать пришедший коннект в нем.
    2. Использовать один поток, переводить сокеты в неблокирующий режим и использовать select() или poll() / epol() / ... для обнаружения данных поступивших в сокет и их обработки
    3. Использовать модель с несколькими worker'ами. Запускать несколько потоков-worker'ов работающих так же как в п.2, распределять входящие коннекты между ними. Обычно так пишут серверы для достаточно большой нагрузки.
    Достаточно подробный ответ есть здесь: https://www.opennet.ru/base/faq/prog_faq.txt.html, см. "как писать сервера".
    Ответ написан
    1 комментарий
  • Что делать дальше?

    Rou1997
    @Rou1997
    Применяйте уже языки в реальном деле, деньги зарабатывать пробуйте, нет у C++ и C# никакого "конца", есть свой круг задач.

    или я всё забуду за этот время .

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

    mrbagfreeman
    @mrbagfreeman
    Начинающий быдло кодер
    Нет, самое главное не зубрежка, а практика.
    Вам нужно научиться применять эти языки в деле.
    Лучший вариант - это выбрать единственный язык и начать изучать его глубже.
    Ответ написан
    Комментировать
  • Как узнать скорость подключения клиента к сайту и дать соответствующий контент?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Идеального пути определения качества соединения нет.
    Есть ограниченная поддержка NetworkInformation. Это наилучший подход, но он пока в ранней стадии разработки.

    Классический способ определения скорости описан тут.

    Разумный вариант - использовать легковесную посадочную страницу и расширенную версию с тяжелым контентом.
    Слушать про onload секунду, если за секунду оно не наступает останавливаться на легковесном варианте, в противном случае грузить все остальное.
    Вы также можете рассмотреть использование критического пути (минимально необходимого CSS), который включен в тело страницы изначально. Как только страница загружена, можно включать загрузку остального содержимого.
    Еще можете замерять время загрузки страницы в браузере используя Navigation Timing API. Если оно больше определенного порога, то загружать тяжелый контент, например видео.

    В целом путей решения поставленной задачи немного, но достаточно.
    Сфокусируйтесь все же на оптимизации сайта или страницы. Поставьте себе планку, например 200кб и оптимизируйте сайт для нее. От этого выиграют все: и ваши пользователи, и серверная часть тоже.
    Ответ написан
    Комментировать
  • Как узнать скорость подключения клиента к сайту и дать соответствующий контент?

    @lubezniy
    Подход считаю неверным. Канал может быть и шустрым, но с платным и дорогим для пользователя трафиком. Как вариант, дайте пользователю минимальную версию и позвольте ему самому решить, надо ли ему какие-то плюшки в более высоком качестве.
    Ответ написан
    Комментировать
  • Как называется эта мода на чистый HTML без наворотов (читал про это недавно)?

    Вы, вероятно, не так поняли статью. content-first предполагает минимально нагруженный интерфейс, но никак не использование одного html.
    Оформление, пусть и минимальное, должно быть, а делать его на html - просто ужасная практика.
    Ответ написан
    2 комментария
  • Как называется эта мода на чистый HTML без наворотов (читал про это недавно)?

    Нормальный проект без CSS не сделаешь. Например, большой портал. Без JS спокойно можно обойтись. Но без CSS мы все вернемся в 90-е, где такими сайтами кишило. Современная молодежь будет "фекать" на такие сайты. Да, можно и на чистом HTML делать, но сайт по продаже ювелирных изделий, где пасутся только один блондинки с розовым взглядом на мир, вызовет только отвращение, чем пользу. Можно сделать сайты для чтения книг онлайн на чистом HTML. Там CSS нафиг никому не нужен.

    Сейчас сайты грузят ненужными Javascript-ами. Даже взять те самые темы вордпресса. Как там пишут в описании: harder, better, faster, stronger...... А там столько скриптов и паралаксов навешано, что среднячковый комп, бедолага, вешаться начинает.... Эх..

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

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    1) Выбрать и настроить IDE. Освоиться в ней.
    2) Научиться работать с системами контроля версий.
    3) Научиться учиться. Выучить английский, научиться пользоваться гуглом.
    4) Научиться писать код.
    5) Научиться дебажить свой код.
    6) Научиться тестированию кода.
    7) Понять, как работает компьютер, сетевой стек, браузер, как устроены базы данных, как работает компиляция. Освоить DevOps.
    8) После 7 пункта уже можно учиться оптимизировать свой код.
    9) Научиться решать задачи, а не тупо писать код. Разобраться, когда и где и как использовать разные технологии,
    10) Научиться работать с людьми. Научиться продавать себя и свой продукт.
    11) Выкинуть хлам из дома.
    12) Старых позвать друзей.
    Ответ написан
    1 комментарий
  • Связь кадровой частоты и частоты развертки или бывает ли больше 60 fps?

    Jump
    @Jump
    Системный администратор со стажем.
    Разницу почувствовать можно.
    По той простой причине, что частота обновления монитора постоянная, а FPS это усредненная величина.
    100 FPS - это не значит что каждую сотую долю секунды генерируется новый кадр.
    Это значит что один кадр может генерироваться пол секунды, а потом 99 кадров за следующую половину секунды.

    Так что смысл в повышении FPS есть вне зависимости от частоты обновления монитора.
    Ответ написан
    Комментировать
  • Связь кадровой частоты и частоты развертки или бывает ли больше 60 fps?

    @moozooh
    Chief Technical Grammar Nazi
    Частота обновления монитора — то, сколько разных кадров он способен отобразить за секунду. Частота кадров в играх — то, сколько кадров за секунду отправляет на монитор видеокарта. Должно быть очевидно, что, если монитор может обновлять изображение только 60 раз в секунду, то, хоть убейся, видимой разницы не будет. Она будет, только если подключить монитор с расширенной развёрткой (существуют игровые ЖК-мониторы на 120 Гц, например, или ЭЛТ, где этот параметр на низких разрешениях мог доходить до 250 Гц) или попробовать разогнать матрицу; сильного прироста это не даст, но риск её испортить — есть. Обычно матрицу разгоняют, чтобы довести её до частоты, кратной 23,976 (например, 71,928 Гц) чтобы можно было смотреть фильмы без подёргивания; критичного прироста плавности в играх этим не добиться, а если она таки позарез нужна, то следует просто купить монитор на 120+ Гц.

    Чем может быть полезно повышение частоты кадров относительно частоты развёртки:
    1) уменьшается погрешность задержки вывода кадров (чисто гомеопатически — гораздо сильнее влияет матрица монитора, тип его подключения, частота опроса порта, к которому подключены устройства ввода, буферизация в настройках видеокарты и т. д.), которая в особо динамичных играх может ощущаться в виде задержки реакции на нажатие кнопки;
    2) в некоторых играх повышается точность/гранулярность обработки происходящих событий (например, физики передвижения, как в Half-Life) и искусственного интеллекта;
    3) разогретая видеокарта создаст уют в холодный зимний вечер, а батарея ноутбука раньше напомнит вам о существовании реальной жизни.

    Ну и стоит помнить, что счётчик кадров в секунду показывает текущее или среднее значение; в идеале железо должно обеспечивать эту частоту на уровне не ниже развёртки монитора во всех ситуациях — без просадок. Поэтому правильным решением будет снизить настройки графики в игре до того уровня, при котором fps никогда не опускается ниже 60, и затем ограничить значение сверху при помощи RivaTuner или чего-нибудь подобного, чтобы электричество и ресурс железа почём зря не жечь.
    Ответ написан
    Комментировать
  • Как работать с датами?

    Stalker_RED
    @Stalker_RED
    timestamp - это не милисекунды, а секунды. Соответственно неделя это 60*60*24*7.
    Но это довольно грубый метод, он не учитывает перевод на летнее/зимнее время, високосные секунды и т.п..
    Поэтому лучше использовать что-то типа strtotime('-20 days'); как советует Александр N++.
    Ответ написан
    Комментировать
  • Как нужно делать рассылку со своего сайта (сервера)?

    @xtreme
    Снимаю порчу по SSH :)
    1. Изучить рекомендации по рассылкам у крупных почтовых сервисов (Google, Yandex, Mail.ru). При подготовке писем для рассылки строго следовать их рекомендациям.
    2. Зарегистрироваться в postmaster.yandex.ru, postmaster.mail.ru, чтобы следить за ходом рассылки писем.
    3. Отлавливать недоставленные письма, убирать их из листов рассылки, дабы не мусорить.
    4. Сделать механизм отписки от рассылки (это один из критериев пункта 1), причем 100% работающий в один клик.
    5. Мониторить нажатие кнопки "Спам" в вышеуказанных почтовых сервисах, также сразу исключать их из будущих рассылок.

    1к подписчиков - это мелочь. Можешь пробовать отсылать сразу все письма на свой почтовый релей (для 1к хватит и одного релея), даже почти дефолтно настроенный MTA будет рассылать с нужными интервалами.

    Обязательное условие - соблюдать все почтовые правила и не пренебрегать цифровыми подписями - SPF, DKIM, DMARC, правильные записи в DNS (A, MX, PTR).
    Ответ написан
    10 комментариев
  • Как вы освоили шаблоны проектирования?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Когда начался бум и восторг вокруг концепции паттернов проектирования, выкрики "GoF рулит!" и так далее, я озадачился тем, чтобы понять, что за шум?

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

    По аналогии в проектировании софта имееются свои архитектурные вопросы вроде разбиения приложения на компоненты/модули, организации зависимостей между ними, распределение функциональных обязанностей и т.п. Как ловко подметили авторы книжки из этой банды четырех (The "Gang of Four") в нашей индустрии можно также выделить некоторе количество типовых шаблонов, проверенных на практике, чтобы тем самым не наступать на уже обойденные другими грабли.

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

    Чтобы понять, где они нужны - нужен опыт. То есть (я лично убежден), что учиться на ошибках других может только крайне ограниченное число людей. Все остальные обязаны набить шишки самостоятельно :)

    К изучению паттернов я дам такие советы:

    1) Прочтите пару книжек, чтобы понять, что это за зверь и с чем его едят. Можно взять одну из вариаций книжки GoF или какие-то производные для вашего стека разработки - познакомиться с основными популярными шаблонами. Сразу после этого я посоветовал бы прочесть книжку "Горький вкус Java" (Брюс Тейт) - она про анти-паттерны. Это чтобы понять обратную сторону их использования. Мне понравилась и уберегла думаю от многих проблем. То что на примере Java - неважно. Речь идет о шаблонах, так что представителям других стеков (к которым отношусь и я) будет просто понять все равно.

    2) Постарайтесь осознать, доводилось ли вам сталкиваться в работе раньше с чем-то, что является или могло бы легко стать одним из шаблонов. Где получалось применить концепт верно, а где из-за этого только проблемы были.

    3) В новых проектах, держите в голове полученные по шаблонам знания - вдруг пригодятся.

    В конечном итоге, знаете ли вы паттерны, или нет - с опытом приходит понимание того, какая архитектура будет правильная, а какая - нет. Как сделать удобно, а как нет. И неважно, какими паттернами это обозвать.

    Я даже пожалуй посоветовал бы подойти к освоению айтишной архитектурной мудрости с другой стороны - со стороны нефункциональных требований или так называемых "-ilities" - их много. Тут вот описаны 7 штук. А вообще их десятки.

    Среди прочих - такие как maintainability (простая поддержка кода), scalability (масштабируемость), extensibility (расширяемость), availability (устойчивость ) и тп. Если, проектируя свое приложение, вы задумываетесь об этих "илитях" и стараетесь их обеспечить в необходимом проекту объеме, то, как правило, ваше приложение будет иметь отличную архитектуру. При этом шаблоны проектирования в ней появятся лаконично сами собой.

    Поскольку идея использовать шаблоны - это попытка опытных программных инженеров дать десяток готовых рецептов менее опытным, чтобы пока они не научились варить "вкусную кашу", они не варили уж что-то совсем несъедобное. :) Учитесь "готовить", разбирайтесь в -ilites :) и все будет хорошо
    Ответ написан
    6 комментариев
  • Были ли случаи осуждения за Tor Exit-node в России?

    starius
    @starius
    программист, аспирант МГУ
    https://www.torproject.org/docs/faq#FacingLegalTrouble - как доказать, что вы были Exit-нодой в определённое время.

    Опыт арестованного оператора тора (Австрия): raided4tor.cryto.net
    Но он помимо тора держал дома наркотики и оружие.

    Какое именно ведомство вас пригласило?

    Держите сообщество в курсе. Будет хорошо (в том числе для вас), если об актах полицейского произвола станет известно наибольшему числу людей. Желаю вам успешно разобраться с обвинениями!

    (Оффтоп) дома держать неудобно, как и в РФ вообще. Если уж очень хочется, то дома надо держать промежуточную ноду, а выходную - на сервере, расположенном в другой стране.

    (Оффтоп2) Кстати, правильно писать Tor, а не TOR.
    Ответ написан
    6 комментариев
  • Как работает алгоритм ранжирования друзей в списке ваших друзей Вконтакте?

    @Richard_Ferlow
    Веб-программист
    Там не только это учитывается. а еще просмотры фотографий, интерес к записям в новостях, кол-во и частота сообщений, что-то еще, возможно.
    Ответ написан
    5 комментариев