Задать вопрос
  • Что делать если с ростом проекта архитектура превратилась в кашу и быдлокод?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Главное тесты пишите, иначе рефакторить проект практически нереально.
    Ответ написан
    2 комментария
  • Есть ли хорошие книги по Clojure?

    @portfelio
    Так может вам начать с Scheme?

    Если по теме, то начинать можно с этой книги (en) и переходить на эту (ru), дополнив свои чертоги разума статьями из IBMN (ru) и Хабра (ru).

    Однако, если ваша цель состоит в том, чтобы понять принципы ФП на любом языке, то я бы выбрал путь Scheme->Erlang->Haskell->Clojure с возможностью остановиться на любом из языков. Лично мои пристрастия сводятся к Erlang+Haskell: erlang для работы и хобби, haskell для расширения кругозора.
    Ответ написан
    2 комментария
  • Как выбрать лицензию для open-source программы?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    MIT, если вам всё равно как будут пользоватся программой.

    www.freebsdnews.net/wp-content/uploads/open-source...
    Ответ написан
    1 комментарий
  • В чем разница импорта библиотек (import *)?

    ptitca_zu
    @ptitca_zu
    Programmer. Reader. Introvert
    Мне очень понравилось разъяснение, которое давалось в курсе на CodeAcademy, если мне память не изменяет. Там было так.

    Вы сидите в комнате и что-то делаете, а коробки (модули) с инструментами (функциями) находятся в другой комнате. Также у вас есть помощник (интерпретатор), который приносит вам коробки и инструменты из другой комнаты. Вы можете попросить его 3-мя способами.

    1. import box
    Принеси мне коробку box, я сам буду брать из нее нужные инструменты

    2. from box import tool
    Принеси мне tool из коробки box, я буду им пользоваться, не залезая в коробку

    3. from box import *
    Принеси мне коробку box и достань из нее все инструменты

    Вообще, в больших проектах лучше использовать 1 (или 2) и стараться избегать 3.
    Ответ написан
    Комментировать
  • Какую библиотеку лучше взять для работы с AD?

    kenny_opennix
    @kenny_opennix
    Я для авторизации пользователей использую python-ldap, лично для меня простой и стабильный клиент.
    Нормально работает с ad.
    Ответ написан
    Комментировать
  • Erlang: как выполнить код на удаленной ноде?

    @couchemar
    www.erlang.org/doc/man/rpc.html#call-4 для выполнения функций на другой ноде.

    www.erlang.org/doc/man/erlang.html#disconnect_node-1 для отсоединения, вызываем также посредством rpc:call на ноде test@`hostname`.
    ну и завершить все можно init:stop() чтоб закрыть интерпретатор.

    как то так:
    erl -sname console -remsh "test@`hostname`" -eval "rpc:call('test@`hostname`', test, test, []), rpc:call('test@`hostname`', erlang, disconnect_node, [node()]), init:stop()."
    Ответ написан
    Комментировать
  • Как происходит ресолвинг NS серверов?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Вкратце на примере моего домена (qs.biz)

    (точка это корневой домен, от него резолвинг начинается)
    inkvizitor68sl@malygos:~$ host -t NS -v .
    Trying "."
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64922
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;.				IN	NS
    
    ;; ANSWER SECTION:
    .			110843	IN	NS	b.root-servers.net.
    .			110843	IN	NS	j.root-servers.net.
    ...... тут ещё много.


    ip-адреса всех root-servers.net. прописаны в конфигах всех резолверов, чтобы их не приходилось резолвить (в bind9 уж точно).

    Дальше резолвим зону biz:
    inkvizitor68sl@malygos:~$ host -t NS -v biz. b.root-servers.net.
    Trying "biz"
    Using domain server:
    Name: b.root-servers.net.
    Address: 192.228.79.201#53
    Aliases: 
    ....... 
    ;; AUTHORITY SECTION:
    biz.			172800	IN	NS	b.gtld.biz.
    biz.			172800	IN	NS	a.gtld.biz.
    .....
    ;; ADDITIONAL SECTION:
    a.gtld.biz.		172800	IN	A	156.154.124.65
    b.gtld.biz.		172800	IN	A	156.154.125.65
    a.gtld.biz.		172800	IN	AAAA	2001:503:7bbb:ffff:ffff:ffff:ffff:ff7e
    ......

    Здесь мы видим, что в ответе DNS сервера нам сразу прислали IP-адреса NS-серверов этой зоны (так как они находятся в самой зоне).

    Дальше спрашиваем NS-ы моего домена:
    inkvizitor68sl@malygos:~$ host -t NS -v qs.biz. 156.154.124.65
    Trying "qs.biz"
    Using domain server:
    Name: 156.154.124.65
    Address: 156.154.124.65#53
    .....
    ;; AUTHORITY SECTION:
    qs.biz.			7200	IN	NS	MASTER.qs.biz.
    qs.biz.			7200	IN	NS	SLAVE1.qs.biz.
    
    ;; ADDITIONAL SECTION:
    MASTER.qs.biz.		7200	IN	A	176.9.238.243
    SLAVE1.qs.biz.		7200	IN	A	46.4.251.94
    SLAVE1.qs.biz.		7200	IN	AAAA	2a01:4f8:120:918c::a

    Аналогично, сразу прислали ip-адреса серверов.

    Ну и дальше резолвим сам домен:
    inkvizitor68sl@malygos:~$ host qs.biz. 176.9.238.243
    Using domain server:
    Name: 176.9.238.243
    Address: 176.9.238.243#53
    Aliases: 
    
    qs.biz has address 176.9.238.243


    Само собой, всё это происходит не у вас в системе, а на резолвере, который вы используете.

    Ну а для обычного домена, делегированного на NS-серверы в другой зоне, ip-адреса присылаться в additional section не будут (при условии, конечно, что их явно не указывали при делегировании):
    inkvizitor68sl@malygos:~$ host -t NS -v vlad.pro. b0.pro.afilias-nst.org.
    Trying "vlad.pro"
    Using domain server:
    Name: b0.pro.afilias-nst.org.
    Address: 2001:500:c1::1#53
    Aliases: 
    
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33961
    ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;vlad.pro.			IN	NS
    
    ;; AUTHORITY SECTION:
    vlad.pro.		86400	IN	NS	slave1.qs.biz.
    vlad.pro.		86400	IN	NS	master.qs.biz.
    
    Received 74 bytes from 2001:500:c1::1#53 in 55 ms


    Это в совсем простом виде если объяснять.
    Ответ написан
    Комментировать
  • Стоит ли переходить с Python на Go?

    @scft
    Программисты на Go, обычно, слишком быстро умирают от голода.
    Ответ написан
    Комментировать
  • Какие технологии выбрать для написания чата?

    5HT
    @5HT
    Erlang
    Пример чата на Вебсокетах под Erlang:

    event(chat) -> wf:send(chat, wf:q(message)),
    
    body() ->
        wf:async(fun() -> loop() end,chat),
      [ #panel{id=history}, #textbox{id=message}, #button{postback=chat}].
    
    loop() ->
        receive
             Message ->
                 wf:insert_bottom(history, #span{text=Message}),
                 wf:flush()
        end,
        loop().


    Полный пример можно посмотреть здесь:
    https://github.com/5HT/n2o/tree/master/samples
    Ответ написан
    Комментировать