Задать вопрос
  • Как можно отправлять SMS прямо из терминала linux?

    sms.ru

    Раздел «программистам»
    Ответ написан
    Комментировать
  • PHP — стоит ли использовать кэширование результатов выполнения функций

    Кэширование вообще несет в себе одну главную проблему: поддержка актуальности.

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

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

    Если эти ограничения выполняются, то возможна меморизация функции.

    Ответьте самостоятельно можете ли вы использовать кэш и меморизацию исходя из этих критериев.
    Ответ написан
    1 комментарий
  • Своя домашняя серверная стойка?

    Дома серверная стойка?! А спать как будете, она же будет гудеть как средних размеров самолет.

    Дедикэйтед — наше все, и дешевле выйдет, с учетом амортизации оборудования. На поиграться в самый раз.
    Ответ написан
    5 комментариев
  • MS SQL и экспорт из него?

    Правой кнопкой на БД -> Tasks -> Export Data. Там все настраиваете. В общем-то это уже решение. Но если надо «раз кликнул и готово», то в конце есть опция вместо запуска экспорта сохранить dtsx пакет. Напишите батник просто, который будет его запускать. Это можно сделать вручную, а можно запустить dtexec.exe и настроив все параметры запуска (в основном пути, и строки подключения) скопируйте готовую строку со всеми параметрами с последней вкладки. Сохраните её в батник и все.

    Иденственное, помните о том, что форматы пакетов между версиями эскуэль сервера разнятся. Если сделаете под 2008 то на 2005 например не запустится. Или на R2.

    Данный подход позволит обойтись вообще без программирования.

    Если хочется сложнее — sql server business intelligence studio

    Если хочется руками, или описанное выше не позволяет редакция сервера, то почему ODBC то не покатит? Вы видимо выдаете не все условия задачи.
    Ответ написан
  • Простой parallax, need help?

    От этого сайта у меня глаза болят. Не делайте также.

    А так, в сети куча примеров:
    habrahabr.ru/post/142137/

    У них не совсем паралакс, просто вылетают разные штуки с разных сторон с разной скоростью. Если вам нужно тоже самое, просто реализуйте вылетание разных штук с разных сторон с разной скоростью, используя абсолютное позиционирование и jQuery(ui).animate
    Ответ написан
    Комментировать
  • Еще раз о железе для домашнем сервере? Можно ли что-то подобрать под имеющиеся требования

    Я долго экспериментировал с разными мини пк. В итоге у меня стоит нормальный комп на core i5, с пониженным энергопотреблением. Единственный параметр на который я обращал внимание при покупке — наличие достаточного количества SATA портов и RAID контроллера. Динамическим дискам я не доверяю, а режиме зеркалирования и дешевые домашние контроллеры работают неплохо.

    Из плюсов имеем:
    — возможность поставить любую ось
    — любой софт под неё
    — крутить большее количество задач, чем предполагалось на этапе покупки (у меня добавилась в последствии система контроля версий, сервер БД, софт для перекодирования видео под телефон, хранилище для бэкапа ноутбуков и еще по мелочи)
    — возможность расширить любым нужным железом (тот же WiFi адаптер можно воткнуть в любой PCI Express)

    Из минусов
    — размер
    — шум
    — цена

    Проблему размера я победил покупкой узкого корпуса, который очень удачно вписался в квартиру, и никому не мешает.
    Шум побеждается покупкой дешевого SSD на 64Гб под систему и автоотключением всех дисков при простое. Плюс хорошие тихие вентиляторы и хороший большой радиатор на камень
    Цена будет кусаться, по сравнению с Raspberry PI. За 25$ не купишь. Но все таки вкладывать в инфраструктуру с запасом это правильно, позволяет сэкономить потом, когда вырастет круг задач.

    В 802.11n теоретический предел 300Mbit\sec. Реальный потолок у меня около 120Mbit\sec.
    Ответ написан
    7 комментариев
  • Смена профессии: работа связанная с обработкой фотографий

    Покажите для начала результаты её работы незаинтересованному лицу.
    Ответ написан
    2 комментария
  • Отзеркалить сайт?

    Вопрос неразрешим без указания точного и полного списка технологий, которые используются в работе сайта. А именно:
    -платформа (windows, linux)
    -сервер приложения (язык, веб сервер)
    -сервер БД
    -статика (заливается ли пользователями, как интенсивно)

    От этого уже можно будет отталкиваться.

    Второе от чего стоит отталкиваться, это задача. Что требуется?
    1. Иметь горячую копию сайта, на случай падения основного
    2. Увеличить производительность, за счет увеличения количества серверов.

    В зависимости от задачи решение будет разным.

    Краткий план решения такой:
    1. поднять копию сервера с тем же окружением (сервер БД, веб сервер, интерпритатор)
    2. скопировать данные приложения
    3. Развернуть копию БД
    4. сложный пункт обеспечить репликацию БД. Особенно сложно если требуется репликация мастер-мастер. Т.е. изменения на любом из сайтов, должны быть выгружены на второй. Во первых такое поддерживают далеко не все БД, во вторых это черевато потерей данных. Если требуется горячая копия, то нужно использовать мастер-слэйв в основном режиме и переводить слэйв в мастер при падении. Если требуется увеличение производительности, то нужно будет выделить одну master и несколько slave. Переписать сайт таким образом, чтобы для записи в БД он использовал только соединение с master БД, а для чтения одну из slave, таким образом будет сбалансирована нагрузка на БД (записи обычно на порядки меньше чем чтения)
    5. тоже не очень простой пунтк обеспечить синхронизацию статики. Это можно сделать с помощью rsync. Но тоже могут быть разные проблемы.
    6. специфические ресурсы (redis, mongo, memcache) и тому подобное тоже должы быть зеркалированы и при необходимости синхронизированы.

    Чем больше будет уточнений, тем больше смогу еще посоветовать.
    Ответ написан
  • Украли телефон, как узнать местоположение?

    Если сони, то myxperia.sonymobile.com/
    Ответ написан
    Комментировать
  • Существует ли идеальная система оформления заказа в интернет-магазине

    Идеальная система заказа:
    1. кладу все в корзину
    2. в корзине меняю количество, смотрю общую цену
    3. перехожу в оформление заказа. Тут четыре опции:
    3.а. телефон по которому я могу позвонить менеджеру, и сказать номер заказа (выведен тут же), и все с менеджером решить. Оплата наличными при получении.
    3.б. вбить номер телефона, по которому мне позвонит менеджер и мы с ним все решим. Оплата наличными при получении.
    3.в. вбить минимально необходимые параметры заказа:
    — один текст бокс для имени\фамилии
    — один текст бокс для мыла
    — один для телефона
    — одна текст ареа для адреса. Без этих убогих полей «улица, дом, корпус, строение». А если у меня нет улицы? Или куда я должен вписать примечание для курьера? Или приложить ссылку на «карту проезда» с сайта нашей организации? Текст ареа практичнее.
    — опционально «поставить точку или нарисовать маршрут от метро на яндекс карте». Это же так просто и облегчает всем жизнь. Но должно быть опционально.
    Обязательные только адрес, имя и телефон.
    3.г. регистрация. Тоже самое что и 3.в, только может чуть больше полей, и с предоставлением логина и пароля, для повторных покупок.
    4. если выбрана оплата электронными деньгами, то оплата.

    Я джва года хочу такую игру. Но почему-то все делают какие-то дикие сложные формы. Если вам очень важна именно регистрация пользователей, повесьте над 3.г. плашку «зарегистрированным 0.5% скидки». А лучше«100500 бонусных баллов на следующую покупку (1 бонусный бал = 0.003коп)».
    Ответ написан
    8 комментариев
  • Стена соцсети: выборка данных

    UNION не так уж и плох. Особенно UNION ALL, где не требуется выбирать уникальные записи. По крайней мере он будет не медленнее чем выполнить каждый запрос по отдельности, за счет того, что может теоретически быть выполнен параллельно на нескольких ядрах.

    Но если не подходит, давайте от печки. Вы постулируете следующее «мы не можем выбирать все в одном запросе, чтобы не мешать модели».

    Значит минимальное количество запросов получается равным количеству_типов_данных. Для этого нужно выполнить по отдельности запросы которые у меня в UNION, но тогда вручную в коде сортировать эту кашу по датам и группировать по wall_id. Это плохой путь.

    Предлагаю такой вариант:
    SELECT
    	w.id,
    	w.description,
    	COUNT(i.id) i_cnt,
    	COUNT(bp.id) bp_cnt
    FROM wall w
    
    INNER JOIN wall_element we_i
            ON we_i.wall_id = w.id
    INNER JOIN image i
            ON i.id = we_i.element_id
    
    INNER JOIN wall_element we_bp
            ON we_bp.wall_id = w.id
    INNER JOIN blog_post bp
            ON bp.id = we_bp.element_id
    
    ORDER BY w.timestamp
    
    GROUP BY w.id, w.description
    


    Мы получаем список записей, и количество связанных с каждой записью единиц контента. Дальше разделяем ответственность в коде следущим образом:
    1. основной код выполняет этот запрос, и бежит по результатам. Смотрит, что есть в конкретной записи. Например видит что картинка, и товар из магазина
    2. основной код вызывает соответствующие рендереры, передавая им идентификатор записи wall_id.
    3. рендерер сам (своим запросом) достает уже те данные, которые ему нужны оттуда, откуда хочет, в ту модель, которая ему нравится. Это полностью развязывает рендереры друг от друга и от вызывающего кода.

    Итого имеем запросов: количество_записей_на_стене * среднее_количество_единиц_контента + 1. Думаю у вас в среднем 1 запись на стене будет иметь ссылку на 1 единицу контента (например пяток фоток, которые рендерер картинок сможет вытащить одним запросом).

    Имеем в среднем запросом количество_записей_на_стене + 1. Вполне приемлимо.
    Ответ написан
  • Стена соцсети: выборка данных

    Кстати простите за оффтопик, но я вот бегло посмотрел ваш сайт. Первой глянул на вот это:
    excalibur.com.ua/blog/php-c3/%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B5%D0%B9-%D0%BD%D0%B0-php-i22.html

    Вы пытаетесь определить ту, что быстрее работает, и в обоих ВНУТРИ цикла делаете count($arr) и strlen($chars). Вы не думали, что если вынести подсчет длинны массива и длинны строки за цикл, то у вас функция ускорится примерно в $length раз? И вы еще после этого кого-то упрекаете в отсутствии опыта?
    Ответ написан
  • Стена соцсети: выборка данных

    Как можно втянуть «те 20 фото которые вы добавили на стену» если у вас нет идентификатора пользователя нигде.

    Если просто все фото на стене, то так:
    SELECT
    	w.id,
    	w.description,
    	we.*
    FROM
    	wall w
    INNER JOIN wall_element we
    	ON w.id = we.wall_id
    


    Это то, что вы хотели?
    Ответ написан
  • VirtualBox на Windows 8?

    del (не прочитал PS)
    Ответ написан
    Комментировать
  • На что обращать внимание при покупки гаджетов из Китая?

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

    На данный момент сломалось все, что я там купил, от вздувшихся литиевых аккамуляторов (которые изначально то емкость не держали) до автокормилки для рыб. Дольше всех продержался видеорегистратор, но тоже сдох.

    Единственное, что работает — фонарики. Но там по сути диод да отсек для батарейки, уже нечему ломаться.

    Плюс два раза присылали сломанный девайс, а один раз прислали вообще не то, что заказывал. Дороже или дешевле исходного затрудняюсь сказать, т.к. не понимаю, что вообще мне прислали. Что-то вроде авторазливалки алкогольных напитков в виде мини бензоколонки. Зачем она мне — я хз.
    Ответ написан
    5 комментариев
  • Web форма c добавлением полей по ходу заполнения?

    tl;dr;

    Руками проще. Разберитесь для начала как работают формы и jQuery. Вопрос который вы задаете очень простой и требует самых начальных знаний. Врятли кто-то будет делать и заливать куда-то пример для вас.

    Если в кратце: в бэкэнде поля форм идентифицируются по их имени (аттрибут name). Соответственно вам надо скопировать ваш div и поменять name у всех инпутов (например title1, title2...).

    Если бэкэнд на php, то есть еще маленький хак. Именуйте поля Одинаково «title[]» (с пустыми квадратными скобками на конце), тогда в php создастся массив, со всеми вашими элементами.

    Если вам из того что я написал, что-то не понятно, задавайте уточняющие вопросы. Если все, то сначала нужно подтянуть немного уровень зананий.

    htmlbook.ru/
    bit.ly/Y8cSo6
    Ответ написан
  • Контроль доступа на сайте. Чего хочется?

    Главное, чтобы все это
    1. удовлетворяло задаче
    2. было по максимуму автоматизировано. Чтобы создавая объект не надо было проставлять 100500 галочек и радиобаттонов.
    Ответ написан
    Комментировать