juan_gandhi: (VP)
[personal profile] juan_gandhi
Sorry, something went wrong.

We're working on getting this fixed as soon as we can.

Go Back

Facebook © 2012 · Help

(и календарик прошлогодний)

А потому что скрипт-киддиз одни собрались, нет чтобы хаскельщиков нанять - но хаскельщиков они боятся!
From: [identity profile] serge shikov (from livejournal.com)
Мне на самом деле любопытно, без шуток.

Ну например - это не те календари, но суть я уловил. Репозитории есть, пусть и не такие широкомасштабные.

> спартанским и минималистичными.
Ну, тут разница тонкая. Я не предлагаю все тащить в язык. Просто, э-э-э, проекты под JVM и .Net по понятным причинам намного проще расширять готовыми компонентами, и компонентов этих, ровно по той же причине, сильно больше.

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

Ну и что в сухом остатке-то? То есть, если выбор между C++ и эрланг - то не вопрос. Если это не эмбеддед - то выводы предсказуемы.

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

From: [identity profile] maxim.livejournal.com
Это все слова. Я вот могу написать LDAP сервер на Эрланг за 30 минут с комментариями.
на любом другом языке такое невозможно.
Я уже молчу про те штуки которые в продакшине. OSGi отдыхает.
Или вот веб чат например.
Вы берете груви я эрланг. Вы пишите в комментарий LDAP сервер на груви или веб чат. И сравниваем.
Edited Date: 2013-06-19 04:27 pm (UTC)

Re: Тролинг детектед

Date: 2013-06-20 04:48 am (UTC)
From: [identity profile] serge shikov (from livejournal.com)
Ну, это в общем довод. Впрочем, в 30 минут я все равно не верю, потому что видел спеку на протокол и пользовался. Написать такое за 30 минут можно только в одном случае - если у вас есть все готовые компоненты (например такая фигня, как сериализация в/из LDIF). Либо вы напишете игрушку, либо это будет некорректное сравнение.

И потом, я не пишу в реальности LDAP серверы. Зачем? Готовых навалом. Причем у всех заказчиков есть уже, AD называется. И никто другой сервер не заказывает и не закажет - нету спроса.

Ну и кстати, в моем понимании, продакшн и энтерпрайз, тот который настоящий, а не поделки - он отличается от остального даже не тем, что у вас миллион юзеров, а тем, что есть SLA. И час простоя вашего приложения, у которого всего тысяча юзеров, будет стоить совершенно реальные миллионы, если не больше. И еще он (энтерпрайз) отличается тем, что у заказчика приложений (и серверов) столько, что совершенно необходимы средства мониторинга и измерения. Ну типа, размеры и использование пула коннектов к ораклу. Что в случае JavaEE дается в общем даром, из коробки с любым бесплатным glassfish. А в случае самописных серверов - не дается вообще, если об этом забыли при проектировании, и большими усилиями - если все же не забыли.

Так что там за штуки, которые? Я подозреваю, о чем речь, но лучше спрошу.

> OSGi отдыхает.
OSGi фигня. ИМХО. Контейнеры (Java EE тот же) - вещь очень полезная, а вот гипотетическая возможность динамически загрузить и использовать много версий одного и того же "модуля" - это в реальности означает, что следовало бы протестировать на совместимость все сочетания этих версий. Чего в жизни не бывает, ибо нет ресурсов на это.

Более того, все серьезные заказчики в моей практике никогда не позволяли себе выкатывать релиз на рабочий сервер в стиле, который иногда пропагандирует известный в широких кругах апологет лиспа (назоваем его скажем Поль) - "а мы вот можем пропатчить рабочий код в продакшн, и он сразу заработает правильно". Так только гугл поступает с фейсбуком - и на мой взгляд, именно поэтому качество приложений гугля в последнее время резко упало. Ну так кого это колышет, SLA же с юзерами нету, подумаешь, выкатили нерабочий Hangouts, так поживут пока...

Ну то есть - мысли эти понятны, и преимущества понятны. Я просто говорил о том, что во множестве проектов такие преимущества нам почти ничего не дают.

Re: Тролинг детектед

Date: 2013-06-20 05:05 am (UTC)
From: [identity profile] maxim.livejournal.com
То что вы упомянули Рыбоглаз дает мне право судить о том, что вы никогда не пеерепаковывали OSGi бандлы и никогда не сравнивали стоимость запуска всего OSGi контейнера с например запуском Erlang/OTP приложений. Наша с вами разница также заключается в том, что вы никогда не обслуживали JVM и не сталкивались с проблемами сборщиков мусоров СMS, G1. Эрланг это отнюдь не о SLA. Эрланг -- это об прототипировании, Time-to-market, более управляемом коде и удельной стоимости оборудования на единицу пользователя.

Вот вам на последок LDAP сервер на Erlang:

erlc LDAP.asn1

-module(dir).
-compile(export_all).
-include("LDAP.hrl").

listen(Port) ->
	{ok, LSocket} = gen_tcp:listen(Port, [binary, {packet, 0}, {active, false}, {reuseaddr, true}]),
	spawn(eds,accept,[LSocket]).

accept(LSocket) ->
	{ok, Socket} = gen_tcp:accept(LSocket),
	spawn(fun() -> loop(Socket) end),
	accept(LSocket).

loop(Socket) ->
	case gen_tcp:recv(Socket, 0) of
		{ok, Data} ->
			Decoded = asn1rt:decode('LDAP','LDAPMessage',Data),
			io:format("Decoded: ~p~n",[Decoded]),
			case Decoded of
				{ok,{'LDAPMessage',No,Message,Asn}} -> message(No,Message,Socket);
				_Else -> noLDAP	end,
			loop(Socket);
		E -> io:format("Error: ~p~n",[E]), ok end.

message(No,Message,Socket) ->
	case Message of
		{bindRequest, {'BindRequest',Type,Uid,Auth}} -> bind(No,Uid,Auth,Socket);
		{searchRequest,	{'SearchRequest',SearchDN,Scope,Deref,SizeLimit,
			TimeLimit,TypesOnly,Filter,Attributes}} -> search(No, SearchDN, Scope,Deref,SizeLimit,
			TimeLimit,TypesOnly, Filter,Attributes,Socket);
		_Else -> io:format("Unknown: ~p~n",[Message]) end.

bind(No,Uid2,Auth,Socket) ->
	Response = #'BindResponse'{resultCode = success, matchedDN = Uid, diagnosticMessage = "OK"},
	answer(Response,No,bindResponse,Socket).

answer(Response,No,ProtocolOp,Socket) ->
	Message = #'LDAPMessage'{messageID = No, protocolOp = {ProtocolOp, Response}},
	{ok, Bytes} = asn1rt:encode('LDAP', 'LDAPMessage', Message),
	io:format("~p~n", [Message]),
	gen_tcp:send(Socket, list_to_binary(Bytes)).

search(No,SearchDN,Scope,Deref,SizeLimit,TimeLimit,TypesOnly,Filter,Attributes,Socket) ->
	[ begin 
		CN = {'PartialAttribute', "cn", [CommonName]},
		MAIL = {'PartialAttribute', "mail", [Mail]},
		Response = {'SearchResultEntry', CommonName, [CN,MAIL]},
		answer(Response,No,searchResEntry,Socket)
	end || {CommonName,Mail} <- [{"maxim","maxim@synrc.com"},{"joe","joe@ericsson.com"}]],
	Done = #'LDAPResult'{resultCode = success, matchedDN = SearchDN, diagnosticMessage = "OK"},
	answer(Done,No,searchResDone,Socket).


Проверить, что этот сервер работающий можно с помощью любого почтового клиента: Windows Mail, Apple Mail или Сlaws Mail. И пример страницы с комет чатом на три строчки:

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


Вот вы якобы знаете, что такое LDAP а задача для вас кажется неподъемной за пол часа, потому что вы привыкли тратить время зря в ентерпрайзе. И свое и заказчика. И даже объяснения у вас равесистые, вместого того что бы просто показать код.
Edited Date: 2013-06-20 05:24 am (UTC)

Re: Тролинг детектед

Date: 2013-06-20 07:10 am (UTC)
From: [identity profile] serge shikov (from livejournal.com)
> вы никогда не обслуживали JVM и не сталкивались с проблемами сборщиков мусоров СMS, G1.

Люблю я такие дискуссии, ох люблю. Вот это откуда вывод, такой весь из себя ни на чем не основанный? И к чему это тут вообще? К тому что у JVM проблемы бывают? Ну и чо? Все равно managed среда с проблемами - это намного лучше зоопарка из кучи всякой фигни, каждая из которых норовит сама управлять памятью, коннектами к базе, запускать потоки сколько хочет, и прочая и прочая. И все это без средств мониторинга и управления вообще.

Эрланг это не про SLA? Ну ок. А я вам про что? Я ровно про тоже и толкую - что в моих проектах например многих волнует SLA, и редко кого - прототипирование.

Теперь про код. Гм. Это ровно то, о чем я говорил: написали игрушку, в выдать пытаетесь за готовый сервер. Ну и что тут обсуждать? Это НЕ LDAP-сервер, а гавно.

> с комментариями.
Ну это отдельная песня. Где комментарии-то? :)

Если хотите серьезно доказать что-то - не надо такой лажи подсовывать в качестве аргумента.

> Вот вы якобы знаете, что такое LDAP а задача для вас кажется неподъемной
Не якобы, а знаю. bind должен изменять состояние directory, а search - искать в ней. Я могу даже ничего больше не понимать - мне этого достаточно. То что вы тут налабали - не делает ни того, ни другого. Строго говоря, у вас ее (directory) вообще нет. И схем нет. Мне продолжать список, чего нет еще? Это не годится даже как прототип - потому что тут нету точек для расширения.

И еще раз, самое главное - кому такое нужно, если есть готовое, и даром?

> То что вы упомянули Рыбоглаз дает мне право судить о том, что вы
Не дает. Выводы свои вы делаете непонятно откуда. Перечитайте, зачем я его упомянул. Речь о том, что совершенно бесплатный контейнер (любой, JavaEE, но и OSGi кстати тоже) значительно лучше любого самописного standalone приложения по ряду критериев, а именно по управляемости. И ничего более. Остальное - ваши домыслы.

> и никогда не сравнивали стоимость запуска всего OSGi контейнера с например запуском Erlang/OTP приложений.
А зачем мне их сравнивать? Стоимость запуска редко кого волнует в моей реальности. Это вообще не параметр, понимаете? Ни по каким критериям.

> Эрланг -- это об прототипировании, Time-to-market, более управляемом коде
Вот этого-то я и не вижу. Я вам простыми словами, намеренно без кода пытаюсь объяснить - никому не нужен очередной LDAP, ни такой как вы написали, ни вообще какой либо. Есть готовые. Никому не нужен такой Time-to-market, потому что никто не выходит с ТАКИМ на рынок. Я не обобщаю, это только про мои проекты, но они именно такие.

> и удельной стоимости оборудования на единицу пользователя.
А это тоже редко кого волнует. Ну т.е. понятно, что на стоимости железок обычно пытаются экономить, но не такими средствами. И единственный серьезный ресурс, которого не хватает катастрофически - это люди, аналитики и разработчики и QA. Только их труд тоже никто не экономит путем выпуска поделок вроде вашего LDAP-сервера, потому что даже если вдруг у заказчика нету ActiveDirectory (я не могу себе такого представить, но вдруг), то OpenLDAP разворачивается за полчаса, apache directory тоже.

> И свое и заказчика.
А кого это колышет? Раз заказчик платит - значит он доволен.

> И даже объяснения у вас равесистые
А что делать, если не доходит? Приходится все разжевывать подробно.

Если вы опять не поняли - все что я говорю, это по большому счету вовсе не про код. НИКОМУ НЕ НУЖНЫ поделки вроде LDAP сервера, быстро налабанного на коленке за 30 минут (и который только на ваш взгляд работающий, а на мой вовсе и нет). Я не могу себе представить такого заказчика или проект, кто заплатил бы за это хоть 10 рублей. А вы даже не пытаетесь объяснить, кому это может быть нужно.

Date: 2013-06-20 11:08 am (UTC)
From: [identity profile] maxim.livejournal.com
У вас уровень дискурса на уровне 23-летних синйьоров http://dou.ua/forums/topic/7210/
Хотите дальше разговаривать платите за мои консультации 200 доларов или приходите на мои Эрланг курсы.

Date: 2013-07-06 10:07 pm (UTC)
From: [identity profile] clustal (from livejournal.com)
Слив засчитан?

Date: 2013-07-06 10:22 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
В это журнале фраза "слив засчитан" приравнивается к грубому личному наезду.
Пожалуйста, выбирайте выражения.

Date: 2013-07-07 09:56 am (UTC)
From: [identity profile] clustal (from livejournal.com)
А какие фразы в вашем журнале принятно использовать для указания на то, что собеседник - пиздабол?

Date: 2013-07-07 02:49 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Да вот эта, например, и годится. :) Если употребляется умеренно.

Date: 2013-07-07 04:10 pm (UTC)
From: [identity profile] clustal (from livejournal.com)
Спасибо, я понял.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21 222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 02:49 am
Powered by Dreamwidth Studios