• Программирование Android: Отправка данных GPS на сервер. Управление роботом на arduino через bluetooth?

    @nirvimel
    Очень много разных проблем затронуто в одном вопросе. Вопрос надо как-то лучше структурировать.
    1. С чего вы взяли, что GPS работает под водой?
    2. Bluetooth также абсолютно непригоден для этой задачи. Он то и на воздухе в лучшем случае на несколько метров бьет.
    3. Теоретически для связи на небольших глубинах (десятки сантиметров, только чтобы с поверхности не было видно) можно использовать КВ (совсем маленькая глубина пробивания), СВ (слишком большие габаритами антенны) или ДВ (при огромной мощности передатчика пробьет многометровую воду, но нужны нереально огромные габариты антенны), но практически таких готовых решений на рынке не существует.
    4. Для связи с подводными объектами лучше использовать акустический катал связи. Вода отличный акустический проводник по сравнению с воздухом. Еще один положительный момент такого решения: на мощность акустики для гражданского применения не существует таких ограничений, какие действуют на мощность передатчиков в радиоэфире, то есть вы совершенно законно можете испускать под водой импульсы любой мощности, которую только можете создать, если не причиняете этим никому ущерба (ответственность за ущерб никто не отменяет).
    Ответ написан
    7 комментариев
  • Насколько реально продвижение сайта без рекламы?

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

    «Хочу чтобы сайт моей компании поднялся на первую страницу в гугле, но я не готов платить тысячу долларов в гугл эдвордс и метрику. Как сделать продвижение без вложения?»

    А вот это типичное мышление "клиентов" этих шарлатанов, про таких говорят: "они так любят халяву, что готовы платить за нее любые деньги".

    Тем не менее естественное продвижение в выдаче возможно, для это нужно:
    1. Много уникального контента, релевантного запросам, по которым идет продвижение. Магазины и лэндинги в этом смысле пролетают.
    2. Behavior посетителей на странице (выход через несколько секунд после захода - признак нецелевого трафика). ПС "чувствуют" это через свои трекалки, типа google-analitics.
    3. Интеграция с социалками и лайки живых людей. ПС это хорошо "чувствуют".
    4. В этом деле еще много тонкостей, не сводящихся к тупой оптимизации ключей.
    Ответ написан
    Комментировать
  • Как изучать параллельно две технологии?

    @nirvimel
    Целых две технологии, какой ужас!
    Вот когда у вас останется один неизученный язык в ТОР10, тогда перед вами встанет реально непростой выбор: стоит ли изучать язык с отвратительной архитектурой только для того чтобы иметь право уверенно заявлять: "Я, конечно, знаю ***, но он не пригоден для написания стабильных и масштабируемых решений".
    Ответ написан
    Комментировать
  • Почему вылетает исключение при выносе кода из метода __del__ в change_extension()?

    @nirvimel
    Python не C++, в Python НЕТ деструкторов (в смысле C++), которые вызываются гарантированно. __del__ - не прямой аналог деструктора C++, его поведение зависит от GC, он может вызываться в любой момент, и в общем случае нет никакой гарантии что он вообще будет вызван. В общем, __del__ в Python - плохая практика.
    Что же делать:
    1. Надо стараться реорганизовать код так, чтобы объект, требующий финаллизации, использовался через with(your_object). Надо следовать хорошим примерам, например, file object, работа с которым идет через with(open('workfile')).
    2. Если совсем не получается свести к логику кода к такой модели, то можно объявить метод close() и вызывать его вручную. Но если ваш код размазан так, что в него не получается вкрутить with, то нет гарантий что на какой-то ветке алгоритма вы забудете вызвать этот close().
    3. Худший вариант: оставить таки __del__. Нигде не вызвать его явно, просто бросать объекты после использования. По окончанию исполнения скрипта, GC подберет их и вызовет всем __del__, но только в том случае если между ними нет циклических ссылок, но в достаточно крупной программе это вообще невозможно гарантировать.
    Ответ написан
    Комментировать
  • Какой протокол передачи данных наиболее интересен в сфере информационной безопасности?

    @nirvimel
    SSL - банальная вещь, но он был и остается краеугольным камнем безопасности всего Интернета.
    Ответ написан
    Комментировать
  • Как получить данные из потоков обратно в main в java?

    @nirvimel
    Для этого существует очередь LinkedBlockingQueue.
    Потоки пишут в нее возвращаемые значения, промаркированные id задания.
    main читает из нее и восстанавливает массив возвращаемых значений по их id, не опираясь на порядок элементов в очереди, который ничем не гарантирован.
    Ответ написан
    Комментировать
  • Как организовать параллельную работу по сети с несколькими устройствами?

    @nirvimel
    1. Подобные сервера лучше писать не на потоках threading (которые все равно упираются в GIL), а на "зеленых" потоках, например gevent, который создан для решения задач, подобной вашей, с максимальной производительностью.
    2. Проблему зависания потоков в вечном ожидании решает настройка keepalive: клиент обязуется передавать пустые пакеты раз в n секунд, если ему больше нечего передавать. А сервер делает socket.settimeout(n+10) и при вызове recv отлавливает исключение socket.timeout, которое сигнализирует, что клиент "отвалился".
    Ответ написан
    Комментировать
  • Windows 7, PyCharm 5.0.1, как превратить в EXE файл?

    @nirvimel
    Ответ написан
    Комментировать
  • Как запустить java «.class» из PHP?

    @nirvimel
    Для начала Java должна стоять на сервере. На shared hosting, естественно, ничего не получится. После установки Java, сможете так exec('java -cp . YourClass'); запускать YourClass.class, в котором определен класс YourClass в котором определен метод public static void main(String[] args):
    Ответ написан
    Комментировать
  • Какие потоки вводы/вывода использовать в клиент-серверном приложении (TCP)?

    @nirvimel
    Вам нужны Protobuf, BSON, JSON или Thrift.
    И забудьте о ObjectInputStream.

    UPD: Сравнительный бенчмарк.
    Ответ написан
    7 комментариев
  • Возможно ли "потоковое" скачивание множества файлов с сайта?

    @nirvimel
    Можно использовать TAR в качестве архива. Это дает:
    1. Нулевую дополнительную нагрузку на сервер по причине отсутствия компрессии.
    2. Возможность программно писать такой "архив" на лету прямо в открытое tcp соединение (со вставкой HTTP-заголовков в начале).
    3. Возможно даже написать докачку архива после обрыва соединения через "206 Partial Content" и "Content-Range:", также на лету, мгновенно, без переборки архива от начала. Это нетривиальная задача, но вполне решаемая.
    Ответ написан
    6 комментариев
  • Если алгоритм зависит от порядка вызова функций в блоке, это не есть хорошо?

    @nirvimel
    Это называется Side Effect.
    В императивном программировании при работе с mutable структурами/объектами ничто не гарантирует от side effect, то есть порядок вызовов всегда может иметь значение (по крайней мере всегда стоит ожидать этого от чужого кода).
    Противоположностью являются "чистые" вычисления, гарантирующие отсутствие side effect. Это достигается:
    - в императивном программировании: переходом к использованию только immutable структур/объектов.
    - в декларативном программировании: многие языки "чистые" из коробки, это их неотъемлемое свойство.
    Ответ написан
    Комментировать
  • В Казахстане внедряется система глобального перехвата HTTPS-трафика?

    @nirvimel
    Сколько вы платите в год за интернет? Думаю, ваш бюджет не сильно пострадает, если вы добавите к этой сумме еще 15$ в год за VPS, на котором поднимите VPN.
    Ответ написан
    Комментировать
  • Всем привет. Поступил в вуз, по специальности "Прикладная информатика" (в экономике). Хотелось бы узнать, какие из списка предметов нужно изучать?

    @nirvimel
    Какие совсем не нужны и не понадобятся в работе

    Безопасность жизнедеятельности - не понадобится в работе, но может понадобиться в жизнедеятельности.
    Ответ написан
    Комментировать
  • Реально увеличить производительности 1с?

    @nirvimel
    Если вы уверены что узком местом является именно ввод/вывод с HDD, то логичным решением является постановка SSD в качестве кеша перед HDD. Реализовано это может быть различными путями: на Linux это легко делается программно, на других Windows только аппаратно при поддержке железа (современные ципсеты от Intel умеют это).

    UPD: Еще раз прочитал это:
    6 баз, каждая по 12-15гб

    Тут очевидное решение: При таких незначительных объемах нужно смело выбрасывать HDD и ставить SDD, за 120 Гб цена будет вполне приемлемой.
    Ответ написан
    Комментировать
  • Области применения JS в современном IT?

    @nirvimel
    Кроме js вы пробовали только php, и этот горький опыт заставил вас остановить свой выбор на js? Не стоит на таком примере делать выводы обо всех других языках. В сфере профессионалов принято не подыскивать новые задачи под единственный известный язык, но, наоборот, подбирать (и изучать при необходимости) язык исходя из стоящих задач. Прежде чем останавливать свой выбор на каком-то конкретном языке или стеке технологий вам нужно сначала определиться с тем кругом задач, о области которых вам интересно работать, и потом подходить к выбору инструментов для решения этих задач. Все зависит от того что вас интересует: web-разработка, фронтэнд, бекэнд, десктопные приложения или мобильные, разработка игр, больше/меньше заниматься пользовательским интерфейсом, может быть, системное программирования?
    Ответ написан
    7 комментариев
  • Какова грань выражения эмоций через иконки?

    @nirvimel
    Грань определяете вы сами как владелец площадки. Прописываете в EULA полную ответственность юзера за все свои действия и за причиненный этими действиями ущерб третьей стороне и вам, как площадке. Юзер дает вашим модераторам право по своему усмотрению редактировать/блокировать/удалять результаты любых его действий на вашей площадке и любой контент, им загруженный (за содержание которого он несет ответственность сам). Можете скопировать эти фрагменты из EULA гугла/фейсбука/др.
    Дайте юзерам возможность самостоятельно жаловаться на действия друг друга. Разработайте процедуру обработки подобных жалоб. Наймите модераторов, которые будут заниматься обработкой жалоб, и удалением тех постов/юзеров, которые вызывают наибольший поток жалоб в свой адрес.
    Все крупные площадки так работают и этим защищены от любых судебных исков.
    Ответ написан
    Комментировать
  • Как расположить элементы в java?

    @nirvimel
    Ответ написан
    Комментировать
  • Как проанализировать программу на уязвимость?

    @nirvimel
    Реверс-инжиниринг - это цела индустрия. Там крутятся огромные деньги. Специ годами ковыряют чужой код в поисках уязвимостей. Каждая свеженайденная еще неспаленная (и неприкрытая разработчиком) zero-day уязвимость стоит десятки, иногда сотни (дыры в ОС) тысяч долларов. Даже АНБ не брезгует их скупать на черном рынке (у Сноудена об этом что-то было).
    А вы говорите "программы-анализаторы"... Если бы такая программа существовала, то это был бы просто станок, печатающий деньги.
    Ответ написан
    2 комментария
  • Какой выбрать дешевый/примитивный GSM-модем?

    @nirvimel
    Наверное, вы имеете в виду GPRS-модем (GSM - протокол передачи голоса, модем - устройство передачи данных). Сегодня на рынке в основном 3G-модемы. Чистые GPRS могут стоить даже дороже (это редкое legacy и если у покупателя нет выбора, то он платит столько сколько просят). Но есть простое решение - (почти) любой старый телефон со шнурком USB (разъем на самом телефоне может быть не похож на USB) можно перевести в режим AT-команд (основной режим - внешний накопитель) и использовать как GPRS-модем.
    Ответ написан
    Комментировать