#clos — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #clos, aggregated by home.social.
-
VxLAN в энтерпрайз-сегменте, или Как построить Wi-Fi поверх VxLAN
Привет, это Данил Киселев, сетевой инженер в Yandex Infrastructure. Представьте себе, что у вас не просто офис, а очень большой офис с тысячами пользователей, которые ходят с созвона на созвон, перемещаясь между переговорками. Разумеется, им хочется оставаться на связи в процессе и не думать о ближайших точках доступа к Wi‑Fi. Для сетевого инженера это не выглядит проблемой на небольших масштабах. Но что если скоро ваш офис вырастет и таких точек доступа в сетевой фабрике может стать уже 20 000 и больше? В статье расскажу про опыт использования технологии VxLAN в корпоративных сетях Яндекса. В частности речь пойдёт про построение Wi‑Fi поверх VxLAN‑туннелей, которые таким образом смогли помочь нам с большим доменом и заодно избежать широковещательного шторма.
https://habr.com/ru/companies/yandex_cloud_and_infra/articles/1066494/
#vxlan #clos #wifi #широковещательный_шторм #bgp_evpn #fullmesh_vpn #annet
-
Онлайн-переезд EVPN-VXLAN-фабрики между дата-центрами: euNetworks → QupraDC без остановки сервиса
Наш сетевой инженер Рене написал статью в двух частях о том, как грамотно запустить небольшую площадку с минимальным количеством железа, а потом организовать её бесшовный переезд между дата-центрами. Часть вторая. Меня зовут Рене, я сетевой инженер в FirstVDS. В первой части я рассказывал, как мы запускали небольшую европейскую площадку в Амстердаме: один Leaf, один Spine, routed host networking для гипервизоров, EVPN-VXLAN как сервисная плоскость, DDoS в отдельном VRF, OOBM и Flow-коллектор. Эта часть — уже не про стартовый дизайн, а про его проверку реальностью. Дата-центр euNetworks закрывается, оборудование нужно перевозить, клиентскую нагрузку останавливать нельзя, адресацию менять нельзя, продажи новых услуг останавливать тоже нельзя.
https://habr.com/ru/companies/first/articles/1038974/
#датацентр #firstvds #миграция #сетевая_инфраструктура #сетевая_фабрика #vxlan_evpn #evpnvxlan #clos #ip_фабрика
-
In going through some old papers, I ran across these very interesting documents from long ago that I can't seem to find public reference to. They seem to offer some important historical insight about the Dylan language. This is from back when Dylan was called Ralph as a working title. In those days, the still-being-designed Lisp-like language had not yet moved to an infix syntax, and it looked and acted more like Scheme with an object system similar in spirit to CLOS (the Common Lisp Object System).
My understanding is that there were some fairly deliberate choices made to NOT target the Lisp or Scheme community as users, which is part of why the move to infix. I think they wanted to appeal to a disaffected C++ crowd, but ultimately lost out to Java for that bid, and then having left the Lisp user base behind, ended up with a very small community as a result.
But I still think there could be things the Scheme community would want to glean from this snapshot of history.
I've included a scan of an email proposal I got from Dave Moon while he and I were at Symbolics, with his proposal for how to add conditions to the language. Note that Dylan did eventually go public and did have a condition system, so you could also just study that design directly. But what's useful here is to see how all that looked syntactically in a Scheme-like syntax. But, in that regard, I recommend starting by looking at the language itself.
[0] Ralph: A Dynamic Language with Efficient Application Delivery, by Andrew LM Shalit, July 25, 1991.
https://nhplace.com/kent/History/dylan/ralph-1991-07-25.pdf[1] Ralph Conditions (part 1 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-1-of-2-1991-08-14.pdf[2] Ralph Conditions (part 2 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-2-of-2-1991-08-14.pdfcc @sigue @ramin_hal9001 @screwlisp
#DylanLang #RalphLang #ComputerHistory #Harlequin #Lisp #CommonLisp #ConditionSystem #ConditionHandling #ErrorSystem #Scheme #SchemeLang #CLOS #AppleHistory #KentsHistoryProject
-
You can pick up the document 'Signalling and Handling Conditions' from this index page:
It was longer than I thought it would be, but I think you'll find it interesting to see what the Zetalisp condition system (which inspired the Common Lisp condition system) looked like.
In spirit, it was much the same. The biggest differences are:
* The CL system has 'active' restarts, where the ZL system had a passive thing where you returned a value to the case context and hoped that it would do the thing you wanted. It felt quite a bit more error-prone (if you'll pardon the reuse of 'error' here, maybe I should say 'mistake-prone').
* The ZL condition system offers a lot of really low-level stuff that did not seem proper for CL.
* The set of operations offered in ZL was richer, but also a lot more complicated, I thought, and I worried people would not really see what it was trying to do.
* Obviously, the ZL system was based on Flavors, not CLOS, and made reference to a lot of LispM-specific packages.
* The document was published in January, 1983 and identifies itself as part of Symbolics Release 4.0.
There are other differences as well.
#Zetalisp #LispMachine #LispMachines #Symbolics #LispM
#ConditionHandling #ConditionSystem #ErrorSystem #ErrorHandling #CommonLisp #CL #Flavors #CLOS #History #ComputerHistory
#InternetArchive #Bitsavers -
<">
I mean, typecase using type specifiers makes sense, it’s a type-based operation after all. But handler-bind feels like a class- (or whatever the hierarchy of conditions are, they are not standard-objects iirc) based operation. Yet it uses type specifiers, and that’s a fun turn of events.
</">My intuition is different.
I see this part of what `handler-bind' does merely (or at least essentially) as a kind of type dispatch (except that the primitive types are only condition types).(Whether condition types are standard-classes is implementation-dependent, so they may or may not be such.
What is important is that the hierarchy of the kinds of conditions is integrated with the hierarchy of classes (and types).)<">
I wish generics also allowed type specifiers. Imagine the world we’d be living in…
</">To some degree I think we already do.
I haven't done this, so off the top of my head, I think it's possible to base method dispatch on (much of) what compound type specifiers allow by sufficiently heavy use of the Meta-Object Protocol and suitable metaclasses.
It would likely be also necessary to wrap `defmethod' in macro calls, but that is par for the course.Whether that would be a good idea is another matter.
The complexity of the implementation would have to be justified.
Then this might reduce the efficiency of method dispatch.
(We usually don't mind when the efficiency of handling exceptional situations is less than the efficiency of "regular" execution.)#CLOS
#CommonLisp
#CommonLispObjectSystem
#GenericDispatch
#MetaObjectProtocol
#MOP -
Le film Scurry raconte une histoire d’extraterrestres https://tozounoir.zouluvo.com/le-film-scurry-raconte-une-histoire-dextraterrestres/
#film #Scurry #alien #araignée #géante #invasion #extraterrestre #tunnel #soussol #suspense #acteurs #effets #spéciaux #créature #huis #clos #sciencefiction #peur #tension #horreur #captivant #mystérieux #sombre #attaque #ville #monstre #souterrain #cinéma #ambiance #extraterrestres
-
Cl-gopher is a Common Lisp library that implements the server and client sides of the Gopher protocol, as well as a sample text client. An easy to understand and well designed example of using CLOS.
-
[AMOP]
@dougmerritt @weekend_editor @sigue @abuseofnotation @screwlispRight now I'm thinking that the real value of _The Art of the Metaobject Protocol_ is showing one way to do metaprogramming, and object-oriented programming is merely a demonstration domain.
Of course, what begat AMOP was a desire for an approach that can cover a large part of the OOP language design space, not just one point in that space, in order to be attractive to different schools of thought.
-
@dougmerritt @weekend_editor @sigue @abuseofnotation @screwlisp
> no one else has been mentioning (so far as I've noticed) "The Art of the Metaobject Protocol"
Not in this thread.
Indeed, this book is a tour de force (et de magique).> uncertain that the topic deserved such a deep analysis
The topic—maybe, maybe not, but the book is really about the metatopic, i.e. about metaprogramming, if I may abuse this prefix.
(I know this ought to be formulated more carefully.) -
@weekend_editor @sigue @dougmerritt @abuseofnotation @screwlisp
> (call-next-method) is a procedural way to do this, costing an extra function call at runtime, but obviating the need for weird compilation.
And that is the costs-of-lisp-implementation consideration.
The other one is the program design consideration (including the costs of program modification), which often leads me to prefer a declarative style, but that is my point of view, there are always tradeoffs, etc.
-
@weekend_editor @sigue @dougmerritt @abuseofnotation @screwlisp
P.S.
If I recall correctly, freezing a set of class and generic function definitions (including the methods) precludes some operations later, like redefining a class at run time, but I don't know if this is related to your question.
Again, don't trust me. -
@weekend_editor @sigue @dougmerritt @abuseofnotation @screwlisp
> a CLOS equivalent to (compile-flavor-methods), that compiles all those combined methods so they don't have to be done at load or run time?
Not in the (full¹) CLOS specification.
Speaking from uncertain memory, check it if it's important.
_________
¹ Including the parts not in the ANSI standard.I have a very vague and insufficient memory of a non-Flavors implementation that provides something like that.
-
@sigue @dougmerritt @abuseofnotation @screwlisp
<">
I think the core feature is call-next-method, which can effectively be used to simulate around/before/after? (Not 100% sure it's an exact match.)
</">Rather, the "before/after/around" approach is declarative, the `call-next-method' approach is procedural.
I can't recall a citation; I think this is even stated in the specification.I'm afraid I'll leave a comparative analysis of the two approaches for another day 🙂.
-
@dougmerritt @abuseofnotation @screwlisp @sigue
> since it came up, how many CLOS features do you need?
You are right to ask.
Off the top of my head, I've needed
multiple inheritance,
multiple dispatch,
"before" and "after" methods.
Maybe I did something with method combination once or twice, but let's not count this if I can't recall properly.
But I am not a serious ("heavy-duty") #CLOS user.If this counts, in other languages I have missed capabilities to customize object initialization.
-
[Red Daly's Parenscript Object System, simplified-CLOS-like.]
@abuseofnotation @screwlisp @sigue
Thank you, that is impressive.
From Stanford.
Regrettably, I don't have the time to find out the extent of simplification. -
[Local generic functions.]
In fact, `generic-flet' was proposed and not adopted.
<http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Issues/iss181.html>
I am glad you found a bug 🙂.
-
[CLOS and JavaScript]
> parenscript obviously doesn't have its own CLOS implementation
And achieving that doesn't seem like a five-minute job...
I am not the judge of whether that work can be justified, no matter how attractive it is.
-
> had to rewrite my hurkle game without using CLOS. I thought a bit about using the 'make-load-form generic
Embarrassingly, my memory fails now about what exactly happened to standardizing anonymous generic functions.
-
Как в датацентре доставить трафик до сервиса?
Итак, если мы решили создать сайт с котиками и хотим, чтобы он был масштабируемым и надёжным, какие шаги нужно предпринять для обеспечения его отказоустойчивости? На этот философский вопрос я тут и рассуждаю, но сначала - вспомним немножко, что же это такое — сети дата-центров?
https://habr.com/ru/articles/908180/
#load_balancing #datacenters #ecmp #зоопарк #мыши #слоны #clos #leaf
-
A short and easy to understand finite state machine implementation in CLOS.
-
A 1993 case study of using CLOS for developing a blackborad system for radar tracking. The design is interesting, but that way of formatting Lisp code with solitary parentheses on a line by themselves drives me crazy.
https://onlinelibrary.wiley.com/doi/pdf/10.1002/int.4550080503
-
I'm looking to study CLOS code that is well designed, well documented, _and_ makes idiomatic use of mixin classes. Any recommendations other than the usual Common Lisp and CLOS books?
-
RIP BGP
В октябре 2024 года, я выступал на тематической конференции Linkmeetup с докладом. Внезапно, он занял первое место в голосовании и меня настоятельно попросили оформить это всё в виде статьи. Ниже, прошу её к вашему вниманию.
https://habr.com/ru/articles/860790/
#RIP #EVPNVXLAN #BGP #datacenter_network #clos #сетевые_технологии #cisco #huawei #датацентр #цод
-
Топология Dragonfly для дата-центровых сетей
Итак, вы гиперскейлер, давайте отталкиваться от этого. Потому что если нет — собирайте хоть 3-tier на OSPF. А гиперскейлер вы в том случае, если у вас большая сеть на тысячи хостов, а лучше стоек. Вы уже попробовали топологию Клоза. Сначала вам очень нравилось. Она вся такая плотная, регулярная и масштабируемая — просто прелесть. Как только кластер начал грозить вырасти за 2000 хостов, вы стали надстраивать ещё один уровень коммутации и докидывать в него всё новые и новые группы стоек. И продолжаете расти на десятки тысяч узлов. У вас отработанный дизайн, автоматизация ввода нового оборудования. Всё на потоке. Но отчего‑то вы несчастливы. Вам плохо спится. Гложут сомнения и дурные мысли. А всё дело в эпохе 400G! Вы долгие годы строили свою сеточку на 25+100, и всего всегда хватало. Раньше. А теперь надо на хосты соточку спустить. А значит и аплинки надо расширять, да вы и сами уже понимаете, что пора: ещё несколько лет — и эта сеть станет устаревшей. 200G, 400G, SerDes по 100 Гб/с на PSM4. Тут думать надо. И новая сетка выглядит действительно привлекательной, даже почти изумительной.Но как только вы подумаете, что её, такую красивую, нужно как‑то интегрировать с существующей, уже немного опостылевшей сетью, настроение сразу портится — фактически это означает, что нужно менять уровень S2 или строить ещё одну сетку рядом с нужной ёмкостью и каким‑то ужасным образом скрещивать их друг с другом иначе.
https://habr.com/ru/companies/yandex/articles/859794/
#датацентры #dragonfly #dragonfly+ #сетевые_технологии #топологии #clos
-
A rare copy for sale of "Lisp Style and Design" by Molly Miller and Eric Benson (Digital Press, 1990), a great book cited by Paul Graham in On Lisp that covers often overlooked topics. All the proceeds will be donated to the Medley Interlisp Project.
-
#programming #techDiscussion of #commonLisp on #itch_io .
https://lispy-gopher-show.itch.io/moonclimb/devlog/791188/what-we-get-out-of-lisp: A short pamphlet about what I think you get out of lisp. Namely #loop #format #clim #clos #conditions ie #iteration #prettyPrinting #GUI #oop #notCrashing
When I remember how to get any of my tildes back I will gopher the org doc.