Задать вопрос
  • Взаимодействие клиент-серверного приложения на C, сайта на PHP и стороннего сайта

    ответ кроется в понимании http протокола. Давайте по частям:

    1) передача сторонний сайт — ваш сайт. Тут все просто, сайты написанные на php в общем случае взаимодействуют по http. Есть какие-то экзотические варианты с сокетами в php но по моему надо использовать инстурмент сообразно его предназначению. Итак к делу. Сторонний сайт делает на ваш сайт http запрос, предавая в post (или гет) необходимую информацию. Скорее всего защищая её передачей хэш суммы с некотрой известной только сайтам солью. Например так:
    your-site.ru/api/setNumber?num=10

    2) Передача ваш сайт-ваше серверное приложение. самая сложная часть. Секрет кроется в том, что возможности php по работе с хостовой системой очень ограничены. Не уверен что php сможет послать например сообщение другому процессу на серверной системе. Тут обмен может быть реализован например так: php запускает какую-нибудь микропрограмму с параметрами, которая передает программе-серверу информацию, например послав системное сообщение (это правда черевато проблемами безопасности, разрешать php запуск программ довольно опасно). Либо php пишет информацию в некотрую БД а программа-сервер постоянно эту БД просматривает на предмет наличия новой информации.

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

    Теперь поехали назад:
    1) клиентское приложение — серверное приложение
    Уже обсуждалось. У нас есть открытый сокет, по нему и отправляем.

    2) серверное приложение — ваш сайт.
    А вот приложению отослать информацию вашему сайту очень просто, достаточно сделать из серверного приложения http запрос на ваш сайт.

    3) ваш сайт — сторонний сайт
    снова просто — http запрос из вашего php скрипта на на сторонний сайт

    Обратите внимание, что если для передачи «туда» все элементы цепочки важны: сторонний сайт скорее всего может сделать только http запрос, значит нужен ваш сайт который его примет. Ваш сайт не сможет держать сокет и послать информацию в программу клиент — нужна ваша программа сервер. То при походе обратно можно смело исключать любой из пунктов: ваша программа сервер может сама, без помощи вашего сайта, сделать запрос на сторонний сайт. Больше того программа клиент сама может сделать запрос на сторонний сайт и вообще можно выкинуть из обратного пути вашу программу-сервер и ваш сайт. Естественно все это надо защищать шифрованием от чтения и солями от подделки. (как подумайте сами, все довольно просто :) )

    Тут уже надо смотреть из организации системы. Я бы оставил программу-сервер как основной обработчик апи, а ваш сайт сделал бы максимально простым с единственной функцией передачи информации в программу сервер.

    Это если говорить о вашей схеме: в жизни скорее всего «ваш сайт» вообще не существует, а «программа сервер» имеет модуль апача или сама по себе слушает соответствующий порт и отвечает на http запросы. Чтобы исключить затык с передачей информации из php в программу сервер. Это место будет все время глючить. Т.к. php для этого банально не предназначен. А в случае реализации с опросом БД будет дополнительная задержка.
    Ответ написан
    4 комментария
  • Новый сервис: код "с нуля" или php-фреймворк?

    помоему писать код с нуля не используя фреймворк стоит только в том случае если вы пишите фрэймворк. И то не всегда.
    Ответ написан
    2 комментария
  • Поиск наиболее подходящих наборов из последовательности (очень много сочетаний)

    А в чем проблема посчитать биты в последовательности длиной 1024 бита? Они у вас в чем хранятся? Я думаю в конце эта задача сведется к 1024 сдвигов. Загрузите в их в 32 long'а и пробегитесь по массиву.

    long[][] myArray = new long[43000][32];
    int[] bitsCount =  new int[43000];
    
    //загружаем в 32 лонга свою последовательность. 32*4*8 = 1024 бита
    <тут ваш какой-то код>
    
    //определяем количество установленных бит
    for(int i = 0;i<43000;i++)                   //цикл по всем последовательностям
       for (int j = 0;j<32;j++)                    //цикл по всем long'ам
          for(int k = 0;k<32;k++)                //цикл по всем битам лонга
             if((myArray[i][j] >> k) & 0x1)
                bitsCount[i]++;
    
    //дальше сортируем массив bitsCount и берем N верхних. Или оптимизируем сортировку чтобы она не полностью сортировала, а только искала N верхних
    
    //???
    
    
    //PROFIT!
    


    Работать будет не очень долго. Уж точно не пару дней. Или я задачу не понял?
    Ответ написан
  • Delphi на хабре мертв?

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

    ну самые известные bitrix, netcat.

    Мы используем битрикс.
    Ответ написан
    2 комментария
  • Когда оправдано использование публичных полей в PHP?

    Тогда же когда и в любом другом языке. Чем php в этом выделяется?

    Тогда когда вам необходимо задавать какие-то параметры объекта извне. Или вопрос в том, что можно вместо публичных полей использовать публичные методы вида $myObj->GetName(); $myObj->SetName(«New Name»); или публичные __get и __set? Ну, если никакой немедленной реакции объекта на изменение значения не нужно, почему бы не использовать поля? Простое присваивание или чтение переменной будет быстрее чем вызов метода или темболее использование __get и __set внутри которых все тоже присваивание или чтение переменной.

    Или вы вообще от публичных полей предлагаете отказаться? А как объектом то тогда управлять? :)
    Ответ написан
    2 комментария
  • Можно ли опубликовать топик с кармой == 4?

    И не отвечать в комментариях к постам, тем самым ставя под угрозу свою карму :-) Там чаще минусуют чем плюсуют. В q&a наоборот.
    Ответ написан
    Комментировать
  • Китайский телефон с андроидом?

    у всех что я видел процессоры слабоваты.
    Вот неплохой телефон, но в нем
    CPU: Media Tek MT6516 ARM9 + ARM7 (460MHz + 280MHz)
    RAM:256M,ROM:512M,extend to 16GB max

    Притормаживать будет андроид :)
    Ответ написан
    Комментировать
  • PHP библия

    Не в качестве библии, а просто как хорошую книгу по PHP могу посоветовать вот эту:
    www.kocby.ru/post/webmaster/php-mysql/welling/

    А библия для любого программиста, на мой взгляд это lib.mexmat.ru/books/77
    Ответ написан
    Комментировать
  • Как сегодня модно хранить HTML в Яваскрипте? MVC уже изобрели?

    closure templates очень советую. Работают в нескольких боевых проектах. Хостятся на code.google.com точную ссылку могу дать когда за компьютером буду :-)
    Ответ написан
    Комментировать
  • Какого оператора с безлимитным интернетом выбрать для ipad?

    Я для своего коммуникатора выбрал МТС с их «Безлимитным интернетом с телефона». Это обычная «безлимитка» с ограничением 5Мб в час и 70Мб в сутки. Потом тоже работает но скорость режут до безобразия. Мне хватает. Стоит все удовольствие 200р в месяц.
    Ответ написан
    Комментировать
  • Примеры использования слабоструктурированных данных

    ну, пример лежащий на поверхности — конфигурационные файлы.

    Кстати причиной выбора такого хранилища может стать не только слабая структурированность но и часто меняюшаяся схема.

    Например, профили пользователей. Сегодня они хотят icq, а завтра какой-нибудь идентификатор в МоемКруге. Нужно выносить все эти поля во вспомогательную таблицу или часто править схему.

    Очень хорошо идея документоориентированных хранилищ подходит для создания универсальных cms. Там при разработке конкретного сайта приходится дополнять стандартные схемы дополнительными полями, которые хранятся во вспомогатеьльной таблице. Одно поле — одна строчка. В реальном проекте у меня количество полей доходило до ста.

    В cms с документоориентированными хранилиищами эта проблема проблема решается намного элегантней: вы просто описываете схему, а документ всеравно сохраняется в виде одного документа.
    Ответ написан
    Комментировать
  • На что обратить внимание при покупке нетбука б/у?

    На тоже самое на что и при покупке любой техники:
    -наличие сколов\царапин, особенно вмятин. Если ноут роняли я бы не стал его покупать.
    -наличие битых пикселей или других дефектов экрана
    -соответствие конфигурации заявленной продавцом
    -ресурс батареи (либо эверестом, либо просто включите, засеките сколько осталось %, проведите все другие оценочные манипуляции, это займет хотя бы десять-пятнадцать минут, и посмотрите на сколько села батарея). Для нетбука время автономной работы один из самых важных параметров.
    -проверьте работу всех кнопок
    -проверьте работу всей периферии которой сможете: вебкамера, кардридер, даже usb порты и разъем для наушников
    -в случае обнаружения дефектов не стесняйтесь торговаться, если продавец легко и быстро идет на уступки: насторожитесь и ищите тщательней
    -слушайте внутренний голос. Он не врет :-)
    Ответ написан
    Комментировать
  • Как обменять/возвратить "Технически сложные товары бытового назначения"?

    www.sigmacomputers.ru/conditions/law-goods-list/
    Пункт 11
    "… фото- и киноаппаратура..."
    Значит обойти этот список никак нельзя.

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

    Тоесть если вы например сказали, что вам нужно в 1с работать, а вам продали МакБук, то можете попытаться воспользоваться этим пунктом. В вашем же случае он мне кажется не применим.

    Вывод: если фотоаппарат полностью исправен (надлежащего качества), то сдать вы его не можете.
    Ответ написан
    1 комментарий
  • Схема -> Форма -> couchDB?

    В голову приходит только такой вариант:
    -создаем документ например type=«myForm» содержащий кроме всего прочего массив полей:
    {

    type:«myForm»,
    fields:[
    {
    name:«Имя»,
    type:«textbox»,
    id:«itemName»,
    required:true

    },

    ]

    }
    -на стороне обработчика (на серверной, либо если вы не используете сервер а работаете с CouchDB прямо из яваскрипта, то там) выбираем этот документ (например создав view по типам)
    -Генерируете форму пробегаясь по массиву, отдаете пользователю. Для этого нужно будет написать код для генерации полей нужных вам типов.
    -После заполнения, если это необходимо, контролируете заполнение, выбрав снова документ схемы из кауча, пробегаете по массиву пришедших данных, вырезая из него поля которых нет в схеме и контролируете значения не соответствие схеме.
    -загоняете новые данные в кауч.

    Но я бы вам советовал трижды подумать прежде чем использовать кауч. На виндоус по крайней мере у меня куча проблем с ним была. Сначала натолкнулся на баг Erlang, ограничивающий максимальный размер файла четырьмя гигами (http://wiki.apache.org/couchdb/Installing_on_Windows) Его пофиксили, но пока нашел фикс, пока накатил… Потом база сама начала рассыпаться при достижении файлом индексов размера 6-8Гб. Раза 2-3 было. Может конечно из-за того, что я сервер перезагрузил во время перегенерации view, но все равно это не хорошо. А если бы там критичная бизнес информация лежала, а сервер по питанию кто-нибудь передернул? В общем я ему теперь не очень доверяю.
    Ответ написан
  • Ноутбук за 20 тысяч

    Asus ul20
    Хороший камень, 3гига оперативки и все это в корпусе размером с лист А4. Чуть больше бюджета, но ноут того стоит
    Ответ написан
    2 комментария
  • Как автоматически удалять спам, на дефолтных почтовых ящиках на хостинге?

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

    В почтовом клиенте можно удалять такие письма фильтром по полю «Кому». Или просто складывать в отдельную папку.
    Ответ написан
    Комментировать
  • Какую книгу про Linux почитать?

    Если вас интересует «линукс с нуля», то посмотрите курс лекций Михаила Браво. Их очень легко найти в сети. Освещаются темы линукса вообще, что такое баш и как им пользоваться, основные команды, принципы построения скриптов (циклы, пайпы, перенаправления), регекспы, структура фс. В последних лекциях, на сколько я помню, разбираются какие-то программы. Помоему даже отдельная лекция по виму есть. Я свое знакомство с линуксом начал именно с этих лекций.

    Естественно все прослушанное надо сразу же пробовать в консоли, в этом вам помогут «домашние задания» в конце каждой лекции.

    Удачи в освоении linux.
    Ответ написан
    1 комментарий