• Судьба Chromium

    avalak
    @avalak
    1. Ubuntu 10.04 Desktop больше не поддерживается (апдейтов не будет). Пора обновлять систему.
    2. Flash для linux в принципе обновляется не ахти (в репозитории есть flash plugin + chrome имеет свою версию через PPAPI)
    3. Chromium вполне себе обновляется (Arch linux 27.0.1453.93)
    Ответ написан
    Комментировать
  • Android: ListView — разноцветные items?

    Allesad
    @Allesad
    PVOID задал справедливый вопрос — зачем хранить в адаптере вьюшки? Это совершенно не рациональное использование ресурсов. По сути, все что вам нужно знать — тип текущего элемента листа. По этому типу вы можете устанавливать фон нужного цвета.

    Пример:
    1) Создаем статичный класс (опционально статичный, можно куда-нибудь запихать в нагрузку) со всеми цветами — скажем, ListColors.

    public class ListColors {
        public static final Integer RED      = 0;
        public static final Integer GREEN    = 1;
        public static final Integer BLUE     = 2;
        public static final Integer YELLOW   = 3;
        public static final Integer PURPLE   = 4;
    }
    


    2) Создаем класс, описывающий элемент списка — ListItem. Тут важно свойство type, которое будет хранить тип элемента. А типом элемента будет любая из констант класса ListColors.

    class ListItem {
        private Long id;
        private Integer type;
    
        public ListItem(Long id, Integer type){
            this.id     = id;
            this.type   = type;
        }
    
        public Long getId(){
            return id;
        }
    
        public Integer getType(){
            return type;
        }
    }
    


    3) Далее пишем сам адаптер, в конструктор которого будет передаваться Context (никогда не помешает) и список элементов в формате List<ListItem>.

    class TestAdapter extends BaseAdapter implements ListAdapter {
    
        private Context context;
        private List<ListItem> items;
    
        public TestAdapter(Context context, List<ListItem> items){
            this.context    = context;
            this.items      = items;
        }
    
        @Override
        public int getCount() {
            return items.size();
        }
    
        @Override
        public ListItem getItem(int position) {
            return items.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            return items.get(position).getId();
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ListItem item = getItem(position);
            convertView = LayoutInflater.from(context).inflate(R.layout.list_row_item, null);
    
            LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.view_background);
    
            Integer colorRes;
            switch (item.getType())
            {
                default:
                case ListColors.RED:
                    colorRes = context.getResources().getColor(R.id.red);
                    break;
                case ListColors.GREEN:
                    colorRes = context.getResources().getColor(R.id.green);
                    break;
                case ListColors.BLUE:
                    colorRes = context.getResources().getColor(R.id.blue);
                    break;
                case ListColors.YELLOW:
                    colorRes = context.getResources().getColor(R.id.yellow);
                    break;
                case ListColors.PURPLE:
                    colorRes = context.getResources().getColor(R.id.purple);
                    break;
            }
            layout.setBackgroundColor(colorRes);
            return convertView;
        }
    }
    


    В методе getView() мы получаем элемент списка, получаем базовый layot элемента списка (в данном случае типа LinearLayout), затем проверяем тип элемента и присваиваем layout'y нужный цвет. Можно еще хранить view элемента списка в holder'e, чтобы не создавать его каждый раз, но это частности.
    Ответ написан
    2 комментария
  • Android: ListView — разноцветные items?

    PVOID
    @PVOID
    Подсказка: BaseAdapter.getItemViewType(int position)

    BTW, а почему вы в адаптере вьюшки храните?
    Ответ написан
    1 комментарий
  • Внешняя батарея для телефона?

    magdar
    @magdar
    Пользуюсь interstep PB3000, не самый ёмкий вариант, но на честную пару зарядок телефона хватает. Отдельный бонус вытяжной кабель микро-usb для зарядки телефона.
    Ответ написан
    Комментировать
  • Внешняя батарея для телефона?

    @SleepingLion
    Заказывал с DX батарею, как на третьей вашей ссылке. Лёгкая, удобная. Реальную ёмкость не проверял, но со своей задачей справляется.
    Кабели, которые они в комплект кладут (на самом деле за отдельную цену), потраченных на них денег не стоят.
    Могу посоветовать найти на том же DX аналогичную, с минимальным набором кабелей и без переходников.
    Кстати, данная конкретная батарея не поддерживает возможность собственной подзарядки одновременно с питанием заряжаемых устройств — имейте в виду.
    Ответ написан
    Комментировать
  • Внешняя батарея для телефона?

    sisaenkov
    @sisaenkov
    Сам использую такой дейвайс. Очень доволен.
    Ответ написан
    3 комментария
  • Аудиочат ASP.NET

    NetBUG
    @NetBUG
    А TeamSpeak сбоку поставить не вариант? Или Вы хотите именно привязку к игровым комнатам?
    Каков срок жизни сообщений должен быть?
    Игру Вы писали, или кто-то другой? (вопрос к чему — если Вы можете реализовать хранение текстового сообщения и вопрос только в работе со звуком, то всё просто; если нет — то увы).

    Я вижу два варианта.
    «онлайновый с редкой трансляцией» — на сервере заводится радио (shoutcast, например), каждой комнате присваивается отдельный канал, радио играется в плеере, отдельном фрейме, где угодно. При смене комнаты игра меняет канал. Недостаток — для трансляции игроку нужно сделать не совсем тривиальные действия.
    Нагрузка — битрейт канала * число игроков. На процессор нагрузка небольшая, если сервер радио не перекодирует поток.

    Второй — хранение «сообщений». Игрок использует флэшку, она сохраняет файл в помойке с уникальным названием, в комнате остаётся ссылка. По истечении n времени файл и ссылка удаляются.
    Для записи есть простенькие jQuery-плагины — www.sajithmr.me/jrecorder-jquery — требуется небольшой скрипт на сервере для сохранения файла.
    Модифицировать игрушку, естественно, Вам ;)
    Сервер ничего не перекодирует, нагрузка исключительно на канал в объёме скачивания файлов.

    Удачи!
    Ответ написан
    2 комментария
  • Удобный UI для сортировки/фильтрации?

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

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

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

    Ну и подитоживая извиняюсь за много букв и соглашаюсь в общем случае с Ethiopian — интуитивно понятно значит лучше даже если занимает много места (разумно много конечно).
    Ответ написан
    Комментировать
  • Смена страны привязки в Google Play

    zadnica
    @zadnica
    Инструкция от саппорта гугла для возвращению русского маркета:

    1) Войдите в свой ​​аккаунт Google Wallet для управления способами оплаты ( wallet.google.com/manage/paymentMethods )
    2) Добавить новую карту или изменить настройки по умолчанию платежного инструмента на один с платежный адрес находится внутри желаемую страну
    3) Откройте Play магазин и перейдите к любому элементу доступна для загрузки
    4) Нажмите, чтобы начать загрузку, пока не достигнете «Принять и купить» экран (нет необходимости для завершения покупки)
    5) Закройте магазин Play и ясные данные для магазина Google Play приложений (настройки> приложения> Google Play магазин> Удалить данные) или очистить кэш браузера
    6) Re-Play открыть магазин. Теперь вы должны увидеть Play магазина, который соответствует вашей стране биллинга оплаты по умолчанию инструмента.
    Ответ написан
    5 комментариев
  • Удобный UI для сортировки/фильтрации?

    Ethiopian
    @Ethiopian
    Я бы в любом случае выбирал наиболее интуитивный вариант. Пусть даже он чуть больше места занимает.
    Ответ написан
    2 комментария
  • Как перегрузить функцию внутри шаблона?

    @vScherba
    Насколько я понял, Вам нужно специализировать in для matrix<char*>:

    template <typename T> class matrix
    {
    private:
        T **m_container;
        int m_rows;
        int m_columns;
        
        void in(int i, int j)
        {
            cin >> m_container[i][j];
        }
    };
    
    template<>
    void matrix<char*>::in(int i, int j)
    {
        m_container[i][j] = new char [100];
        cin.getline(m_container[i][j], 100);
    }][j], 100);
    }
    
    Ответ написан
    Комментировать
  • Как правильно поделить доли в IT-бизнесе?

    @joneleth
    Да просто прикиньте в уме и обговорите. Помню, у Пола Грэхема было: оптимальное разделение — когда каждый из участников немного недоволен (getting slightly a bad deal).
    Ответ написан
    Комментировать
  • Не воспроизводится HTML5 видео до полной загрузки + 4k видео тест

    @nicolausYes
    В 4k все упирается в hdd, у кого не ssd — будет тормозить.
    Давайте посчитаем.

    Возьмем, для простоты, один из стандартов, в котором по ширине и по высоте видео больше Full-HD ровно в два раза (по ширине чуточку больше).

    Разрешение — 3996 × 2160.
    Количество пикселей = 3996 * 2160 = 8 631 360.
    В лучшем случае, закодировано в NV12 или подобном формате, т.е. 12 бит на пиксель, итого:
    8 631 360 * 12 = 103 576 320 бит = 12 947 040 байт = 12,347 Мбайт – примерно столько занимает один кадр.
    А теперь посчитаем при, хотя бы, 30 кадров в секунду – 370 Мбайт в секунду. Не каждый накопитель может такое потянуть.

    По поводу вопроса – все играет с начала и сразу. Win 8 x64. Chrome 26.0.1410.64 m
    Ответ написан
    6 комментариев
  • Где посоветуете завести программистский блог?

    alrusdi
    @alrusdi
    Blogspot же — максимально кастомизиремо, на мой взгляд:
    www.stylifyyourblog.com/2012/07/syntax-highlighting-in-blogger-using.html
    А на относительно отвлеченные темы лучше подкасты пишите. Я первый в очереди на прослушивание по пути на работу и обратно
    Ответ написан
    Комментировать
  • Будет ли интересен каталог инструментов для разработки мобильных приложений?

    Arcanacabana
    @Arcanacabana
    Напишите, пожалуйста.
    Ответ написан
    Комментировать
  • Будет ли интересен каталог инструментов для разработки мобильных приложений?

    @lopatoid
    Ну напишите статью на хабр с обзором всех этих сервисов :)
    Ответ написан
    Комментировать
  • Статистика по мультитачу?

    @mrHobbY
    Согласно Android Compatibility Definition Document все Android устройства обязаны иметь тач.
    Если же определенное устройство не имеет тача (а также камеры, вайфая, bluetooth), как например Google TV, то такое устройство не получит доступ в Маркет.
    ref

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

    И небольшой стат по экранам.

    Не знаю насколько я Вам помог, но это то что есть.
    Ответ написан
    Комментировать
  • Синхронизация состояний контента между устройствами?

    subvillion
    @subvillion
    Архитектурно решений вижу 2.

    1. Свой API снаружи обрабатывающий запросы ios приложения.
    2. Локальное хранение файла настроек (sqlite, etc) и выгрузка/загрузка его в облако (dropbox, icloud, yadisk, etc)
    Ответ написан
    Комментировать