Apr. 17th, 2011

metaclass: (Default)
Понадобилось распарсить JSON, который возвращает RIPE DB API (например, http://lab.db.ripe.net/whois/lookup/ripe/aut-num/as6697.json) и достать из него связи между AS. Внезапно, внутри этого JSON лежат строки, а в строках - RPSL атрибуты, со своей грамматикой. Т.е. "структурировали, структурировали, но недовыструктурировали".

Мало того, что для нормального парсинга этого JSON пришлось склепать самодельный паттерн-матчер по пути в дереве, чтобы не переделывать, когда авторам этого сервиса червь прикажет формат менять, так еще и атрибуты после доставания из JSON нужно парсить по надиктованной усеницами грамматике.
Пришлось достать из гроба один старый проект с парсер-комбинаторами на LINQ и им парсить.
metaclass: (Default)
Запустил прожку выкачивать весь интернетинформацию о связности AS c RIPE. Какого только ужоса я там не насмотрелся - атрибуты используются кто во что горазд, descr в качестве комментариев, в import атрибутах вообще что попало - у меня теперь парсер этих полисей выглядит как жуть и мрак на LINQ.

А разгадка одна: RPSL хоть и описывает грамматику языка, но в качестве строгого описания типа это нифига не пригодно, поэтому там сплошные строки, которые заполняют как им черви из цисковских портов надиктуют.
Т.е. вместо строгих типов и структуры - NoSQL, строки и свобода - получите ад парсинга и заполнение от фонаря.
metaclass: (Default)
I saw this 10 years ago when looking for a GUI to my Lisp. No problem, there were 9 different offerings. The trouble was that none of the 9 were properly documented and none were bug free.

Это же касается вообще всех языков, где или программисты слишком умные или языки слишком мощные. Если большей части комьюнити проще написать свою либу, чем разбираться в кривой чужой - там будет тыща либ, каждая из которых будет работать исключительно у автора на компутере, а всех остальных он видел в гробу.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 10th, 2025 08:42 pm
Powered by Dreamwidth Studios