@Shura

Тег p15 в блоге Shura

Shura

Взял и переделал динамический сайт в статический с помощью wget!

Shura

А это нормально для монги?

> db.address_cache.drop()
true
> db.address_cache.dropIndexes()
{ "ok" : 0, "errmsg" : "ns not found" }
> db.address_cache.getIndexes()
Sat Feb 27 09:24:00.729 mongo got signal 11 (Segmentation fault), stack trace:

Sat Feb 27 09:24:00.736 0x6ecd66 0x5cee5e 0x7f0038d60b80 0x8f8a0c 0x965e88 0x965ec4 0x96b21e 0x906868 0x911ade 0x911e95 0x7beb00 0x8d4468 0x8746bd 0x4970a706362 
 mongo(_ZN5mongo15printStackTraceERSo+0x26) [0x6ecd66]
 mongo(_Z12quitAbruptlyi+0x34e) [0x5cee5e]
 /lib64/libc.so.6(+0x34b80) [0x7f0038d60b80]
 mongo(_ZN2v88internal6String11WriteToFlatItEEvPS1_PT_ii+0x3bc) [0x8f8a0c]
 mongo(_ZN2v88internal33GenericStringUtf16CharacterStream10FillBufferEjj+0x38) [0x965e88]
 mongo(_ZN2v88internal28BufferedUtf16CharacterStream9ReadBlockEv+0x34) [0x965ec4]
 mongo(_ZN2v88internal7Scanner10InitializeEPNS0_20Utf16CharacterStreamE+0x5e) [0x96b21e]
 mongo(_ZN2v88internal6Parser9ParseLazyEPNS0_20Utf16CharacterStreamEPNS0_9ZoneScopeE+0x28) [0x906868]
 mongo(_ZN2v88internal6Parser9ParseLazyEv+0x14e) [0x911ade]
 mongo(_ZN2v88internal9ParserApi5ParseEPNS0_15CompilationInfoEi+0x1d5) [0x911e95]
 mongo(_ZN2v88internal8Compiler11CompileLazyEPNS0_15CompilationInfoE+0xe0) [0x7beb00]
 mongo(_ZN2v88internal10JSFunction11CompileLazyENS0_6HandleIS1_EENS0_18ClearExceptionFlagE+0x178) [0x8d4468]
 mongo(_ZN2v88internal11CallIC_MissENS0_9ArgumentsEPNS0_7IsolateE+0x25d) [0x8746bd]
 [0x4970a706362]
Shura

Понадобился wisiwig редактор для моего проектика, много фич не надо, достаточно конверта в bbcode и отображения картинок в тексте. Я немного потыкался, посмотрел, что может предложить сообщество. Самый популярный редактор это CKEditor, он же самый монструозный. У нас на работе один из сайтов его использует, поэтому от него я отказался, куча раздражающих косяков при вводе текста. Выбор пал на WysiBB, вроде выглядит солидно, не слишком перегружен, поддерживает вывод в bbcode. Начал делать на нём, по ходу дела понадобилось добавить несколько собственных кнопок форматирования и собственных bb кодов. Всё, редактор на выброс, API для расширения функционала есть, но оно настолько тугое, что в половине случаев всё равно приходится лезть в код и править сурсы редактора, сам код настолько монструозен, что хер проссыш что там куда и в каком порядке отрабатывает. Промучился месяц, не выдержали нервы, начал искать альтернативы и о чудо! cleditor! Лёгкий, простой, если что, можно и в код залезть, там кода-то с гулькин нос, всё лаконично и очевидно. Буду использовать его.

Shura

Вот так начинаешь делать домашний проектик, в голове крутится структура серверной части, начинаешь пилить, а в итоге погрязаешь в css и jQuery

Shura

Вод думаю над структурой базы.
Пост, например может выглядеть как-то так:

{
    tags: ["tag1", "tag2", "tag3"],
    track: trackid,
    title: "Название",
    date: 1262333829,
    author: "Иван Иванов",
    text: "Тут сам текст поста в html"
}

в track можно и сам трек хранить в geojson, но я решил, что leaflet трек наверное будет отдельным запросом дёргать, поэтому его лучше отдельно положить.
Вот что я не решил, так это индексы, не понятно, по какому полю будет идентифицироваться пост. Вроде поле времени для этого подходит, но с другой стороны не соображу как потом сделать паджинацию для общей ленты. Пока оставлю вопрос открытым, в случае чего - добавлю какое нибудь поле с автоинкрементом, в монге с ним не всё так просто, но можно изловчиться.

А еще вопрос с фотками. Хранить отдельными файлами или в базе? Склоняюсь к базе.

Shura

Написал вчера модуль для конвертирования gpx -> geojson, но возникла проблема. Для сопоставления фоток и заметок с местоположением используются отметки времени, присутствующие в gpx треке, но не предусмотренные в geojson. Получается, что при конвертировании я теряю ключевую информацию. Надо что-то придумывать.

Пока попробую хранить массив с временными отметками отдельно, в секции properties, посмотрим, справится ли с таким монга.

Shura

Удивительно, но не нашлось ни одного модуля, который умел бы конвертить gpx в GeoJSON. Вот такая подстава, буду сам писать, на регекспах.

P.S. GPSBabel тоже не умеет в GeoJSON, говно.

Shura

Так, нашёл годный шаблон для блога на bootstrap: http://prideparrot.com/blog...ter_bootstrap3_part1
Выглядит нормально, то, что нужно, однако встаёт вопрос. Скачал я его а там просто парочка страниц, одна для блога в целом, а вторая как пример поста. В html. Надо на шаблоны переводить и вот тут дилемма.
Вариант 1 - сделать на шаблонах mojolicious, он кажется такое позволяет, но получится, что каждая страница будет динамически формироваться на каждый запрос (ну или кешироваться, если через nginx запускать). Все записи будут храниться в базе.
Вариант 2 - сделать на статическом движке, чтобы страницы генирировались раз и навсегда, только на этапе создания, тогда все посты будут храниться в отдельных файлах.

Как поступить?

Shura

Наступила осень, а с ней пришли долгие вечера и противная погода. Это значит, что пришла пора искать себе занятие на выходные, что б не было скучно.

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

План работ слишком большой, чтобы его можно было сделать за 5 месяцев, оставшихся до весны, но для того, чтобы поковырять некоторые технологии, хватит.

В качестве бэкенда возьму что-то на перле, ибо учить php или python нет никакого желания. Значит это будут либо Dancer, либо Mojolisious, с первым я вообще дела не имел, второй немного ковырял, можно будет углУбить.

Фронтенд нужен попроще, нет желания разбираться с монстрами типа Angular или Ember, я на них сейчас глянул и немного прифигел. Возьму bootstrap, там вроде простенько, мне ничего навороченного не требуется, сайт будет в виде блога.

Остальное в процессе выбора, надо будет чем-то анализировать GPS треки, разбирать фоточки, а потом всё это накладывать на карту, да ещё и интерактивно. Гляжу в сторону leaflet или openlayers, а на них какие-нибудь плагины.

Хранение в mongodb, sql я не знаю, а в ней всё в json, который мне по нраву.

Ну а чтобы закрепить звание говноеда, разберусь с jail во FreeBSD и подниму всё это там.

В путь!

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.