
Взял и переделал динамический сайт в статический с помощью wget!
А это нормально для монги?
> 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]
Понадобился wisiwig редактор для моего проектика, много фич не надо, достаточно конверта в bbcode и отображения картинок в тексте. Я немного потыкался, посмотрел, что может предложить сообщество. Самый популярный редактор это CKEditor, он же самый монструозный. У нас на работе один из сайтов его использует, поэтому от него я отказался, куча раздражающих косяков при вводе текста. Выбор пал на WysiBB, вроде выглядит солидно, не слишком перегружен, поддерживает вывод в bbcode. Начал делать на нём, по ходу дела понадобилось добавить несколько собственных кнопок форматирования и собственных bb кодов. Всё, редактор на выброс, API для расширения функционала есть, но оно настолько тугое, что в половине случаев всё равно приходится лезть в код и править сурсы редактора, сам код настолько монструозен, что хер проссыш что там куда и в каком порядке отрабатывает. Промучился месяц, не выдержали нервы, начал искать альтернативы и о чудо! cleditor! Лёгкий, простой, если что, можно и в код залезть, там кода-то с гулькин нос, всё лаконично и очевидно. Буду использовать его.
Вот так начинаешь делать домашний проектик, в голове крутится структура серверной части, начинаешь пилить, а в итоге погрязаешь в css и jQuery
Вод думаю над структурой базы.
Пост, например может выглядеть как-то так:
{
tags: ["tag1", "tag2", "tag3"],
track: trackid,
title: "Название",
date: 1262333829,
author: "Иван Иванов",
text: "Тут сам текст поста в html"
}
в track можно и сам трек хранить в geojson, но я решил, что leaflet трек наверное будет отдельным запросом дёргать, поэтому его лучше отдельно положить.
Вот что я не решил, так это индексы, не понятно, по какому полю будет идентифицироваться пост. Вроде поле времени для этого подходит, но с другой стороны не соображу как потом сделать паджинацию для общей ленты. Пока оставлю вопрос открытым, в случае чего - добавлю какое нибудь поле с автоинкрементом, в монге с ним не всё так просто, но можно изловчиться.
А еще вопрос с фотками. Хранить отдельными файлами или в базе? Склоняюсь к базе.
Написал вчера модуль для конвертирования gpx -> geojson, но возникла проблема. Для сопоставления фоток и заметок с местоположением используются отметки времени, присутствующие в gpx треке, но не предусмотренные в geojson. Получается, что при конвертировании я теряю ключевую информацию. Надо что-то придумывать.
Пока попробую хранить массив с временными отметками отдельно, в секции properties, посмотрим, справится ли с таким монга.
Удивительно, но не нашлось ни одного модуля, который умел бы конвертить gpx в GeoJSON. Вот такая подстава, буду сам писать, на регекспах.
P.S. GPSBabel тоже не умеет в GeoJSON, говно.
Так, нашёл годный шаблон для блога на bootstrap: http://prideparrot.com/blog...ter_bootstrap3_part1
Выглядит нормально, то, что нужно, однако встаёт вопрос. Скачал я его а там просто парочка страниц, одна для блога в целом, а вторая как пример поста. В html. Надо на шаблоны переводить и вот тут дилемма.
Вариант 1 - сделать на шаблонах mojolicious, он кажется такое позволяет, но получится, что каждая страница будет динамически формироваться на каждый запрос (ну или кешироваться, если через nginx запускать). Все записи будут храниться в базе.
Вариант 2 - сделать на статическом движке, чтобы страницы генирировались раз и навсегда, только на этапе создания, тогда все посты будут храниться в отдельных файлах.
Как поступить?
Наступила осень, а с ней пришли долгие вечера и противная погода. Это значит, что пришла пора искать себе занятие на выходные, что б не было скучно.
На эту зиму придумал себе проект - сайт, на котором можно было бы удобно размещать отчёты о путешествиях и покатушках на велосипеде (или вообще как угодно). С треком, геопривязанными фотками, текстовыми заметками, с разбиением по датам и отображением информации типа набора высоты и дневного пробега. Попробую сделать так, чтобы это было прежде всего удобно просматривать и готовить свои будущие поездки.
План работ слишком большой, чтобы его можно было сделать за 5 месяцев, оставшихся до весны, но для того, чтобы поковырять некоторые технологии, хватит.
В качестве бэкенда возьму что-то на перле, ибо учить php или python нет никакого желания. Значит это будут либо Dancer, либо Mojolisious, с первым я вообще дела не имел, второй немного ковырял, можно будет углУбить.
Фронтенд нужен попроще, нет желания разбираться с монстрами типа Angular или Ember, я на них сейчас глянул и немного прифигел. Возьму bootstrap, там вроде простенько, мне ничего навороченного не требуется, сайт будет в виде блога.
Остальное в процессе выбора, надо будет чем-то анализировать GPS треки, разбирать фоточки, а потом всё это накладывать на карту, да ещё и интерактивно. Гляжу в сторону leaflet или openlayers, а на них какие-нибудь плагины.
Хранение в mongodb, sql я не знаю, а в ней всё в json, который мне по нраву.
Ну а чтобы закрепить звание говноеда, разберусь с jail во FreeBSD и подниму всё это там.
В путь!