Задать вопрос
  • Распознавание образов на фото?

    Комментировать
  • Алгоритм создания последовательности по нескольким значениям?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    planetcalc.ru/177 (арифметическая прогрессия)
    planetcalc.ru/4193 (геометрическая прогрессия)
    Там все формулы и все описано.
    Ответ написан
    2 комментария
  • Выбор беспроводной мыши?

    @OsyaBender
    Перестает работать скролл вращение или клик? Если клик, возьмите со старой мышки переключатель и перепаяйте. Работы на 15 минут. Тем более, на старых мышах переключатели неубиваемые, в отличии от современных, которые выходят из строя через три месяца.
    Если все же хотите покупать новую, на мой взгляд более-менее нормально с долговечностью у Genius, раньше еще очень нравились A4Tech, но сейчас тоже у них микропереключатели быстро выходят из строя.
    Ответ написан
    3 комментария
  • Какое самое перспективное направление?

    @FoxInSox
    Что вы врете про 6 лет то?
    Ответ написан
    Комментировать
  • Какую выбрать технологию и язык для написания диплома (ASP.NET MVC 4 или Yii PHP Framework или Ruby on Rails)?

    SamDark
    @SamDark
    Yii2 core team
    По мне не так важна тема, как язык и технологии на котором его писать.


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

    В качестве темы склоняюсь к информационной системе для веб-студии.


    Это уже было в симпсонах. Одни из важных критериев оценки дипломов — новизна и практическое значение. По новизне проект получается не нов. На практике да, полезен, но революцию в области или хотя-бы в её части не делает.

    По пунктам могу прокомментировать по Yii 2.0.

    1. Скорость изучения высокая, если с ООП нормально и с PHP знакомы.
    2. Функциональность: почти всё для веб, много для API.
    3. Создание API: есть из коробки.
    4. Возможность найти помощь по проблемам. С этим всё отлично. Сообщество у Yii что надо.
    5. Сложность изучения. Относительно низкая.
    6. Производительность. Хорошая даже если специально не оптимизировать.
    7. Подскажите что еще важно при выборе? Чтобы нравилось.
    Ответ написан
    9 комментариев
  • Разработка игры на Android\iOS (Unity3D 4.3, Cocos2D) - размеры экрана, DPI, масштабирование спрайтов?

    risik
    @risik
    Программист
    Density и разрешение экрана свзяно друг с другом не совсем прямо пропорционально.

    В Android есть такое правило:
    LDPI:MDPI:HDPI:XHDPI:XXHDPI=3:4:6:8:12.

    например здесь: stackoverflow.com/questions/6166677/android-screen...
    или на developer.android.com

    То есть, делать персонажа 100 пикселей для xhdpi - очень плохая идея. Лучше, например, 96 пикселей. Так как 96 без остатка делится 6. А высоту не 80, на 78. Тогда размеры персонажа у Вас будут:
    LDPI: 48х39
    MDPI: 64х52
    HDPI: 96х78
    XHDPI: 128x104
    XHDPI: 192х156

    Отсюда можно легко вычислить в каком разрешении Вам надо рисовать персонажа, чтобы избежать не ркатного масштабирования. Находим наименьшее общее кратное между пропорциями. Это будет 24. И рисуем Ваш объект в разрешении 384х312. Из этого размера Вы легко получаете все рисунки всех необходимых размеров. Лучше сделать скрипт, который, например, при помощи ImageMagick масштабирует Ваш оригинальный рисунок и раскладывает по папкам.

    То есть, если Вы хотите поддерживать все 5 разрешений, то все Ваши оригинальные рисунки должны иметь размеры, делящиеся на 24 нацело.

    Однако, LDPI можно не рассматривать. Тогда пропорции получаются:
    MDPI:HDPI:XHDPI:XXHDPI=2:3:4:6.
    И в этом случае, очевидно, что все оригинальные рисунки должны иметь размеры, нацело делящиеся на 12. Кстати, даже если Вы оставите поддержку только HDPI и XHDPI Вам все равно нужен множитель 12, а значит Вы дешево получаете поддержку и MDPI и XXHDPI.

    Для iOS все чуточку проще. Смотрите комментарий @Lerg.
    Ответ написан
    Комментировать
  • Разработка игры на Android\iOS (Unity3D 4.3, Cocos2D) - размеры экрана, DPI, масштабирование спрайтов?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    Не знаю как именно обстоит дело в Unity, но я беру спрайты максимального размера под iPad Retina и уменьшая два раза в два раза. Допустип фоновое изображение. Для iPad это будет 2048х1536.
    Такой файл я называю background@4x.png, и делаю ещё две версии background@2x.png и background.png, каждый отличается в 2 раза от соседнего. То есть @2x это 1024х768, а простой это 512х368 для устройств с совсем низким разрешением (хотя в настоящее время их можно уже и не поддерживать, это iPhone 3GS, например).

    Версия файла выбирается из текущего разрешения устройства, берётся таким образом, чтобы не было артефактов увеличенного масштабирования. То есть для разрешения 1024х600 берутся файлы @2x и уменьшаются по принципу letterbox.

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

    Если взять фон от iPad и показать его на iPhone 5, то по бокам будут видны незанятые области. Фоновое изображение нужно расширить. Опытным путём я пришёл к разрешению 2776х1536 для @4x, такое изображение покроет полностью экраны всех мобильных устройств.

    DPI по хорошему нужно учитывать, иначе на iPad элементы UI получаются гораздо больше чем на iPhone и их можно было бы сделать поменьше, но на практике и без этого нормально в большинстве случаев.
    Ответ написан
    Комментировать
  • Какую ось поставить на домашний сервер?

    MaximAL
    @MaximAL
    Советую Debian.

    Если работали с Ubuntu (она, по сути, является форком Debian), то переезд для вас будет несложен и практически незаметен.
    Ответ написан
    2 комментария
  • Несколько вопросов к толковым разработчикам относительно mvc и php?

    @Masterme
    Привет.

    Вот так удобно работать с данными:

    Открываем страницу /articles/, либо /articles/123, либо /articles/?date=2013-10-22

    class ArticlesController extends BaseController {
      # для страницы /articles/
      function index ($get_params){
        if ($get_params->date){
          $articles = $this->Articles->find_by_date($get_params->date); // выбираем все статьи за заданную дату
        } else {
          $articles = $this->Articles->all(); // выбираем все статьи из таблицы
        }
        return compact('articles'); // этот массив пойдёт в шаблонизатор
      }
    
      # для /articles/123
      function item($get_params){
        if ($article = $this->Articles->find_first_by_id($get_params->id)){
          return compact('article');
        } else {
          throw new Exception404;
        }
      }
    }
    


    $this->Articles вызывает __get класса BaseController, в нём ленивая загрузка, если первая буква аргумента большая — то модель создаётся на лету. Аналогично, find_by_* и find_first_by_* — обращаются к __call родительской модели и преобразуются в SELECT.

    Ещё примеров.
    Создать пустую запись в таблице
    $this->Article->create();
    


    но обычно создают не пустую, а с данными, потому (в контексте контроллера)
    $article = $this->post('article); // массив
    if ($id = $this->Articles->create($article)){
      $article['id'] = $id;
    }
    
    

    Найти статьи и пользователей, их создавших:
    $articles = $this->Articles->find_by_date('2013-04-15');
    if ($authors_ids = array_map(function($article) {return $article['author_id'];}, $articles)){
      $authors = $this->Authors->find_by_id(array_unique($authors_ids));
    }
    return compact('articles', 'authors');
    

    В модели эти команды преобразуются в
    SELECT * FROM `articles` WHERE `date`='2013-04-15'
    SELECT * FROM `authors` WHERE `id` IN (1, 2, 3, 4, 5);
    if ($authors_ids = ...) — проверка, не пустой ли получится массив

    Чем модель отличается от датасета.
    $article = array('id' => 123, 'title' => 'Зима в деревне!', 'content' => 'Однажды в студёную зимнюю пору лошадка примёрзла ...', 'date' => '2014-06-01', 'author_id' => 1);
    это датасет

    а
    $article = new ArticleModel(array('id' => 123, 'title' => 'Зима в деревне!', 'content' => 'Однажды в студёную зимнюю пору лошадка примёрзла ...', 'date' => '2014-06-01', 'author_id' => 1))
    это модель

    Разница в том, что на модель можно навешать методов и юзать такой синтаксис
    $articles = $this->Articles->all();
    foreach ($articles as $article){
    print $article->author['name'];
    }
    т.е. в этом случае мы прописываем классу ArticleModel метод author, который возвращает значение типа AuthorModel и т.д.

    $article->author->articles; // все статьи автора, написашего данную статью.

    иногда так удобнее, иногда нет. с моей точки зрения разница невелика. я пользуюсь датасетами и примерно таким синтаксисом
    $articles = $this->Articles->find_by_author_id($article['author_id']);
    на один запрос меньше.

    — примечание: есть модель в терминологии MVC, означает программный слой. а есть модель — как объект, соответствующий строке таблицы. я говорил про вторую. а первая модель это
    $this->Articles
    $this->Authors
    Ответ написан
    1 комментарий
  • Второй вопрос к толковым web-разработичкам, знакомым с паттернами

    fear86
    @fear86
    Developer
    У нас в движке как раз все реализовано через мапперы, по умолчанию они у нас бывают двух типов, Коллекции и Ресурс модели, первая реализовывает работу с набором сущностей, вторая с одной конкретной.

    Так вот, выборкой и поиском занимается коллекция, и фильтрация там реализована через отдельный метод в который передаются условия для фильтрации в специальном формате, а уже коллекция формирует sql запрос, и экранирует параметры. Если мне этого не хватает, я добавлю свой метод который реализовывает какой то специфический запрос.

    ps: использование статических методов и синглтонов — моветон.
    Ответ написан
    8 комментариев
  • Второй вопрос к толковым web-разработичкам, знакомым с паттернами

    Anonym
    @Anonym
    Программирую немного )
    1. Используйте DBAL, хотя бы PDO.
    2. Создайте модель UserCollection для коллекции пользователей. Логичнее будет как-то так
    $users = new UserCollection();
    $users->findByParams(array(
      'tariff' => $tariff,
      'city' => $cities,
    ));
    

    или
    $users = UserCollection::findByParams(array(
      'tariff' => $tariff,
      'city' => $cities,
    ));
    
    Ответ написан
    Комментировать
  • Несколько вопросов к толковым разработчикам относительно mvc и php?

    JekaRu
    @JekaRu
    Советую в качестве ORM взять Propel propelorm.org/ или Doctrine doctrine-project.org/
    Проверенные временем проекты.
    Ответ написан
    4 комментария
  • Несколько вопросов к толковым разработчикам относительно mvc и php?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Забейте на MVC, он просто предлагает делить зоны отвественности между слоями, сами буковки для красоты и примера.

    вот смотри, у тебя есть модель tariff и ты ей там же через массив передаёшь параметры.
    ты пишешь $tariff = Tariff::findById(1); // SELECT * FROM tariff WHERE id =?
    затем тебе нужно скривать старые тарифы.
    $tariff = Tariff::findById(1); // SELECT * FROM tariff WHERE id =? AND hide <> 0
    Затем у тебя тариф привязывается к городу и т.д.
    Все эти правки ты делать водном месте в методе Tariff::findById, а плюсами пользуешься по всему коду.

    Контроллер, у твоём варианте ты пока делаешь валидацию и работу с данными формы через него, а затем это надоест и создашь классы validator и form и постепенно через рефакторинг нафигачишь десяток слоёв, которые будут хорошо делать только свою задачу. Но не надо имея легаси код сразу продумывать как ты разделишь классы, нужно рефакторить и плесать от того, что получается.
    Ответ написан
    2 комментария
  • Определение оператора по номеру телефона

    Zverenish
    @Zverenish
    Учитывая отмену «мобильного рабства», как называют это у нас и внедрение MNP, как это называется в Мире, — думаю такое определение потеряет актуальность, ибо все эти распределения довольно быстро станут неактуальными.

    По факту — Минкомсвязь перенесла внедрение MNP (Mobile number portability) c 1 декабря 2013 года на 1 марта 2014 года (по требованиям Минкомсвязи — смена оператора будет возможна с сохранением номера и стоимость услуги не должна превышать 100р), но ввела условие — кто «не успеет» — будет облагаться штрафом по 5копеек в день за каждого зарегистрированного абонента. А это для некоторых операторов будет составлять несколько миллионов рублей ежесуточно. Вполне большая сумма, что бы откладывать внедрение ещё дальше.

    Как мне видится — будет достаточно большая волна смен операторов. Ведь по факту многие не довольны тарифами/обслуживанием/услугами, но остаются, поскольку этот номер знают слишком большое число людей, которые даже не у тебя в контактах, но будет плохо, если не смогут тебе позвонить. Вот и сидят «в рабстве» у оператора из-за нежелания поменять номер.
    Это, конечно, будет иметь ещё и другие последствия, но это уже выходит за рамки вопроса.

    А вот будет ли где-то доступна актуальная база номер-оператор, пусть даже за небольшую сумму — вопрос хороший и ответа на него пока нет.
    Ответ написан
    1 комментарий
  • bootstrap 2.3 — пара вопросов

    @Nilard
    Если нужен контент на всю ширину, то .row > .span12 использовать не обязательно — чище будет код. В вашем случае я бы предпочел второй вариант, либо в первом обернул бы в .row каждый .span12

    У сетки механизм очень простой: .row имеет отрицательный margin-left, а .span* — положительный на то же значение. Поэтому их нужно использовать только совместно, или не использовать вообще, если контент на всю ширину.
    Ответ написан
    2 комментария
  • Разыскивается каркас приложения без жирка, а также желающие присоединиться к разработке open source проекта?

    EugeneOZ
    @EugeneOZ
    Шаблонизаторы на стороне сервера — уже не модно. Посмотрите в сторону AngularJS, EmberJS — будете отдавать обычные html-файлы nginix-ом и изредка запрашивать данные у сервера, в ответ получать JSON. Нагрузка уменьшится в разы, работать будет всё гораздо быстрее (меньше перезагрузок страниц).

    Без жирка есть Silex от Symfony.
    Есть ещё вот такое скопление файлов, которое можно заюзать для роутинга, авторизации по сессии и как направляющий базис (но это не фреймворк).
    Ответ написан
    2 комментария
  • API карт. id строений

    JustLuckyGuy
    @JustLuckyGuy
    geocode-maps.yandex.ru/1.x/?geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,+%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F+%D1%83%D0%BB%D0%B8%D1%86%D0%B0,+%D0%B4%D0%BE%D0%BC+7

    ответ возвращает в том числе:
    <boundedBy><Envelope><lowerCorner>37.608958 55.756807</lowerCorner><upperCorner>37.613054 55.759117</upperCorner></Envelope> </boundedBy><Point><pos>37.611006 55.757962</pos></Point>

    Подробнее — api.yandex.ru/maps/doc/geocoder/desc/concepts/input_params.xml
    Ответ написан
    4 комментария
  • Linux для бабушки?

    yogev_ezra
    @yogev_ezra
    Если не нужен интернет и браузер, то попробуйте нашу операционку KolibriOS (кроме шуток). С браузером у нас напряг, а вот игр (именно казуалок) как раз предостаточно. Интерфейс русскоязычный встроенный, флешки поддерживаются, просмотрщики фотографий имеются. Заразить нашу систему вирусом — нужно постараться :-) Скорость работы — проверьте сами :-)
    Ответ написан
    Комментировать
  • Работа с двумя базами данных?

    @wolandtel
    Тот же yii работает хоть с десятком.
    Ответ написан
    1 комментарий