Задать вопрос
  • Как правильно разметить диск в Ubuntu Server?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Правильно использовать LVM. Сделать в нем 3-4 раздела:
    /root - 20-40Gb
    /var - 20-40Gb
    /home - 100Gb
    /var/www - 30% от оставшегося.

    Далее, по мере необходимости добавлять пространства в нужный раздел командами lvextend и resize2fs (для ext4)
    Ответ написан
    Комментировать
  • Как массово увеличить размеры картинок?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Как-то так, используя www.imagemagick.org (ставится из пакетов)
    find /myfolder -name "*970.jpg" -exec  mogrify -resize 256x256 {} \;
    Ответ написан
    8 комментариев
  • Как объеденить tun* в мост?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, в общем так. TUN объединить в мост (bridge) не получится, просто по определению. Так как tun, это туннельный интерфейс. А объединить в мост можно только то, что как-то напоминает ethernet, например интерфейс TAP.
    Соответственно, чтобы осуществить задуманное, нужно перевести все openvpn на использование tap.
    На всякий случай, почитать отличия - https://ru.wikipedia.org/wiki/TUN/TAP
    PS. Помните, что при использовании TAP, в туннель польется вся грязь из всего сегмента ethernet.
    Ответ написан
    8 комментариев
  • Background task, большая таблица, CURSOR и update, стоит ли открывать 2 сессии?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вообще-то зря паритесь. Но, есть небольшие но. Не помню как в постгресе, но по аналогии с версионными базами данных (а постгрес как раз оно, по типу оракла), то записи в рамках транзакции копируются с новой версией, а по завершении транзакции просто остаются на месте. Вот откат транзакции, особенно большой, может быть очень болезненным.
    В общем, упереться можно только в два момента, нехватка памяти, и нехватка диска. Когда до этого дойдет, то можно выбирать записи кусочками по 1000 и более штук. Их обрабатывать и коммитить, Далее выбирать следующий кусочек. Так будет легче и для базы и для отслеживания.
    Ответ написан
    Комментировать
  • Кто знает замену MongoDB?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну могу посоветовать, как альтернативу, Elasticsearch. Но, боюсь, она вам еще больше не понравится, хотя на мой взгляд очень даже. По моему, у вас просто что-то не то с организацией данных, да и какие проблемы выбрать последние 10 по дате? Это же обыкновенный поиск по индексу, все должно очень быстро работать.

    PS.
    recloudor: И да, как альтернативу сортировке, предлагаю использовать для этого REDIS. При добавлении поста в монгу, добавлять id поста дополнительно и в list REDIS.
    rpush user_posts:id1234 321
    Из редиса доставать ОДНИМ запросом идентификаторы последних n-записей
    lrange user_posts:id1234 10 -1
    Ответ написан
    4 комментария
  • Как сделать биллинг на 1С-Битрикс?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Лучше взять покупной! Например UTM. А из битрикса генерировать события для биллинга.
    Сами биллинг не напишете. А если и напишете, то не сертифицируете, и соответственно, съём денег будет незаконен.
    Ответ написан
    Комментировать
  • Как увеличить скорость загрузки системы?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Смотреть, что тормозит при загрузке. У меня даже на атоме - загрузка 3-4 секунды, без графики - Ubuntu. С графикой секунд на 3-5 медленнее.
    Скорее всего тормозит загрузку какой нибудь сервис, или неправильно настроенные DNS-сервера, что влияет на все сетевые сервисы.
    Ответ написан
    3 комментария
  • Почему Hibernate не подхватывает новые записи в базе?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Подозреваю, что дело в кешировании. Чтобы сбросить кеш, используйте Session.clear()
    Ответ написан
    1 комментарий
  • Какие особенности работы коммутатора с mulsticast?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    О! Вы входите в зону боли :-)
    Все зависит от задачи, но самое первое - настроить IGMP Snooping.
    Далее, либо фильтровать, либо пропускать, либо подписывать, либо проксировать, либо все вместе.
    Ну и включить PIM например. Тема такая же широкая, как роутинг, чем собственно, оно и является, только на основе коммутаторов.

    Ну, а если вкратце, то мультикаст обязательно, нет, даже так - ОБЯЗАТЕЛЬНО нужно фильтровать, иначе этот трафик побежит на все, абсолютно ВСЕ порты, виланы и устройства. И скорее всего эти устройства (принтеры, модемы, точки WiFi, ip-телефоны), в том числе и коммутаторы (даже сиськи ложатся под наплывом мультикаста), просто перестанут работать. А проблему будете искать не один час.

    В общем, один мультикаст-поток в 5-10мегабит в сети без IGMP Snooping приводит всех в чрезвычайное удивление.
    Ответ написан
    Комментировать
  • CISCO: [port#] [replace IP address] [switch fabric]: название технологии?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ага, понял, что нужно!
    Можно попробовать реализовать такое в линуксе через iptables и vconfig.
    Заводим на коммутаторах по vlan на устройство. Все виланы поднимаем на линуксе через vconfig. Будет куча виртуальных портов типа v0002 ... vXXXX.
    Каждому интерфейсу присваиваем адрес из подсети 192.168.0.x
    ip addr add 192.168.0.12/32 dev v0002
    ip addr add 192.168.0.13/32 dev v0003
    ip addr add 192.168.0.14/32 dev v0004
    ...
    ip addr add 192.168.0.XX/32 dev v00XX

    Далее, на каждом IP делаем редирект на нужный интерфейс
    iptables -t nat -A PREROUTING -i v0002 -j DNAT --to 192.168.0.1
    iptables -t nat -A PREROUTING -i v0003 -j DNAT --to 192.168.0.1
    iptables -t nat -A PREROUTING -i v0004 -j DNAT --to 192.168.0.1
    ...
    iptables -t nat -A PREROUTING -i v00XX -j DNAT --to 192.168.0.1

    Таким образом, при обращении на адрес 192.168.0.14 запрос будет уходить в нужный вилан.
    Можно попробовать сделать тоже самое через POSTROUTING с изменением адреса отправителя и порта назначения.
    Ответ написан
  • Как правильно организовать стриминг rtsp через сервер debian?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую присмотреться к модулю rtmp для nginx https://github.com/arut/nginx-rtmp-module
    По вопросам.
    1) это адрес потока с камеры?
    2) что значит через свой локальный ip? Как вы это представляете? Или нужно с локального ip публиковать поток с камеры на сервере? Тогда берете ffmpeg и публикуете на rtmp nginx.
    3) да, поток камеры умножаем на количество смотрящих плюс 8-10% на транспортный протокол. Избежать вариантов всего два, если в локальной сети - пользуем малтикаст, но к этому еще и коммутаторы настроить нужно. Если в интернет, то только ограничением числа одновременных подключений, и ищите хостинг, который вас не попросит уйти взад ( у многих хостингов до сих пор есть сноска насчет трансляции мультимедиа, читайте договор-оферту), или идите на колокейшен в какой нибудь датаценрт.
    Ответ написан
    Комментировать
  • Распознавание возраста и эмоций по фотографии?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ответ написан
    Комментировать
  • Реально ли получить forloop.counter внешнего цикла?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Так?
    <table class="table">
        {% for category in categorys %}
            {% if category.is_leaf_node %}
            <tr class="treegrid-{{ forloop.counter }}">
    {% set outer_counter = forloop.counter %}
                <td>{{ category.name }}</td>
            </tr>
                {% for product in category.get_products %}
                    <tr class="treegrid-{{ forloop.counter|add:1 }} treegrid-parent-{{ outer_counter }}">
                        <td>{{ product.title }}</td>
                    </tr>
                {% endfor %}
            {% endif %}
        {% endfor %}
        </table>
    Ответ написан
  • Стоит-ли брать MacBook pro 13 mid 2012 если сейчас у меня mbp 13 mid 2010?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    У меня macbook white на core2duo и macbook pro 2012 с i5 - везде память 8гб. Разница чувствуется сильно! Виртуалки работают на порядок быстрее, да и графика тоже.
    Так что наверное смысл поменять есть.
    Ответ написан
    Комментировать
  • Как сделать правильную сегментацию сети?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, я бы начал с vlan-ов. По вилану: бухгалтерам, программерам, манагерам, оборудованию. Отдельно гостевой вилан для wifi. Все виланы сволятся в центральный коммутатор, там же и маршрутизуются. На коммутаторах настраивается gvrp и dhcp-snooping, политиками доступа на центральном - какой вилан куда ходит.
    На вайфай точках поднимаются по две сети, гостевая и рабочая (можно еще и для программеров с бухгалтерами до кучи).
    На роутере настраивается какому вилан какая полоса доступна, дополнительно можно выделить зону DMZ для доступаиз интернет.

    Виланы - хорошо! Особенно, если программеры любят гадить мультикастом (тогда поднять igmp-snooping).

    Ну и совсем для параноиков - радиус-сервер с авторизацией по 802.1x и гостевым виланом на свичах. Будет очень энтерпрайзненько :-)
    Ответ написан
    Комментировать
  • Как лучше оформить java code?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Создаем case-классы: помещаем их в HashMap и... Вуаля! Никаких ифов! Расширяется просто - добавлением нового класса и инициализацией мапа.
    Context используем для хранения в передачи всякой фигни.
    package my.com;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class MyJob {
    	class Context {
    		private String astring;
    
    		public Context(String string){
    			this.setAstring(string);
    			// set properties
    		}
    
    		public String getAstring() {
    			return astring;
    		}
    
    		public void setAstring(String astring) {
    			this.astring = astring;
    		}
    	}
    	
    	interface Worker {
    		public int doWork(Context c);
    	}
    
    	class MultiChoose implements Worker {
    
    		@Override
    		public int doWork(Context c) {
    			c.getAstring();
    			System.out.println(c.getAstring() +" MultiChoose");
    			c.setAstring("Новая фигня");
    			return 0;
    		}
    		
    	}
    
    	class Choose implements Worker {
    
    		@Override
    		public int doWork(Context c) {
    			System.out.println(c.getAstring() +" Choose");
    			return 0;
    		}
    		
    	}
    	class AnotherString implements Worker {
    
    		@Override
    		public int doWork(Context c) {
    			System.out.println(c.getAstring() + " AnotherString");
    			return 0;
    		}
    		
    	}
    
    	class Nothing implements Worker {
    
    		@Override
    		public int doWork(Context c) {
    			System.out.println("Nothing");
    			return 1;
    		}
    		
    	}
    	public static void main(String[] args) {
    		MyJob job = new MyJob();
    		Map<String, Worker> cases = new HashMap<String, Worker>();
    		cases.put("Выбор", job.new Choose());
    		cases.put("МультиВыбор", job.new MultiChoose());
    		cases.put("yetanotherSubString", job.new AnotherString());
    		
    		
    		String[] keys_for_test = {"Выбор","МультиВыбор","yetanotherSubString","WrongKey"};
    		Context content = job.new Context("Всякая фигня");
    
    		for (String key:keys_for_test) {
    			Worker worker = cases.getOrDefault(key, job.new Nothing());
    			worker.doWork(content);
    		}
    
    	}
    
    }

    Результат
    Всякая фигня Choose
    Всякая фигня MultiChoose
    Новая фигня AnotherString
    Nothing
    Ответ написан
    1 комментарий
  • Как избавится от проблемы "Database is locked"?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Что за база? Connection pool используем?!
    Ответ написан
    Комментировать
  • Apache на OS X – не открывается папка localhost, как настроить?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Конфиг в студию или на pastebin.com например.
    Ну и в терминале глянуть, от какого пользователя апач запущен
    $ ps axu | grep apach

    PS. Вот здесь хорошее рабочее описание - osxh.ru/yosemite/apache
    Ответ написан