Черновики у меня в комментариях
Мне тут хочется пару проектов на PHP доделать, а я
В том числе сделал то, что давно просили — черновики в комментариях. Работает только в современных браузерах — IE 8.0+, FF 3.5+, Safari 4.0+, Chrome 4.0+, Opera 10.5+, а так же iOS 2.0+ и Андроид 2.0+. Только такой список, так как сохранение происходит в localStorage.
localStorage — это клиентская база данных «ключ и значение», которые есть сейчас уже во всех распространённых браузерах. Преимущество хранения черновиков именно в ней — черновик сохраняется вне зависимости от того рухнул сервер или нет, ведь localStorage сохраняет данные на диске клиента.
Кстати, я делал библиотеку эмуляции localStorage для IE 6 и 7 (используется behavior userData), но у себя использовать не буду, ни к чему поощрять некрофилию.
Работает всё следующим образом (детально можно посмотреть в исходниках любой страницы с комментариями): когда пользователь делает паузу в наборе комментария, мой JS вызывает localStorage.setItem, где ключём является URL страницы плюс имя поля (у меня их три — имя пользователя, сам комментарий и кому этот комментарий был адресова).
После отправки комментария в теле полученной страницы приходят вызовы localStorage.removeItem, которые удаляют сохранённые значения.
Наконец, если страница была загружена не в результате отправки комментария, вызываются localStorage.getItem, чтобы получить сохранённые значения и подставить их в соответствующие поля.
Код, с использованием JQuery, получился вот такой:
// globalStorage — это для FF 2.0, но я не уверен, что это правда работает
var storage = window.localStorage || window.globalStorage && window.globalStorage[location.hostname] || null;
if (storage) {
var savedraft = function s() {
if (s.hnd) {
clearTimeout(s.hnd);
}
var o = $(this);
s.hnd = setTimeout(function() {
try { // если не хватит места, будет исключение
var prefix = location.pathname + '#';
storage.setItem(prefix + o.attr('name'), o.val());
storage.setItem(prefix + '?', +new Date()); // сохраняю время, возможно в будущем буду подчищать старые черновики
} catch (o) {}
}, 500);
}
// каждый элемент, который надо сохранять, имеет класс draft
$.each($('.draft'), function(_, value) {
var o = $(value),
key = location.pathname + '#' + o.attr('name'),
v = storage.getItem(key);
if (savedsuccessfully) { // внешний флаг, что черновик больше не нужен — всё сохранено на сервере
storage.removeItem(key);
} else if (v !== null) {
o.val(v);
}
o.keypress(savedraft).change(savedraft);
})
}localStorage не резиновое, у разных браузеров значения различаются, но в целом, там около 5МБ на домен, да и диск пользователя забивать жалко. Поэтому я сохраняю время записи, возможно
99 бутылок: Go
48. Go — язык программирования, придуманный в «Гугле». Я на нём программирую, время от времени, и довольно неплохо его уже знаю. Замечательный, на мой взгляд, язык. Этакий «Си с человеческим лицом». Особенно интересно добавлено туда ООП, да и параллельные вычисления сделаны хорошо. Единственно — не нравится реализация обработки ошибок через panic/defer.
Язык статический, строгой типизации, компилируемый. Кстати, одна из особенностей языка — исключительно быстрая компиляция.
Некоторые ребята считают, что он похож на «Паскаль». Думаю это
package main
import "strconv"
func main() {
for i := 99; i>0; i-- {
b := bottles(i) + " of beer"
println(b + " on the wall, " + b + ".")
println("Take one down and pass it around, " + bottles(i-1) + " of beer on the wall.\n")
}
println("No more bottles of beer on the wall, no more bottles of beer.")
println("Go to the store and buy some more, 99 bottles of beer on the wall.")
}
func bottles(beer int) string {
switch (beer) {
case 0:
return "no bottles"
case 1:
return "1 bottle"
}
return strconv.Itoa(beer) + " bottles"
}Сокращалки урлов должны умереть
В комментариях у меня спросили почему сокращалки урлов должны умереть. Отвечаю. Потому что они наносят кучу вреда при почти полном отсутствии пользы.
Поддержку UTF-7 уберут из браузеров?
Мало кто вообще знает, что есть такая кодировка как
Вот как выглядит «Hello! Привет, ребята!»
В общем, бесполезная штука. Эту кодировку поддерживают некоторые браузеры (например, IE или FF) и при использовании автоопределения кодировки она несёт в себе потенциальную угрозу: можно этой кодировкой закодировать
Фильтровать её трудно: плюсы, минусы, буквы, цифры, иногда
И вот WHATWG решила выпилить
User agents must not support
the CESU-8, UTF-7, BOCU-1 and SCSU encodings.
А вышедший недавно FireFox 5, уже убрал у себя поддержку этой кодировки. Туда ей и дорога!
На «Групоне» продают китайский пылесос втридорога?
На «Групоне» (это один из многочисленных сайтов, где продают товары и услуги со скидкой для разового привлечения клиентов), появилась акция —
Акция лично для меня очень привлекательная — я хочу
Ну с чего бы продавцу продавать технику со скидкой 65% на «Групоне», чтобы что? Привлечь покупателей, чтобы они и дальше покупали в их магазине? Но в магазине ничего больше не продаётся, а люди редко покупают потом ещё и второй пылесос, да ещё и на 65% дороже чем первый. Или что, я порекомендую магазин знакомым? Много ли у меня знакомых, готовых купить пылесос за восемь тысяч? А за 23, когда акция кончится? Ну не могут же организаторы всерьёз на это расчитывать?
Ещё меня насторожило, что пылесос этой марки мне не удалось найти в «Яндекс.Маркете», не нашёлся
Решил посмотреть что думает на эту тему всемогущий Фдд (какое я слово вспомнил!).
Оказалось я не зря подозревал неладное. За названием «Dust Robot Premium Cleaner 2011» скрывается «Intelligent robot vacuum cleaner suppliers» китайского производства, стоимостью от $45 до $120.
В данный момент (до окончания акции осталось два часа), пылесос купили уже 1327 человек и их количество быстро растёт.
На сайте «Групона» утверждается, что производитель пылесоса Германия. Мне не впервой видеть китайские реплики оригинальных товаров, но я нигде не нашёл никаких сведений о производителе «оригинального» пылесоса, да и на видео вылитый «китаец», реплики нередко отличаются в деталях (упрощением конструкции).
Добавлено позднее: всё ещё круче. Оказывается, этот пылесос пытаются продать не только в России, а по всему миру, где только есть сайты «Групона». Но что самое интересное, утверждается, что по меньшей мере один из сайтов, где продают пылесос (а именно — roboduster.de) зарегистрирован на одного
Тема? Оклад!
Сегодня услышал в Оружейной палате Кремля прекрасное слово «оклад», в выражении «оклад иконы». Я слышал его раньше,
Подумалось, что «темы операционной системы» (или программы), скорее не «темы», а «оклады».
網站.縮.jp — японская сокращалка урлов
Согласен с ДиБРом, это реально круто выглядит. 縮.jp — японская сокращалка урлов («縮» переводится как «сокращение»). Вот, например, ссылка на мой сайт: 網站.縮.jp, а вот на эту заметку: 進入.縮.jp.
Правда я всё равно считаю, что сокращалки урлов должны умереть.
P.S. Кстати,
Не хочу я выключать ноут в самолёте
На борту самолёта меня раздражает правило «выключать все электронные приборы при взлёте, посадке и рулении самолёта». Особо невменяемые компании требуют, чтобы упомянутые приборы были выключены на протяжении всего полёта.
Говорят это
Если бы электронные устройства несли хоть малейшую угрозу самолёту, пассажиров давно обязали бы сдавать их в багаж.
Кроме того, если масса устройств, которые излучают, преимущественно, в видимом свете, а то и (как элекронные читалки или плееры без экрана) не делают и этого.
Ну и на последок. Многие слышали, что пару лет назад одна из авиакомпаний стала предлагать подключение к спутниковому интернету через WiFi прямо на борту самолёта. Вслед за ней подтягиваются и конкуренты. Думаете, это
Ничего подобного.
Когда одна из компаний стала разворачивать сеть WiFi внутри
Но интересно что «авиационные инженеры оказались удивлены неполадками оборудования, отметив, что уровень сигнала, используемый в потребительских
Дефект обещают устранить, а самое важное в цитате я выделил.
Татарстан, Лаишевский район, село Бима









В понедельник мы с женой прилетели из Казани, навестили родителей, ещё не скоро выдастся такая возможность. Планировали также поездить по окресностям Казани, но замотались и съездили в субботу только в небольшое (208 жителей на 2000 год) село Би́ма Лаи́шевского района.
Мне неизвестно происхождение названия, более того, оно
В поиске нашлось слово «בִּימָה» («бима́», с ударением на последний слог) переводится как «возвышенное место», так называется возвышение в синагоге, на котором стоит стол для чтения Торы. Правда, я почти уверен, что связи тут быть не может.
Село примечательно святым источником, в котором, по легенде, в XVII веке была найдена икона великомученицы Параскевы Пятницы, с тех пор источник носит её имя. Икона хранилась в часовне, которая была выстроена на месте находки, а после того как часовню
Несмотря ни на что, источник своего статуса не потерял. В любой день там можно встретить верующих или просто людей, набирающих холодную, чистую воду в бутыли. Источник впадает в реку Мёша, которая протекает в полукилометре, в этом месте даже в середине лета вода остаётся прохладной.
Способ борьбы с мигалкиными
Короче говоря, с некоторых пор я с успехом применяю новую, эффективную и прогрессивную технику обращения с Синим ведерком.
Ведерко это всегда лежит у меня под рукой, на полу в салоне. И как только я слышу сзади знакомое покрякивание или повизгивание, вижу в зеркало машину БЕЗ СПЕЦИАЛЬНОЙ РАСКРАСКИ, но с сияющим синим фонарем во лбу, — реагирую немедленно.
Открываю окно и гордо воздеваю свое ведерко высоко над крышей. А в последнее время, с тех пор, как стал ездить в машине с люком, — высовываю его вверх через люк, так еще удобнее.
Действует этот прием безотказно. Еще ни разу не было случая, чтобы и сирена, и мигалка в членовозе, который уперся мне в зад, моментально не были выключены. Намек этот теперь понимает водитель любого членовоза. И подчиняются молчаливому, но решительному требованию мигалковладельцы незамедлительно.
Делится в ЖЖ Сергей Пахоменко, активист движения «Синих ведёрок» (члены которого ездят с прикреплённым к крыше синим детским ведёрком, что не запрещено правилами ПДД).
Айти-палочка

По пути на работу сегодня увидел — разрыта яма, в яме пробитая труба, из которой на дорогу, где ездят пафосные тачки, весело дрищет в два жерла водичка. Чтобы не замочить слуг народа, около трубы сидит на корточках специально обученный мужчина и досочкой закрывает путь стихии.
Судя по всему, уже долго сидит. А в трёх шагах от него стоит семиэтажное здание, битком набитое информационными технологиями и лучшим в стране поиском. Меня
Кунг-фу панда дерево лежак конфета самолёт аптека…
Мне нравится фильм
Кстати, руководитель «Дрим воркс энимейшн» рассказал о планах снять пять или шесть фильмов про этого панду.
Человекоподобные роботы и майор Богдамир
У Леонида Каганова в книгах есть такой персонаж — майор Хома Богдамир, отечественный супергерой с суперспособностями, которым, если правильно помню, он обязан э… родителям (удержался от спойлеров), те поколдовали над генным кодом Богдамира ещё до рождения.
Одна из суперспособностей — майор умеет пускать лазерные лучи из глаз:
Хо еще раз беспомощно моргнул веками, и вдруг понял, что надо сделать! Ведь у него было то, что он всю жизнь скрывал! То, чем он никогда еще не пользовался! Хо напрягся, и его костяные зрачки закатились. А вместо них из глазниц высунулись вперед тугие цилиндры лазерных пушек. Напряглись железы электрического ската. От страшного напряжения зажглись в глазницах алым огнем светящиеся клетки медузы. Зашевелились, фокусируя пучок, линзы, сотканные кремниевыми бактериями. И вот из глазниц ударили два лазерных луча!
Чистая фантастика, конечно.
А вчера я у «Кулера» читаю следующее:
Ученые смогли получить функционирующий лазер из живой клетки. Была использована клетка печени человека. Для этого, два исследователя из Веллмановского центра фотомедицины Главного госпиталя Массачусетса генетически создали клетку, которая производит особый зеленый флуоресцентный протеин (GFP).
Каганов, которому я кинул эту ссылку, ответил «круто» с тремя восклицательными знаками. Я его понимаю, ещё бы.
Рисунки Tavilla

Давненько не рекомендовал комиксы. Впрочем, эти скорее парадоксальные и остроумные рисунки, чем комиксы. Наверное так должен выглядеть ЖЖ Ромы Воронежского, если бы он свои высказывания зарисовывал, а не записывал.
Рекомендую — ЖЖ Тани из Зеленограда.
Нетбук на солнечной батарее
Фирма «Самсунг» объявила о выпуске нетбука NC215S, первого в мире нетбука на солнечных батареях. Обещают, что два часа пребывания на солнце обеспечивает час работы. В итоге, солнце, плюс аккумулятор должны обеспечивать до 14,5 часов непрерывной работы.
В нетбуке будет применяться процессор Интел Атом Н570 или Н455, 1ГБ памяти и дисплеем 10,1 дюймов с разрешением 1024×600 и 250 или 320ГБ жёсткого диска, вес 1,3 килограмма.
Замечательно, на мой взгляд. Надеюсь, другие производители последуют примеру.
Перевёл свой сайт на PHP 5.3.4
Решил поднять свои старые проекты на PHP под MacOS, чтобы на ноуте их нормально разрабатывать. В том числе, перетащил свой сайт. У меня движок сплошной эксперимент, так что используются различные тонкие вещи (например, ленивые вычисления при помощи __toString), которые в PHP 5.3 (который у меня на «Маке»)
Мелочи вспоминать не хочется, из того что запомнилось — PHP 5.3 нервно,
С веткой PHP 5.3 я почти не работал, когда эта версия стала появляться в пакетах стабильных версий систем, я уже перешёл на «Пайтон».
Мне с каждым днём страшнее тут жить
Самолет компании «Аэрофлот» прибыл из Иркутска в Москву с часовой задержкой: один из пассажиров опоздал к вылету. В обычных случаях опоздавших не ждут, но в этот раз все было
по-другому. Непунктуальным пассажиром оказался губернатор области Дмитрий Мезенцев. Наземные службы аэропорта связались с экипажем и велели подождать, пока первое лицо региона поднимется на борт. Пилоты пытались сопротивляться. Записи эти переговоров стали достоянием общественности.И их действительно не выпустили. Вылет задержали до тех пор, пока Мезенцев не сел в самолет, об этом со ссылкой на очевидцев сообщает агентство Новый регион. Вся эта история произошла в среду, но в поле зрения прессы попала только сейчас.
Цитата с сайта «Эха Москвы».
Усадьба Братцево









Две субботы назад (спасибо, Дофин и Дина) ездили в усадьбу Братцево, находящейся на реке Сходне. Вопреки тому, что усадьба находится недалеко от МКАД, шума машин и выхлопных газов почти не ощущается, может быть благодаря расположению на вершине холма.
Сохранившийся двухэтажный дом был построен в 1780 году, когда усадьбой владели Строгановы — выходцы из поморских крестьян, ставшие впоследствии графами. От усадьбы, помимо дома, сохранилась лишь беседка и потихоньку зарастающий сад, плавно перетекающий в заброшенный лесок и мутную речку.
Строгановым и прочим владельцам усадьбы можно только позавидовать, даже сейчас, несмотря на некоторый упадок и запустение, а так же
Цветы артистам
Русская аудитория делает то, чего не делает больше ни одна аудитория в мире, — приносит цветы на сцену. Классно, что эта традиция жива. И ещё есть одна вещь — может, она как раз, дай бог, уйдёт в историю:
VIP-места возле сцены.Из-за этого в партере невозможно танцевать и нет достаточного контакта с простой аудиторией.
Из журнала «Аэрофлот» за июнь 2011, страница 20, статья «В Россию с любовью» (это интервью с Рудольфом Шенкером, лидером группы «Скорпионс»).
Dolphin HD: браузер для «Андроида»

За пару лет владения телефоном на «Андроиде», я
Почему от безнадёги? Потому что браузер, который встроен в систему, хуже, чем «Опера Мобайл», но «Опера Мобайл» не понимает, что её запустили на полноэкранном устройстве с клавиатурой и мышкой (пытается подставить кучу костылей и они только мешают), а браузер FireFox Mobile (и стабильный,
И вот «Дельфин» очень хорош, особенно версия HD (для больших экранов). Правда, он всё равно не понимает, что я тыкаю мышкой, а не пальцем, поэтому в некоторых местах он менее удобен, чем можно было бы сделать.
У него есть «табы», работают «жесты» мышкой (но для этого нужно сначала ткнуть в специальную область экрана, см. левый нижний угол), удобные настройки, самое главное — браузер понимает, что его запустили на большом экране и ведёт себя соответственно, не жмётся, где не надо.
Кстати, говоря, у «Дельфина» есть встроенный speeddial, правда, без preview. Для жены эта функция необходима, ей так удобно (а смартбук для неё был куплен).