• Что вы используете на десктопе?

    Voenniy
    @Voenniy
    Я остановился на linux mint 13 cinnamon
    Рекоммендую
    Ответ написан
    Комментировать
  • Что вы используете на десктопе?

    @Eddy_Em
    Дистрибутив — арч (но это ненадолго: чую, придется переходить на дженту).
    Рабочий стол — IceWM, настроена уйма клавосочетаний + запуск gmrun по Super+Space.
    Ответ написан
    2 комментария
  • Что вы используете на десктопе?

    @fst
    Перешел-таки на рабочем пк с гнома2 на юнити, но, правда, только с четвертой попытки и только в конце этой весны. С допиливанием практически не возился — наверное, уже просто надоело. И, знаете… привык. Все не так плохо.
    Ответ написан
    1 комментарий
  • Что вы используете на десктопе?

    @mithraen
    XFCE — легкий, быстрый и просто работает.
    Ответ написан
    2 комментария
  • Что вы используете на десктопе?

    Alukardd
    @Alukardd
    Работа — debian squeeze
    ноут — ubuntu 10.04
    домашний пк — linux mint debian (последний с mate)

    p.s. в mint всё нормально, кроме ужасной неудобности к новым именам форкнутых всех прог, в т.ч. gnome, nautilus, gedit и пр — всё имеет новые имена и их я вечно забываю.
    p.p.s. на данный момент думаю о дистре debian based с gnome3 и gnome-shell.
    Ответ написан
    1 комментарий
  • [решено] Как сделать прозрачный фон у Notification Area в Ubuntu 12.04?

    @w66fer
    Променял gnome2 на mate-desktop, месяцев шесть полёт нормальный.
    Ответ написан
    Комментировать
  • Как оптимизировать алгоритм сортировки файла?

    @rowdyro
    Ну я бы сделал так.

    Читать сроку, запоминать ее смещение от начала файла (int32), длину строки (int32), а время перевести в timestamp (int32) = ~12 байт на запись (+ оверхед явовских контейнеров)
    Сортировать все скопом по timestamp в один контейнер.

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

    В 512 Мб влезет ~44 млн. срок. (без учета оверхеда контейнеров)
    Ответ написан
    3 комментария
  • Как оптимизировать алгоритм сортировки файла?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Я не специалист по сортировке, но если быстро перебрать исходный (первый) файл и сделать копию только из второго столбца и номера строки — больше данных влезет в память (это второй файл).
    А по окончанию сортировки создать третий файл с результатами, выдергивая номера строк и з отсортированного второго файла, и забирая соответствующую строку из первого.
    Ответ написан
    1 комментарий
  • Du рапортует зацикленный путь и 'corrupted file system'. Как проверить, все ли в порядке?

    eaa
    @eaa
    > /var/named/chroot/var/named/chroot/var/named

    хм, ну если это точно не зацикленный путь — то можете не волноваться, ложная тревога.

    Но меня как-то смущает явная повторяемость "/var/named", ну и «du» думает так же, поскольку ищет повторяемость пути, а тут повторяется аж трижды.
    Ответ написан
    Комментировать
  • Как придти к автоматическому тестированию?

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

    @ShadowHacker
    Программист может быть полезен в ВПК, одинаково как в военное, так и в мирное время.
    Но только не тот программист, который пишет сайты, открывающиеся по 30 секунд через раз.
    И таких ithappens.ru/story/3099 лучше подальше держать от военной техники!
    Ответ написан
    1 комментарий
  • Как сделать чтобы порушенные билды не мешали коллегам?

    eugenius_nsk
    @eugenius_nsk
    Навскидку сразу видно несколько проблем.

    Во-первых, никакие тесты не должны изменять после себя базу. Если это интеграционные или приёмочные тесты, то их, например, можно проводить в транзакции, откатываемой после завершения каждого теста (кроме того, можно использовать in-memory DB — это заодно и ускорит выполнение тестов). А если это юнит-тесты, то они вообще не должны лезть в базу — надо переписывать код таким образом, чтобы юнит-тестирование не требовало обращений к БД (это, кстати, как правило и общее качество кода улучшает и делает код легче переиспользуемым).

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

    Кроме того, если все билды выполняются на одной машине, то их надо выполнять последовательно, а не параллельно — это уменьшает накладные расходы и общее время сборок/тестирования. А вот если вы выполняете сборки на разных машинах (например, TeamCity это умеет) — тогда да, можно запускать и параллельно, чтобы вычислительный ресурс не простаивал :-)
    Ответ написан
    Комментировать
  • Предсказание будущего?

    SLY_G
    @SLY_G
    журналист, переводчик, программист, стартапщик
    По представлениям об устройстве вселенной вы сейчас находитесь примерно на уровне Ньютона. Это называется «детерминизм».
    С тех пор наука неимоверно шагнула вперёд.
    В частности, известно, что наблюдатель всегда влияет на ход эксперимента. Поэтому наличие такого знания и такого компьютера само по себе изменяет ход вещей. Во-вторых, в микромире нет никакой определённости и всё происходит с некоей долей вероятности. В-третьих, есть принцип неопределённости Гейзенберга, википедия вам в помощь.
    Проще говоря, исходя из представлений современной физики, это теоретически невозможно. Неважно, какой у вас будет компьютер и какая база данных.
    Ответ написан
    3 комментария
  • Как правильно организовать аутентификацию пользователя при работе с Sockets?

    Anonym
    @Anonym
    Программирую немного )
    Если вы проверили пользователя и открыли для него сессию, зачем при каждом сообщении лазить в БД? Проверяйте сессию.
    Ответ написан
    Комментировать
  • Почему не срабатывает сравнивание строк?

    dewen
    @dewen
    если tag Строка то:

    tag==«v» — Это сравнение ссылок на объекты

    tag.equals(«v») — Это сравнение строк
    Ответ написан
    Комментировать
  • Синхронизация по списку значений?

    @Moxa
    как-то так…

    import java.util.concurrent.Callable;
    import java.util.concurrent.CancellationException;
    import java.util.concurrent.ConcurrentHashMap;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.Future;
    import java.util.concurrent.FutureTask;
    
    public class MyCache<K, V> implements Computable<K, V> {
    
        private final ConcurrentHashMap<K, Future<V>> cache = new ConcurrentHashMap<K, Future<V>>();
        private final Computable<K, V> c;
    
        public MyCache(Computable<K, V> c) {
            this.c = c;
        }
    
        @Override
        public V compute(final K key) throws InterruptedException {
            while (true) {
                Future<V> f = cache.get(key);
                if (f == null) {
                    Callable<V> eval = new Callable<V>() {
    
                        @Override
                        public V call() throws Exception {
                            return c.compute(key);
                        }
                    };
                    FutureTask<V> ft = new FutureTask<V>(eval);
                    f = cache.putIfAbsent(key, ft);
                    if (f == null) {
                        f = ft;
                        ft.run();
                    }
                }
                try {
                    return f.get();
                } catch (CancellationException e) {
                    cache.remove(key, f);
                } catch (ExecutionException e) {
                    throw new RuntimeException(e.getCause());
                }
            }
        }
    
        public static interface Computable<K, V> {
    
            public V compute(K k) throws InterruptedException;
        }
    }
    
    Ответ написан
    Комментировать
  • Перевод из C на Java. Указатели?

    @Maccimo
    В Java параметры в методы передаются по значению. В случае примитивных типов передаётся само значение, в случае классов — ссылка на экземпляр. out-параметров нет.

    Варианты:

    а) Переписать реализацию так, что бы выходных параметров не было. Например, создать класс, где оригинальная фунция decode и все вспомогательные станут методами, а параметры — полями класса с getters/setters.

    б) Применить следующую уловку:

    public class ByRef<T> {
    
    	private T ref;
    
    	public ByRef(T ref) {
    		set(ref);
    	}
    
    	public T get() {
    		return this.ref;
    	}
    
    	public void set(T ref) {
    		this.ref = ref;
    	}
    
    }
    
    


    Пример использования:

    public class Foo {
    
    	public static void bar(ByRef<String> value) {
    		value.set("Good bye!");
    	}
    
    	public static void main(String... args) {
    	
    		ByRef<String> message = new ByRef<String>("Hello!");
    
    		System.out.println("Before call: " + message.get());
    
    		bar(message);
    
    		System.out.println("After call: " + message.get());
    	
    	}
    
    }
    
    


    Но вариант «а» всё же более идеологически верный.
    Ответ написан
    1 комментарий
  • Решение задачи без множественного наследования?

    asm0dey
    @asm0dey
    Есть вариант написать класс на скале, например. В ней, если мне память не изменяет, есть множественное наследование.
    Ответ написан
    Комментировать
  • Google translate

    shushu
    @shushu
    Всё правильно, это такой формат у JSON для хранения UTF-8 символов, более того, если сделать json_decode этой строки — то всё должно встать на место.
    Ответ написан
    1 комментарий