КОНСПЕКТ ОДНОГО РЕШЕНИЯ (продолжение) |

<td valign=top><select onchange="location.href='scripts/chvar.asp?page=default.asp&name1=SupplierID&val1='+value"><option value="0">ВСЕ ПОСТАВЩИКИ</option><%var flExists=0;while(!rs.eof){%><option value="<%=rs("SupplierID")%>"<%if(parseInt(rs("SupplierID"))==parseInt(Session("SupplierID"))){ flExists=1;%> selected<%}%>><%=String(rs("SupplierName"))%></option><% rs.MoveNext();}if((flExists==0)&&(Session("SupplierID")!=0)){Session("SupplierID")=0;%><SCRIPT LANGUAGE="JavaScript">document.location="scripts/chvar.asp?page=default.asp&name1=SupplierID&val1=0";</SCRIPT><% }%></select></td>
Метки: session variables JSscript |
Конспект одного решения |
![]()
Я не программист, у меня нет компьютерного образования.
С другой стороны, вся моя жизнь связана с техникой связи и компьютерами.
К языкам программирования у меня отношение... хорошее.
Достаточно хорошее, чтобы при необходимости поправить чужой код либо сделать пару-тройку своих проектов.
Меня всегда умиляли разговоры на форумах о том, что некто уже n-лет как пишет на С++ и он-де ничего не понимает в, например, С# или Java. Умиляли в том смысле, что его "непонимание" гораздо более содержательно, нежели все мои представления о предмете.
В последние дни на меня свалились две микроскопические задачки, которые уже решены, но решение хочу законспектировать здесь.
Итак, на производстве сдали в работу пульт оператора. На экране - порядка 200 параметров. Некоторые критические, поэтому ко мне обратился инженер по автоматике и попросил попробовать выделить цветом критические зоны.
Так как информация передается на пульт как обычная веб-страница, то я сложностей не предвидел и взялся за работу.
Весь проект сделан в IDE iX developer 2.0 от Beijer Electronics
Веб-сервер интегрирован в среду разработки и не документирован.
Код страницы содержит ссылку на SDK/API, написанные на javascript с использованием jQuery и JSON.
Первое ощущение засады появилось после того, когда обратил внимание, как данные получают с сервера и отображают на странице.
Созданы некие собственные атрибуты, которые официально должны отрабатывать с html-тегом SPAN. Далее, по вызову API формируется ajax-запрос к серверу, а полученные данные возвращаются через DOM.
Другими словами, любые параметры я могу лишь вызвать и отобразить на странице, но не получить как переменную для javascript для использования в коде страницы.
Мысль первая (правильная) - найти описание API. Описание разыскал. но нужного мне фукционала не нашел.
Мысль вторая - посмотреть и доработать код API "по образу и подобию". После небольшого углубления в тему понял, что этот путь не столь короткий, да и не вполне разумный - после заводского апдейта проекта мой код будет утерян.
Тогда остался единственный путь - запрашивать значение переменной непосредственно из кода страницы, но тем же способом, как это делает API.
Имя переменной в проекте, которая мне нужна - известна.
Метод скопировал из API. Как формируется тело запроса посмотрел через инспектор Firefox-a.
code:
.ajax({
url:'/tagbatch',
type:"POST",
data:'тело запроса',
contentType:"application/json",
dataType:"json",
cache: false,
success: function(data){что-то делаю с полученными данными});
Дополнено:
Посмотрел немного на инспекторы броузеров - для Firekox сейчас актуальна версия FireDebug ver.1.12. Если бы вовремя обновил установленную версию - спал бы на одну ночь больше :)
Метки: javascript JSON jQuery Beijer Electronics web iX Developer |
Без заголовка |
|
|
Головоломка |
Нашел в записях...
В старом престижном доме предстояло оборудовать офис. Работал по плану: сначала пожелания заказчика и уточняючие вопросы про телефонные линии, про факс, про сетевые принтеры, про беспроводную сеть. Затем разметка на плане мест для розеток и трассы для прокладки кабелей. Разметка отверстий. Расписал, через какое отверстие сколько кабелей будет проложено. Стал прикидывать диаметры отверстий и задался вопросом: а можно ли этот диаметр расчитать, ведь количество кабелей, и их диаметр известен? Так я познакомился с одной из увлекательнейших головоломок.
Сначала казалось,что все просто, достаточно расположить кабели шестигранником.
А если кабелей много? Наверное, n*6-гранником.
Если говорить о сечении, то такой многоугольник может состоять лишь из определенного ряда количества этементов (кабелей). А как быть , если кабелей не 7 и не 13, а, например, 10?
Можно, конечно, взять ближайшее большее значение из ряда.
Но... Представил, что в руке держу карандаши. Немного "похрустел" ими, они улеглись в руке. А если один карандаш убрать и опять ими "похрустеть", можно почуствовать, что обьем уменьшился. Значит, есть некое другое, более оптимальное расположение, нежели шестигранником.
Количество вопросов для простой задачи росло.
Может быть, надо поменять способ рассуждений?
Попробую через площади: площадь отверстия должна быть не меньше суммы площадей сечения кабелей
S>n*s
S=pi*R^2
R=(S/pi)^0.5>((n*s)/pi)^0.5>((n*pi*r^2)/pi)^0.5>r*(n^0.5)
R/r>n^0.5
Вроде бы так, но остается неудовлетворенность от знания того, что заполнение не идеально, что между кабелями есть пустоты и соотношение их не учитывает.
Свои идеи закончились, а что говорят математики?
Тут стало совсем интересно. Оказывается, что в математике такие задачи называют "задачами о плотной упаковке" и считают очень неприятными(1)
Оказывается, что сформулирована задача еще до появления знаменитой теоремы Ферма, но в чистом виде не разрешена по сегодняшний день.
Кроме того, меня заинтересовало, как в расчетах можно учитывать нахлесты, ведь в жизни идеальная укладка скорее исключение из правила.
Ссылки по теме:
1. http://www.ega-math.narod.ru/Nquant/Spheres.htm
2. http://mathworld.wolfram.com/CirclePacking.html
|
iSCSI массив своими руками |

После апгрейда остались 3,5” SATA-диски и тут же появилась идея сделать iSCSI массив для одного из филиалов. Прикинули бюджет и посмотрели предложения. Единственное решение, которое подошло - Infortrend EonNAS PRO 800-MC (8Bay NAS Storage, 2 x GbE, Intel Atom 525 Duo-Core, 4GB, de-deplication, thin-provisioning, compression, snapshot, remote replication, ZFS, virus protection, File support CIFS/SMB, AFP, NFS, iSCSI, Vmware, Citrix Ready, Wake on LAN, NDMP, USB Copy ENP800MC-8730)

Но смутил процессор, не создаст ли тормоза? Да и хотелось бы не в tower, а в 19" rack-mount корпусе.
Появилась следующая банальная идея: сделать массив самим. Посмотрели предложения по б/у серверам и как компромиссный вариант выбрали Dell PowerEdge 2950 II 2U 2xXEON QC E5310 (1.60GHZ)/4GB/6 x 3.5” SAS/SATA hdd /DVD/2xPSU

Не очень понравилось, что только 6 мест для дисков, но приемлемая цена, два блока питания и заведомо достаточная мощность сервера убедили остановиться на этом варианте. Очень сильный аргумент „за” – наличие RAC-консоли (аналог iLO у HP). Первым делом научился пользоваться ею, заодно обновил версию firmware. После обновления стало возможно не только удаленно включать/выключать, но и получить доступ к рабочей консоли.
С софтом затруднений не возникло, прекрасные отзывы сотрудников IBM убедили прежде всего пробовать open source проект OpenFiler.
Систему решил ставить на флешку, тем более, что друг обратил внимание на необычно высокую скорость записи чтения в режиме USB2 у флэшек KINGSTON USB 3.0 DataTraveler R30 (25Mb/s – write, 30Mb/s – read)

С установкой софта проблем не возникло. Единственный нюанс – надо флешку четко прописывать в биосе, т.к. сервер в своей конфигурации запоминает конкретный экземпляр загрузочной флэшки. Это значит, что если в биосе один раз выставили загрузку с флэшки, то сервер не будет загружаться с любой флэшки.
На всякий случай сделал второй экземпляр загрузочной флэшки. Чтобы флэшки были идентичны поступил так:
1. Установил систему на каждую флешку;
2. На одной сделал полную конфигурацию массива;
3. При помощи GParted скопировал основной раздел (sda2) на резервную флешку.
Что касается софта OpenFiler, то пока вообще не возникло никаких вопросов, все аккуратно, аскетично и достаточно.
Интересно, что в веб-консоли сервера (https://servername:446) учётная запись root не имеет доступа к конфигурированию iSCSI, для того есть встроенная учётная запись openfiler с паролем password.
В итоге получилась очень достойная конструкция.
Метки: Dell PowerEdge 2950 II iSCSI OpenFiler KINGSTON USB 3.0 DataTraveler R30 |
How to connect an ESXi host to an iSCSI storage target |
Отлично оформлен наглядный материал "How to connect an ESXi host to an iSCSI storage target"
Не так, чтобы новость большая, но эта та тема, с которой работаешь раз в пять лет и в нужный момент можно просто открыть букварь: а не тратить время на поиски прописывания конфигурации...
http://www.techrepublic.com/pictures/how-to-connec...-to-an-iscsi-storage-target/1/
Метки: iSCSI ESXi |
MS SQL Server. Error 15023: User already exists in current database. |
После поднятия бэкапа на другом MS SQL сервере при попытке поправить maping пользователю возникает вышеуказанная ошибка.
Решается просто, в MS SQL Server Management Studio выполняю два запроса:
use <имя поднятой из бэкапа базы>
alter user <имя пользователя> with login = <имя пользователя>
Взято здесь: http://www.sqlserver-training.com/user-already-exists-in-current-database-sql-server-error-15023/
Метки: MS SQL Server Error 15023 |
Исправление формуляра |

Обратились диспетчеры:
- Почему в формуляре (вордовский документ), который они заполняют, некоторые строки отображаются "справа-налево" ?
Проверил, не врут.
Понятно, в тексте есть управляющие коды. Какие?
Дело осложняется тем, что документ защищен паролем от редактирования (можно только заполнять поля формы).
Пришлось взломать пароль,
Затем нашел и при помощи HEX-редактора определил управляющий код.
Осталось лишь исправить около трехсот документов...
Сразу подумалось о пакетной обработке.
В итоге был написан такой VBA-скрипт:
Sub DocCorrection()
Set WordObj = CreateObject("Word.Application")
strPassword = "1234567890"
MyPath = "C:\Users\SuperAdmin\Desktop\BDL\"
iFileName = Dir(MyPath)
Do While iFileName <> ""
Set WordDoc = WordObj.Documents.Open(MyPath + iFileName)
WordObj.Visible = False
; снимаю защиту файла
If WordDoc.ProtectionType <> wdNoProtection Then
WordDoc.Unprotect Password:=strPassword
End If
; убираю управляющий код "right to Left override"
WordDoc.Content.Find.Execute _
FindText:=ChrW(&H202E), ReplaceWith:="", Replace:=wdReplaceAll
; восстанавливаю защиту файла
If WordDoc.ProtectionType = wdNoProtection Then
WordDoc.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=strPassword
End If
; сохраняю изменения
WordObj.Documents(iFileName).SaveAs FileFormat:=wdFormatDocumentDefault
WordObj.Documents(iFileName).Close SaveChanges:=True
iFileName = Dir
Loop
WordObj.Quit
Set WordDoc = Nothing
Set WordObj = Nothing
End Sub
На исправление потребовалось менее минуты. На написание и отладку скрипта - несколько часов.
Метки: MS Word VBA пакетная обработка |
Больше любим то, что с трудом завоёвано |
|
Метки: Huawei B660 |
Увидеть очевидное порой непросто |

Так уж получается, что проблема, решение которой искал 3 месяца, сейчас кажется абсолютно банальной и очевидной.
Сначала про задачу: один и тот же алгоритм в программах Ms Excel и MS SQL Server порой давал разный результат. Отличие не превышало единицу последнего знака за запятой
(Вспомнил, как подобное, но только в биологии, описывал Ганс Селье в книге "От мечты к открытию")
Оказалось, что для переменной, которая содержала результат вычисления, не хватало разрядности: при конечном результате с округлением до трех знаков за запятой исходных пяти знаков за запятой не хватало.
Исправил обьявление (дефиницию) переменной и на этом проблема была закрыта:
...
-- изменено 2013-07-04 16:45
-- declare @Vu decimal(8,5) <-- так было
declare @Vu decimal(10,8) -- так сейчас
...
Найти решение помогли простые рассуждения:
Метки: Алгоритмы |
Маргарет Тэтчер |
Метки: Маргарет Тэтчер |
Ломка мышления |

Есть ли место для интуиции в технике?
Наверное.
Когда-то предчувствовал удаленное управление и стал применять. По телефонным линиям, через модемы. Чтобы пробиться через линии с ужасным качеством. пришлось стать специалистом по модемам и их настройкам.
Коллеги смеялись, сейчас же удаленное управление - это норма.
Потом - многозадачность операционных систем: на дворе боролись MS-DOS с NovellDos, a я вынимал душу из айтишников, желая параллельно запускать задачи.
QuartDesk, потом OS/2.
OS/2 впечатлила, но еще не то.
Наконец Windows-3, глючный, ненадежный. Но это было то, что надо!
Версия 3.11, которая работала значительно стабильнее, стала основой в работе на долгое время.
Почти тогда же интуиция подсказала: интернет!
Не X.25 и прочие СПД (системы передачи данных), а интернет.
Тогда интернет - это FTP, Gopher, почта по UUCP.
Интернет стал модным среди технарей.
Я коллегам говорю: интернет должен стать похожим на Windows: таким же наглядным и простым для использования.
В ответ непонимание, но вскоре, практически спустя неделю-две, мы услышали про веб.
Базы данных.
Novell: его сети и сервера. Мило, но фанатом не стал.
Зато манил, подобно черной дыре, Linux.
В практику вошла виртуализация...
Некоторое время назад стал обладателем Макбука. Сила, мощь, надежность.
Попробовал Android. Для мобильного телефона - отлично, Как операционная система - пока это кошмар.
Жене подарил ipad-mini.
iOS взбесила, отсутствие Adobe Flash-технологии раздражает. Но восхитили качество, надежность, продуманность.
Опять предчувствие шепнуло: "Да, это что-то стоящее !"
Продолжил осваивать iOS уже на собственном экземпляре ipad-mini.
Не все задачи решаемы, но пришло понимание - как и почему. То, что для многих было в iPad-е, возможно, очевидно, для меня стало озарением.
Метки: iPad MS-DOS NovellDos QuartDesk OS/2 Windows 3.0 Windows 3.11 X.25 FTP Gopher UUCP Novell Linux MacBook Android iOS Adobe Flash |
Почта не ходит дальше 500 миль! |
Текст был удален с сайта Gazeta.LV и поэтому я его публикую здесь.
Сначала приведу ссылку на английйский оригинал статьи и его FAQ
Нетехнарей хочу предупредить, что технические детали и термины можно смело пропускать при прочтении, в данной истории дело не в них. Итак, сама история:
Я хочу рассказать историю службы техподдержки, которая может показаться невероятной далеким от этой работы людям. Но мне хочется изложить ее широкой аудитории – хотя бы потому, что это прекрасная рассказка под выпивку в коллективе коллег. Кое-что слегка приукрашено, но это – для красоты рассказа, все важные детали сохранены.
Несколько лет назад я работал в службе технической поддержки электронной почты университетского кампуса. Мне позвонил заведующий кафедрой статистики.
«У нас проблема с отправкой почты с кафедры»
Я:
«В чем проблема?»
«Мы не можем послать электронную почту больше чем на 500 миль»
Я роняю чашку с кофе. «Повторите, пожалуйста?»
«Мы не можем отправить письмо адресатам, находящимся далее 500 миль отсюда», повторяет завкафедрой. «Точнее, 520. Но не дальше».
Я пытаюсь собраться с мыслями. Крыша начинает медленно меня покидать, но нельзя позволить крыше уйти в разговоре с завкафедрой. Даже завкафедрой статистики. «Хммм... Понимаете, принцип доставки электронной почты не зависит от расстояния. Почему Вы думаете, что не можете отправлять почту далее 500 миль?»
«Я не думаю, я знаю» – довольно жестким тоном заявляет завкафедрой.
«Когда мы впервые это заметили, несколько дней назад...»
«Вы ждали несколько ДНЕЙ?» – перебиваю я уже слегка дрожащим голосом – «и вы обходились без почты?»
«Нет. Мы могли отправлять письма, но...».
«Но не далее 500 миль, сэр? Но почему же Вы не позвонили раньше?»
«Ну, у нас не было достаточного количества данных до сегодняшнего дня».
Ну да. Кафедра статистики, как-никак. О Господи...
«Ну, так или иначе – я попросил наших геостатистиков разобраться...»
Так. Геостатистики.
«...и у них получилась карта, показывающая расстояние, на которое мы можем отсылать почту. Чуть больше 500 миль. На некоторые адреса, находящиеся ближе, мы тоже не можем отправить почту с первой попытки – но дальше 500 миль мы не можем отправить ничего вообще».
«Я понял, сэр». Крыша-таки решила меня оставить. «Когда это началось? Вы сказали – несколько дней назад. Вы перенастраивали Ваши сервера в последнее время?»
«Да, приходили ребята от производителя, пропатчили сервер и перезагрузили его. Но я специально у них спросил – они говорят, что почты это никоим образом не коснулось».
«Хорошо, давайте я посмотрю, что присходит, и перезвоню Вам» – ответил я, искренне надеясь, что так не шутят даже на Первое Апреля – а сегодня далеко не Первое Апреля. Хотелось догадаться, кто из моих знакомых мог устроить подобное представление.
Нууу... Для начала я залогинился на сервер их кафедры и отправил несколько пробных писем. Все это происходило в Северной Каролине, и все письма моментально вернулись ко мне в ящик. Ричмонд, Атланта, Вашингтон – сработало. Принстон (400 миль) – сработало.
Далее я попробовал послать письмо в Мемфис (600 миль). Отлуп.
Бостон, отлуп. Детройт, отлуп. Я открыл адресную книгу и начал пытаться сузить круги. Нью-Йорк (420 миль) – работает, Провиденс (580 миль) – отлуп.
У меня появились сомнения в собственной вменяемости. Я решил попробовать отправить письмо своему другу, живущему в Северной Каролине, но работающему с провайдером в Сиэттле.
Благодарю Тебя, Господи. Отлуп. Если бы оказалось, что прохождение писем зависит от того, где находится человек, их получающий – я бы сам, по собственной инициативе и с гордо поднятой головой пошел бы сдаваться санитарам.
Поняв, наконец, что завкафедрой не бредит, я решил посмотреть на sendmail.cf. Вполне нормальный sendmail.cf. Знакомый даже.
Я сравнил его diff’ом со стандартным sendmail.cf у меня на диске. Он не изменялся. Это был ровно тот же sendmail.cf, который я делал собственноручно.
Но опцию «FAIL_MAIL_OVER_500_MILES» я не включал, это точно.
Каюк. Ну что еще попробовать? telnet по 25-му порту на сервер этой гребаной кафедры.
Сервер радостно отвечает, как ему и положено – blah-blah-blah, я, говорит, SunOS.
Стоп-стоп-стоп... SunOS sendmail? Sun тогда поставлял со своей операционкой sendmail 5, хотя все нормальные люди уже работали с sendmail 8.
Поскольку я – все-таки неплохой администратор, почта у меня ходила под sendmail 8. Ну и опять-таки – поскольку я – человек, приученный к порядку, я переписал sendmail.cf с нормальными, понятными именами переменных и опций. Что с переменными и опциями делал sendmail 5, вы должны помнить.
Так-так-так... Картинка собиралась. Мне снова захотелось кофе.
Ребятки от Sun пропатчили операционку, но sendmail, в общем-то, тоже ее часть. Они удачно закрыли дыры, но sendmail снова стал 5, а не 8. Но в одном они были правы – sendmail.cf действительно никто не тронул. А какая разница, для восьмой версии он или для пятой?
Ну, короче говоря. Пятый (по крайней мере, в варианте Sun’а) – нормально отрабатывал sendmail.cf от восьмого. Рулсеты-то не изменились.
Но вот опции настройки, такие неприлично длинные – он считал чуть ли не комментариями. Клал на них. А откомпилирован он был без настроек по умолчанию.
И, как честный человек, не найдя чего-то в sendmail.cf, он устанавливал это в 0.
Одна из успешно установленных в ноль настроек – таймаут для соединения с удаленным SMTP – сервером. Поигравшись с этим сервером, я понял, что «ноль» по его мнению – это около трех миллисекунд.
Так. Ага...
Сетка наша уже в то время была на коммутаторах, и задержек практически не имела.
Задержки снаружи – это, в общем. Было понятно.
Ага. Скорость распространения электромагнитной волны.
ОООПС....
Умножаем время на скорость света, и получаем... и получаем...
558.84719
Пятьсот пятьдесят восемь миль.
|
|
Home Box - польская поделка в моем зоопарке |
Давно уже идут разговоры про операционную систему Android.
На моем телефоне тоже стоит Android, на планшеты ее вовсю ставят.
Стали ставить и на медиаплэйеры (Ryan).
На днях, делая покупки в супермаркете, обзавелся вот таким польским изделием:

Главным образом повелся на двухсторонний пульт с qwerty-клавиатурой:

Спецификация тоже показалась приятной:
Что сделал:
1. Установил поддержку принтера
2. Установил файловый менеджер Total Commander и PlugIn-ы к нему
3. Установил AdobeReader
4. Установил VLC-плэйер
Теперь о том, что понравилось:
1. Поддержка работы с беспроводной клавиатурой и мышью.
2. Возможность раздавать WiFi (работать в качестве WiFi AcessPoint, HotSpot)
3. Возможность наводить порядок на внешних дисках, который подчас требует несколько часов, без участия рабочего компа
Теперь о том, что не понравилось:
1. Абсолютно нечеткая работа клавиатуры на пульте. Впрочем, беспроводная клавиатура тоже часто "троит"
2. Достаточно много сбоев
3. Локализация клавиатуры запорота производителем
Общие ощущения:
1. Мне с Android "душно", постоянно чего-то не хватает
2. Когда обновил прошивку, то система стала заметно устойчивее в работе.
Метки: Overmax HomeBox Android MediaPlayer HDMI Wi-Fi |
Huawei E5830 |

Как-то в Пскове купил вот такой 3G-модем с привязкой к МТС.
МТС я не люблю. Хотя, честно говоря, именно с этой покупкой проблем ни разу не возникло - качество связи всегда было хорошим. Порадовало поведение в российском роуминге, но не "слив" средств со счета :)
Однако, меня этот модем больше интересовал в разлоченном виде и, наконец, сегодня "руки дошли": при помощи гугля удалось модем разлочить. т.е. избавиться от привязки только к оператору МТС.
Какие плюсы дает мне применение этого модема:
Чего опасаюсь:
Добавлено 4 апреля 2013 года:
С девайсом не расстаюсь.
Батареи хватает часа на 4 непрерывной работы.
Работает четко, безотказно.
Про usb-модемы не вспоминаю.
Метки: 3G-модем Huawei E5830 Huawei E5830 |
Вояж |
Планировал выехать в пятницу 8:00.
Потом решил, что все-таки с утра нельзя упустить возможность позавтракать с женой.
Потом появились неотложные дела в городе.
Потом...
В 13-30 наконец я выехал из города в сторону Екабпилса. Понял, что в Гулбене сегодня не успею, а это - катастрофа!
Созвонился с Екабпилсом, перенес дела на субботу и повернул на кольцевую, чтобы попасть на псковское шоссе.
Сразу же начало клонить в сон - понятно, что стала портиться погода.
Чтобы чем-то занять голову, в Сигулде поставил фильм "Патруль"
Стало веселее, со сном справился.
Около Смилтене повернул на Гулбене и сразу понял, что погода не шутит: потемнело, навигатор потерял спутники. Шквалистый боковой ветер.
Снизил скорость до 70 км/час.
В Гулбене меня встретили сугробы и 5 градусов мороза.
К 19:00 освободился и стал думать о ночлеге, но созвонился с Резекне.
Оказывается, что сегодня они работают допоздна и я могу успеть по своим делам к ним.
(По их мнению мне ехать чуть больше часа)
Выехал. Скользко, скорость - не более 60 км/час.
В Балви остановился передохнуть и сбросить нервное напряжение.
Дальше стало легче, но страшнее: много поваленных деревьев. Некоторые висели на проводах, усугубляя жуть восприятия.
В Резекне приехал после десяти вечера, до часу провозился и стал искать ночлег.
В отеле "Латгале" спросили 27 лат за ночь - я себя люблю, но не настолько.
Нашел "Мотелис" - 12 лат. Годится.
Когда зашел в номер, то чуть не сдох от вони.
Полчаса проветривал.
Утром навсегла покинул сие место и поехал позавтракать в кафе "Mols".
Там тоже облом - закрыто.
Ладно, позавтракаю в Даугавпилсе.
Там справился быстро и решил не экспеременитровать с поисками кафе, а пообедать в проверенном месте в Екабпилсе.
Дорога была замечательной, включил Waze (чтобы не нарваться на штраф) и поехал.
К 15:00 уже подьезжал к кафе.
До 18:00 не столь работал, сколь интересно пообщался с коллегой.
Направление на Ригу, ехать 2 часа.
Надо чем-то себя занять.
Зашел на сайт http://www.come2play.com и сыграл партию в шахматы, которую закончил проезжая Саласпилс.
Дома первым делом забрался в горячую ванну.
Откуда, собственно, пишу.
И блаженствую.
|
|
Найди два отличия |
|
Позавчера в Добеле |
Метки: Добеле красиво |