Задать вопрос
  • Правильно ли я понимаю как работают green threads?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Еще "зеленые нити" из коробки есть в scala и erlang. Ну и во многих функциональных языках типа haskel.

    Максимальный размер стека обычно ограничен размером физической памяти. Если только не наложены ограничения, которое обычно можно изменить или убрать вообще. В линуксе начинать смотреть в файло /etc/security/limits.conf и на команду ulimit

    Каждый процесс имеет свой стек! А нить, любая, делит стек со всеми нитями процесса.
    Ответ написан
  • Какое выбрать оборудование для построения локальной сети?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Берите коммутаторы DLink DES/DGS 1210-28/ME(52) или 1510-28(52). Можно даже D-link DES/DGS-1100-24, но он не очень мультикаст тянет, а в остальном очень стабилены. Длинки поставляем всем заказчикам под проекты, да и у самих стоят, только на них и работаем. Умеют и VLAN и мультикаст и ACL-ы и даже 802.1x + DHCP-snooping.
    И да, мы занимаемся IPTV, поэтому знаю, о чем говорю.

    Что касается роутера, то я уже давно делаю так.
    Беру обыкновенный комп с двумя сетевыми картами с Core i3/i5 и 8-16Гб памяти, 2-4 HDD. За все про все 20-30к рублей.
    Ставлю на него ubuntu:
    - KVM
    - SAMBA
    - FireHol (фаервол)
    - OpenVPN
    - делаю диски в RAID 10
    На фаерволе прописываю маскарадинг, настраиваю файлопомойку на Samba.
    На KVM разворачиваю несколько виртуалок, одна с IP-телефонией (FreePBX), вторая с Windows Server 2008 (можно и самбой обойтись), третья для WEB/RedMine/Trac (ubuntu).
    Дополнительно на последнюю виртуалку ставлю inflyxdb + grafana, на основной хост collectd. Получаю статистику и красивые графики.

    В результате получаю:
    - мощный роутер
    - файлопомойку
    - домен виндовс
    - телефонию
    - организацию VPN с шифрованием и удаленным доступом
    - web-сервер с инструментами для коллективной работы (записки, заметки тикеты)
    И самим и заказчикам такое делаем практически на потоке!
    Ответ написан
    Комментировать
  • Где почитать о фичах систем хранения данных?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    О статейках не не скажу, гугль в помощь.
    А по делу, "late allocation" - ленивая аллокация, когда программа пишет в на СХД, но запись на диски происходит не сразу (и выделение места под сами данные), а после достижения некоторого порога в буфере или вообще асинхронно, или выбеляется блок данных только после окончания записи или сброса буферов на носители. В разных системах может быть реализовано немного по разному. Увеличивает скорость записи, так как не нужно постоянно перетрясать таблицу занятийх блоков.
    А вот и статья - https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BB%D...

    "sparse placement" - разряженное размещение, когда реально выделяется память (дисковая) только под реально записанные данные. Например, создал файл на 1 гиг, а записал в него 10 кило, место выделится только под реальные блоки данных. Иногда бывают интересные эффекты, когда данных больше, чем реальное заполнение хранилища.
    Ответ написан
    Комментировать
  • Стоит ли переходить на Mac OS?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Сильно похоже на линукс. Только лучше. Сам перешел с линукса на мак лет 8 назад, так и живем.
    Ответ написан
    Комментировать
  • Конвертер USB в RS-232?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я так понимаю, что устройство реализует в себе USB serial протокол. Т.е. подключая его непосредственно в USB-порт получаем в системе виртуальный COM?
    Если это так, то устройств таких нет!
    Можно просто комп в промежуток поставить и написать простенький враппер, который будет гонять данные с USB serial в стандартный RS-232. Программка такая пишется за день на питоне например.
    Ответ написан
  • Как доступаться до apache2 сайтов в локалной сети по домену .local?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Нужно прописать в локальную зону алиас на хост railsapp. Она (локальная зона local) у вас скорее всего есть, стоит в пакете dnsmasq. Если это так, то просто дописать в конфиг
    cname=railsapp,bakery
    Ну и перезапустить dnsmasq
    Конфиг находится в /etc/dnsmasq.d/network-manager , если стоит NetworkManager (ставится с иксами и гномом)
    или /etc/dnsmasq.conf или в файлах каталога /etc/dnsmasq.d/

    Для продвинутых мазохистов есть bind9, но это тема отдельного вопроса.

    PS. Работает ли passenger - смотреть в логи апаша.

    PPS. Если просто нужно получить доступ с другого хоста, то достаточно прописать этот алиас в файле /etc/hosts (для виндуз %SystemRoot%\system32\drivers\etc\hosts) на другом хосте.
    Например так:
    192.168.0.11 railsapp bakery
    Ответ написан
    Комментировать
  • Нужно ли использовать префиксы к именам переменных и классов?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    С введением умных IDE надобность отпадает абсолютно.
    А моду на это ввел мелкомягкий гигант со своей MFC. когда и переменные и функции и классы, по идее, должны были отражать всё что ни попади, вот и рождались numCfFlagForMyCoolBoolShitVariableToMemberAssHole.
    Мне лично практически никогда не пригождалось.
    Ответ написан
    Комментировать
  • Кто такой кодер? и чем он отличается от программиста?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Раньше, когда компьютеры были большими, экраны зелёными, а вместо флешек куски картонки, были две специальности (точнее три): математик-алгоритмист и оператор ВМ. Вот первый был типа программистом, а второй кодером - наборщиком (кодировщиком) перфокарт. Отсюда и пошло-поехало. Математик писал алгиритм на бумажке, оператор вводил это в ЭВМ (с бооольшой буквы), результат расшифровывал и передавал обратно математику.
    В общем, были хорошие кодеры (дырки правильно ставили), а были и не очень... https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D...
    Ответ написан
    2 комментария
  • Что лучше для сервера 2 процессора E5-2603 или 1 E5-2620?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А это смотря под какие задачи. Если у вас веб, то чем больше потоков, тем лучше. Если у вас числодробилка, то чем больше частота и кеш, то лучше. Если у вас мощная числодробилка в несколько потоков, то все вместе будет как раз и еще нехватать будет.
    Берите два поменьше, вместо одного.
    Ответ написан
    Комментировать
  • Какие принтеры хорошо работают по сети?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Все сетевые HP отлично работают, У нас даже Samsung сетевой стоит с двухсторонней печатью, тоже работает!
    Ответ написан
    Комментировать
  • Библиотека реализующая вывод по VT100 для DOS?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вообще-то termcap была портирована под DOS, кажется вместе с Emacs. Но я не о том, установите MSDOS-Kermit. В нем есть и поддержка VT100, и не только - www.columbia.edu/kermit

    Да, также он есть в виде библиотеки, которую можно применить в своих программах.
    Также, в свое время, была очень популярна библиотека TurboVision https://ru.wikipedia.org/wiki/Turbo_Vision - это как замена curses для DOS.

    Соответственно kermit + turbovision можно заменить всё что угодно.
    PS. Я один такой некромант?

    Ну а для многозадачности установите полуось вместо дос...
    Ответ написан
  • По какой причине ибп eaton nv 600h клацает и сигналит с разной переодичностью, секунд 10 то 5?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Поставьте утилиту, которая собирает логи с вашего ИБП, там все будет видно. Скорее всего сеть у вас фиговая, вот он туда-сюда и переключается, с байпаса на батарейки и обратно.
    Ответ написан
    2 комментария
  • Как ускорить шаблон Django?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    О!!! Нужно сделать свертку объектов!
    from collections import defaultdict
    
    _t_by_o2 = defaultdict(list)
    for t in tt:
       _t_by_o2[t.o].append=t
    
    _o2_by_o1 = defaultdict(list)
    for o2 in o22:
       _o2_by_o1[o2.o1].append=o2

    Теперь в шаблоне можно работать с хешами только по циклу o11 без ифов
    {% for o1 in o11 %}
    <span>{{o1.n}}</span>
    {% for o2 in _o2_by_o1.get(o1,[]) %}
    <span>{{ o2t.n}}</span>
    {% for t in _t_by_o2.get(o2,[]) %}
     <a href="/{{ t.u }}/">{{ t.n }}</a><span>({{ t.c }})</span>
    {% endfor %}
    {% endfor %}
    {% endfor %}

    Как-то так!
    PS. Я вообще не понимаю, зачем такие дикие циклы и чем они обусловлены?! В браузере мы всё равно лимон объектов не отобразим. Значит их всего максимум сотня-другая, а если это так, то что-то не то в консерватории взаимосвязей, или пытаемся делать не там их обработку. Может быть задуматься, почему нам нужно эти объекты связывать при отображении и почему они до сих пор находятся в таком кошмаре?!
    Ответ написан
    1 комментарий
  • Какой производитель DVI шнуров лучше?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Есть несколько типов кабелей и разъемов DVI - DVI-I и DVI-D. Обычно все делают полный DVI-кабель, соответствующий обеим стандартам, а карточки работают обычно по DVI-D (digital). По импедансу они все должны соответствовать стандарту, так что разницы между ними нет, практически никакой.
    Это все также относится к "теплому цифровому звуку", если верите, то покупайте самый дорогой! Если нормальный инженер, то берите дешевый!
    Единственное, что встречал на совсем дешевых разъемах HDMI (прикупили для проекта 500 шт. по 120 руб.) - неглубокий отлив перед железной частью разъема, из-за чего иногда они физически не входили до конца в материнский разъем на некоторых платах. Решалось подрезкой пластика на пару миллиметров ножем для бумаг. Качество "теплого цифрового видео/звука" полностью соответствовало стандарту.
    Ответ написан
  • Как сделать редирект всех сайтов на локальный?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Заменить foo_serverip на внутренний адрес
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:80
    iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A POSTROUTING -t nat -j MASQUERADE
    Ответ написан
  • JSF-реальный фрейворк или набор спецификаций?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Jsf стандарт, у которого, как обычно есть куча реализаций.
    richfaces.jboss.org
    https://myfaces.apache.org
    Далее везде
    Ответ написан
    Комментировать
  • Где найти материалы по передаче данных?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    book.itep.ru надеюсь поможет! Кнопочка "index" в самом верху странички, если чо...
    PS. До кучи, кажется то что нужно, иначе там умереть можно book.itep.ru/2/convrs_2.htm
    Ответ написан
    Комментировать
  • В какой момент подключается DNS?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    DNS не подключается, если его на программном уровне не спрашивают. Достаточно IP-адресации. Собственно DNS такой-же как и SSH или HTTP, ничем от них не отличается, разве что бегает по UDP. Соответсвенно это протокол приложения (OSI 7).
    Обычно встроен в стандартную сетевую библиотеку (для удобства) - вызовы GetHostAddresses (мастдай) или gethostbyname (труевей).
    Ответ написан
    Комментировать
  • Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, для начала почитать паттерны проектирования, они изначально были следаны для явы, некоторые к питону прямо не относятся (в силу того, что на питоне можно вообще без классов, и можно вообще в стиле функционального программирования), но дают хорошую базу именно в ООП. С другой стороны, если в яве дизайн именно ООП, то на питоне иной раз не хочется и класс заводить, а пишешь в стиле функциональщины.
    Наверное первое что нужно сделать, изучить области видимости и помечтать как они могут пригодиться...
    Ответ написан
    2 комментария
  • Где взять csrf token для lk.megafon.ru?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Так ведь все просто!
    Фома состоит из трех полей
    CSRF - тип hidden, в значении value как раз и лежит то, что вам нужно.
    j_username: тут все понятно
    j_password: тут тоже

    Нужно:
    1) запросить страницу /dologin/ (запрашивать страницу нужно каждый раз при новом логине)
    2) отпарсить html и выбрать значение value из
    3) Отсылаем все ТРИ поля (CSRF, j_username, j_password) на /dologin методом post.
    4) Получаем ответ и смотрим на куки и прочую фигню..

    Отпарсить
    from HTMLParser import HTMLParser
    import urllib2
    req =  urllib2.urlopen("https://lk.megafon.ru/dologin/")
    data = req.read()
    class MyHTMLParser(HTMLParser):
    	def handle_starttag(self, tag, attrs):
    		attr = dict(attrs)
    		if tag == "input" and attr.get('name', "") == "CSRF":
    			print "Encountered a start tag:", tag, attr["name"], attr["value"]
    
    parser = MyHTMLParser()
    parser.feed(data)

    Encountered a start tag: input CSRF 2c8b2246-6e99-4469-924f-2c8086cd2dae
    Ответ написан
    Комментировать