• Имеет ли смысл писать свою обертку над PDO?

    AlexeyParhomenko
    @AlexeyParhomenko
    На практике — вы все равно столкнетесь со специфичными свойствами одной или другой бд, которые вам захочется / нужно будет применить. Каждый производитель бд все равно вносит какие-то различия в SQL синтаксис, иначе зачем клон существующего проекта? — Так что преследовать цель кросс-бд по моему субъективному мнению весьма утопично. Более разумным будет ознакомится со спецификой конкретной бд и понять для чего она, а не городить универсальных рюшек. Чем более универсальный инструмент тем сложнее его реализация и дальнейшая поддержка.
    Ответ написан
    Комментировать
  • Объективные критерии выбора веб-программиста

    @Bruteo
    Прохождение серьёзных сертификаций может помочь быстро отсеять из большого количества.
    Но при этом многие хорошие кандидаты могут этих сертификаций и не иметь.
    Ответ написан
    1 комментарий
  • Объективные критерии выбора веб-программиста

    Отправляйте всем тестовое задание.
    Это не быстро, но результативно
    Те кто пришлют, вам подходят
    А те кто пришлют первыми, те подходят еще больше (при условии что задание выполнено верно)
    Ответ написан
    14 комментариев
  • Выбор лучшего веб-дизайнера

    KonstRuctor
    @KonstRuctor
    программист, дизайнер, фотограф, журналист
    Могу сказать с какими проблемами сталкивался я, работая с веб-дизайнерами.
    1) Я – дизайнер, а не верстальщик. Я нарисовал, а возможно ли это сверстать, не мое это дело.
    2) Я нарисовал только главную страницу, остальное сделайте сами, ведь всем понятно, как должны выглядеть остальные страницы, да и не мое это дело – сделайте по аналогии.
    3) Я нарисовал главную страницу, используя «рыбу» и текст, который я сам придумал (сгенерил lorem), чтобы красиво смотрелся с картинками и блоками одинаковой высоты. Как это будет выглядеть на реальном сайте с реальным текстом и реальными картинками – не мое дело.
    4) Я нарисовал дизайн меню, а как уж оно будет вести себя при наведении мышки – не мое дело, это дело верстальщика, он же программирует поведение меню.
    5) Я нарисовал фиксированный дизайн, а как уж будет смотреться сайт с резиновым дизайном, я не знаю, у меня фотошоп не резиновый. Ну, давайте я растяну дизайн инструментом transform, смотрите как будет выглядеть. А вообще это не мое дело, пусть верстальщик программирует.
    6) Как будут выглядеть таблицы, списки, заголовки – не мое дело. Возьмите мои цвета, покрасьте шрифт сами.
    Все цитаты приведены практически 1 в 1, с сохранением лексических оборотов (верстальщик программирует).
    В оправдание этих умельцев могу сказать, что заказчик выбирал их по причине низкой стоимости (7-10 тыр).
    Ответ написан
    3 комментария
  • Ваше мнение - Кто имеет право праздновать день программиста?

    Nickel3000
    @Nickel3000
    А вам жалко что ли? Пусть кто хочет — тот и празднует, хоть День космонавтики, хоть День программиста.
    Ответ написан
    3 комментария
  • Нужны доводы против последовательных целочисленных индексов

    @Romanych
    Вообще говоря использовать uniqueidentifier'а в качестве Primary Key плохая затея. Говорю это из своего опыта. Когда проект только начинался мы бездумно сделали все PK c типом uniqueidentifier, и через год, когда количество записей стало исчисляться миллионами, база данных начал непонятно тупить. Тогда мы узнали что такое фрагментация индексов. Фрагментация кластерного индекса очень сильно замедляет вставку. Говоря о выборке, банальные join'ы 100 на 100 записей стали медленными, потому что серверу надо делать множество сиков на диске для перехода к нужной записи. И не говорите о плохих индексах, в данном случае мы выжали всё что могли, и именно сики стали головной болью. Перенос огромной базы на SSD тоже на самая безопасная операция. Так уже больше года мы потихоньку меняем старые Guid'ы на int/bigint и с болью вспоминаем то неосмотрительное решение.

    Я бы рекомендовал вам разработать архитектуру с хорошим слоем проверки безопасности. И тогда перебор id ничего не даст злоумышленнику. Также никто не мешает добавить ещё одну колонку SecureId и использовать её в местах, которые совсем-совсем не хочется показывать наружу.
    Ответ написан
    3 комментария
  • ICQ-клиент, не страдающий ожирением и рекламой

    amureki
    @amureki
    Python/Django
    qip 8095 для окошек, adium для мака.
    Ответ написан
    Комментировать
  • ICQ-клиент, не страдающий ожирением и рекламой

    @S1ashka
    до сих пор сижу на старом QIP — счастлив (ищите qip8097.exe)
    одно время сидел на rnq и r&q
    Ответ написан
    5 комментариев
  • Обработка большого числа $_POST

    dxArtem
    @dxArtem
    Появилась очень классная функция.

    www.php.net/manual/en/function.filter-input-array.php

    /* data actually came from POST
    $_POST = array(
        'product_id'    => 'libgd<script>',
        'component'     => '10',
        'versions'      => '2.0.33',
        'testscalar'    => array('2', '23', '10', '12'),
        'testarray'     => '2',
    );
    */
    
    $args = array(
        'product_id'   => FILTER_SANITIZE_ENCODED,
        'component'    => array('filter'    => FILTER_VALIDATE_INT,
                                'flags'     => FILTER_REQUIRE_ARRAY, 
                                'options'   => array('min_range' => 1, 'max_range' => 10)
                               ),
        'versions'     => FILTER_SANITIZE_ENCODED,
        'doesnotexist' => FILTER_VALIDATE_INT,
        'testscalar'   => array(
                                'filter' => FILTER_VALIDATE_INT,
                                'flags'  => FILTER_REQUIRE_SCALAR,
                               ),
        'testarray'    => array(
                                'filter' => FILTER_VALIDATE_INT,
                                'flags'  => FILTER_REQUIRE_ARRAY,
                               )
    
    );
    
    $myinputs = filter_input_array(INPUT_POST, $args);
    
    Ответ написан
    Комментировать
  • Какие кавычки используете в коде?

    vermilion1
    @vermilion1
    HTML — только двойные.
    CSS, JS — одинарные.

    var div = '<div id="div"></div>'
    

    Многие используют двойные кавычки в силу привычки. Это не страшно, но пример выше прийдется модифицировать в таких случаях:

    var div = "<div id='div'></div>" // не люблю такой HTML-код
    var div = "<div id=div></div>"; // такой тоже
    var div = "<div id=\"div\"></div>"; // плохая читаемость
    
    Ответ написан
    1 комментарий
  • На каком языке написан бот для Diablo 3?

    @WEBIVAN
    Если открыть .exe файл блокнотом, в конце найдем замечательный кусок —
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
      <assemblyIdentity version="1.0.0.0" 
           processorArchitecture="X86" 
           name="AliasDatabaseServer" 
           type="win32" /> 
      <description>AlaiasDatabaseServer manifest</description> 
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
        <security> 
          <requestedPrivileges> 
            <requestedExecutionLevel level="requireAdministrator" /> 
          </requestedPrivileges> 
        </security> 
      </trustInfo> 
    </assembly><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
          </requestedPrivileges>
        </security>
      </trustInfo>
    </assembly>
    


    Немного погуглив, узнаем что скорее вcего написано на C#
    Ответ написан
    1 комментарий
  • Стоит ли открыть исходный код ORM для PHP?

    @egorinsk
    Сам по себе ORM — банальная ничем не примечательная хрень. Это уже много раз делали в других фреймворках (например, RoR, Java) и описано в книгах про паттерны. Берешь, делаешь как в Руби и пользуешься хоть до посинения.

    Пример с User::create() неудачный: у реальных объектов бывает по 20 свойств и фукнция с 20 аргументами будет выглядеть дико. Функции с подчеркиванием в начале — уродливые. Передавать __CLASS__ и подобные магические методы тоже не очень как-то.

    Один из сложных моментов в проектировании ORM — оптимальная организация взаимодействия с хранилищем. Например, этот ваш пример:

    > foreach(UsersGroup::getPremiumMembers()->orderBy('registration_date')->limit(10) as $user){
    > echo $user->getCountry()->getCurrency()->getCode()."
    ";

    Сколько запросов сгенерирует при использовании SQL-хранилища? По идее, должно быть в районе 3-4, причем данные справочников еще бы и стоило кешировать (ибо валюты у стран меняются очень редко) и обойтись 1-2 запросами. Если у вас в цикле для каждого юзера делается запрос — хлам это, а не ORM.

    Второй момент — оверхед. Вы когда-нибудь считали, какая разница по времени выполнения запроса через ваш ORM и через mysqli_query() (включая время на загрузку и инициализацию классов ORM)? Посчитайте, наверняка у вас после этого вообще пропадет желание использовать ORMы.

    Третий момент — масштабирование. Можно ли, к примеру, сделав огромный сайт на вашем ORM, не переписывая кода, реализовать расшардивание базы на 100 серверов (чтобы справиться с нагрузкой). Можно ли на нем делать проекты уровня хотя бы игр для соцсетей или вконтакта?

    Если у вас есть решение хотя бы некоторых из описанных 3 проблем проектирования ORM, ваша статья на тему архитектурных решений и программистских хитростей была бы крайне интересна. Если нет решения — то такой орм любой школьник может сделать, как я уже сказал, прочтя мануал к рубионрейлс.
    Ответ написан
    3 комментария
  • Как бороться с клеветой и черным пиаром в интернете?

    KOLANICH
    @KOLANICH
    Знаю JS, PHP, C++, C#
    1 Стать диктатором
    2 Ввести тоталитаризм
    3 Упразднить свободу слова
    4 Запретить интернет
    5 Зомбировать население
    6 Физически уничтожить политических противников

    9000 БОЛЬШЕ НЕКОМУ ПИСАТЬ ПРО ВАС КЛЕВЕТУ И ЧЁРНО ПИАРИТЬ!!!

    А если серьёзно, то никак.
    Тот, кто пишет клевету, сам себя дискредитирует, просто предоставьте пруфы того, что это клевета, и вы окажетесь в плюсе.
    И вообще, на тех категориях сайтов обычно размещают сообщения, как вы уже заметили, либо не совсем уравновешенные люди, либо тролли (написать гадость — сообщить неуравновешенному объекту — еда).
    Это сайты для неудачников.
    Нормальные люди обычно на такие сайты не ходят.
    Ответ написан
    Комментировать
  • Где можно взять аналитику интернет торговли или топ интернет-магазинов по прибыли или посещаемости?

    Alexx_ps
    @Alexx_ps
    Видимо все ваши ссылки ведут на отчет от inSales? mwjournal.ru/2012/03/otchet-po-rynku-internet-torgovli-v-rossii-za-2011-god/
    Хорошую аналитику делает TNS www.tns-global.ru/rus/data/ratings/index/index.wbp, там можно поменять страну и смотреть отчеты по Западу (ebay, amazon).
    Еще смотрите РБК.research research.rbc.ru/
    Ответ написан
    3 комментария
  • Как работают интернет-сервисы по бронированию отелей?

    @Ghostwriter
    Это большая организационная работа по привлечению отелей к сотрудничеству и предоставлению информации о резервировании мест. Очень чётко отлаженное B2B ноу-хау. Priceline (Booking.com) одной из первых начала двигаться в этом направлении и теперь имеет капитализацию в $32B.

    Многие нынешние компании используют API с информацией об отелях от самого Booking.com для бОльшего охвата аудитории, наряду с собственной локальной базой отелей.
    По состоянию на прошлый год, например, небезызвестный Ostrovok.ru использовал несколько сторонних API в дополнении к собственной базе российских отелей.
    Технологическая составляющая B2B сотрудничества может заключаться:
    — в предоставлении отелям SaaS-платформы букинг-сервиса для оперативного (онлайн) резервирования. В этом случае букинг-сервис владеет всей необходимой информацией в реальном времени и может осуществлять резервирование с большой степенью автоматизации. Клиент делает заказ в интерфейсе букинг-сервиса, а автоматизированный бек-офис проводит транзакцию резервирования. При успешной транзакции, клиент получает подтверждение бронирования, а владельцы отеля уведомляются через интерфейс SaaS-платформы о новом резервировании.
    — в выгрузке статистики отеля пост-фактум (через API внутренней системы бронирования самого отеля) через определенные интервалы времени. Само резервирование в таком случае происходит с помощью операторов (или колл-центра, или отдельного подразделения на стороне букинг-сервиса). Операторы получают заявку от клиента, резервируют (при возможности) место в отеле (т.е. решают все организационные вопросы с отелем) и отправляют клиенту букинг-сервиса подтверждение/информацию о невозможности бронирования.
    — в некоем комбинированном способе с разной степенью автоматизации на разных участках.
    Ответ написан
    3 комментария
  • Какой лучше купить или сделать компьютерный стол?

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

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

    Anonym
    @Anonym
    Программирую немного )
    Мне когда-то один умный главбух утверждал, что в трудовой записи должны соответствовать каким-то там документам, т.е. есть ограниченный набор «специальностей», которые могут быть вписаны в трудовую.
    Хотя в следующем (или в этом?) году вроде бы трудовые вообще отменяют, так что, можете не беспокоиться по поводу «первой записи».
    Ответ написан
    6 комментариев