В ECMAScript 4 (JavaScript2 будет основан на этом языке) наконец-то появилась поддержка decimal — специального типа для работы с числами с фиксированным количеством десятичных знаков после запятой. В частности, это облегчит работу с денежными операциями.
Проблематику все понимают? Если нет, то хотя бы попробуйте сложить 0.1 и 0.7, умножить сумму на десять и округлить вниз в любом языке, который поддерживает числа с плавающей точкой. В языке, где числа с плавающей точкой представляются в соответствии со стандартом IEEE 754 (что у вас есть под рукой? JavaScript, Perl, PHP, MySQL) вы получите число 7. Почему так происходит — тема отдельного разговора, вкратце — дело в представлении числа с плавающей точкой на машинном уровне (на самом деле результатом данной суммы, в данном случае, с точки зрения такой реализации, будет 0.7999999999999999, а не 0.8) .
Decimal — специальный тип (чаще всего можно встретить его в СУБД), который позволяет манипулировать числами с фиксированной точкой. Зафиксировав точку, можно перейти к такому хранению числа, где таких погрешностей не будет.
В EMCAScript 4 (а так же в языках, на нём основанных — ActionScript 3 и JavaScript 2) есть два способа объявить число как decimal:
{
use decimal;
var a = 0.1; // a — decimal
var b = 0.2; // b — decimal
var c = a + b; // c — decimal (0.3)
}
var a = 0.1m; // a — decimal
var b = 0.2m; // b — decimal
var c = a + b; // c == 0.3m
Суффикс «m» пришёл из «C#» и расшифровывается как «money» («деньги»). В остальных языках программирования проблему обходят, работая с целыми числами. Перед выводом их просто делят на 100.
Голодные волки встретили в лесу зайца и собрались его съесть, а заяц им говорит: — Погодите, мной вы сильно не насытитесь, а я могу вас привести к стаду овец Волки решили не есть зайца и пошли за ним. Идут, а голод мучает все сильнее, они значит спрашивают: — Долго еще идти? Заяц им отвечает: — Вот, сразу за горой, которая перед нами Начали подниматься на гору, но не совладали волки с голодом, набросились на зайцаи съели. Наестца не наелись, голод мучает, но соблазна перед глазами более нет. Поднялись на гору и видят стадо овец. Сытно отобедали, и тут один значит говорит: — Как-то нехорошо с зайцем получилось Другой: — Да уж, пойдемте, останки что ли захороним? Вернулись, похоронили зайца, поставили камень на могилку и думают, что же написать: — «Другу зайцу» — не пойдет, не поймут, зачем друзья его съели — «Врагу зайцу» — тоже не пойдет, какой же он враг, когда привел их к стаду овец Думали, думали, и написали — «нашему консультанту и партнёру — зайцу»
Давайте я вам всю мощь «Оперы» (последней) покажу? А то тут некоторые товарищи user.js для обнаружения «трафки™» начали придумывать. Тем не менее, JavaScript тут не нужен, хватит и CSS. Ведь у «Оперы», наряду с пользовательскими JavaScript, есть и пользовательские CSS. Так что, просто подключаем к «Опере» следующий код и следим за индикатором в левом верхнем углу экрана (рассказывать как подключать я не буду и другим не советую — пусть это будет фильтром).
Смысл в том, что каждое следующее значение должно выпадать с вдвое меньшей вероятностью, чем предыдущее. Пока я спал, мне пришло в голову довольно забавное решение на ту же тему. Оно быстрее примерно на 30%, не обладает ограничением на размер и точнее вычисляет вероятности (у Димы «трафка» не выпадает с вероятностью примерно 52%), но не решает задачу полностью. Кто скажет в чём разница, не запуская код?
Что делать, если у вас на руках растровое изображение, скажем, логотипа, исходник в «кривых» которого утерян? Его надо срочно вставить в скетч или дизайн, а инструментов под рукой нет? Рекомендую воспользоваться сервисом «Vector Magic».
Преобразование происходит в несколько этапов — на первом вам нужно выбрать тип исходного изображения: фотографическое, или было когда-то векторным с антиалиасингом или без него, на втором — качество, потом, если потребуется — широту используемой палитры цветов. Полученное изображение можно сохранить в форматах EPS, SVG или PNG.
Кстати, на сайте есть сравнение с Adobe Live Trace (Illustrator CS2) и Corel PowerTRACE (CorelDRAW X3), как не странно, выигрывает «Vector Magic» (а может и не странно, над этим продуктом трудились ребята из стенфордского университета).
На «Блоговаре» появился новый функционал — «трафки™» (от «травки» и «трафик»), идея, которую я вынашивал для другого проекта, но которая прекрасно подошла к «Блоговару». Смысл — расширить поле игры на блоги-участники, дать людям больше трафика и освежить игру. В принципе, это создаёт поле для квестов, но Дима ограничился (пока?) первым уровнем — только поиском ингредиентов и составлением из них «зелий», которые дают какие-то новые возможности.
Смысл, в конечном счёте — вы заходите не только на сайт «Блоговара», но и на блоги своих соперников, которые поставили специальный код. Этот код, в зависимости от каких-то условий, показывает вам или «трафку» или пустую картинку. «Трафку» можно собрать, они разные, из них позже можно «варить зелье» (в данной реализации — просто поменять их на зелье в магазине, т.е. тут это разновидность денег). Жаль Дима не реализовал придуманное мной зелье «Time shift» (позволяет применять заклинание сразу же, не дожидаясь окончания периода «бессилия», но увеличивает единоразово этот период ещё на два часа), зато сделал «Levitate» (правда, назвал его «Pervonax» и у меня была немного другая задумка — чтобы блог в любой сортировке рейтинга выходил первым на час).
P.S. Дима всё-таки сделал заклинание «Slowmo» (в девичестве — «Time Shift»).
Помимо видеокамер с «open source» программной и аппаратной начинкой, есть ещё некоторое количество оборудования, которое разрабатывается по тем же принципам, например, «Project VGA» — видеокарта «open source» (в кавычках, потому что это понятие относится всё-таки к программному обеспечению). К сожалению, на текущий момент сайт недоступен, можно попробовать посмотреть на неё через кеш Google.
«Project VGA» — это проект разработки VGA-совместимой низкобюждетной карты с открытой аппаратной и программной частью. Если с открытостью, похоже, проблем нет (вторую версию схемы можно посмотреть при помощи редактора Cadsoft EAGLE), то низким бюджетом пока не получается — стомость деталей для сборки переваливает за €200 (правда, разработчики обещают подумать над мерами снижения цены).
Для чего нужны такие карты? Помимо экспериментов и получения новых знаний, они могут быть нужны там, где требуется повышенная секретность (у военных, например, ведь и у карты могут быть свои «закладки»), надёжность (к примеру — медики, спасатели; кто поручится, что видеокарта будет работать в определённых условиях, её ПО не содержит «заплаток», сделанных на скорую руку и так далее), тем людям, которые преданы делу «open source» до фанатизма или тем, кто любит всё делать своими руками.
Долгие годы голубая роза была недостижимой мечтой селекционеров, то, что удавалось получить, было, в лучшем случае, сиреневого оттенка. Говорят, что существует старинный арабский искусственный способ получения розы цвета ляпис-лазури (возможно, на фотографии голубых роз с выставки цветов «Москва-99» именно такие розы), хранимый под большим секретом и описанный только со слухов. Рецепт прост — корни роз надсекаются и пропитываются краской индиго, перевязываются и засыпаются землёй.
Ситуация изменилась в 2004-м году, когда японским и австралийским учёным удалось перенести в розу ген анютиных глазок, который помогает синтезировать пигмент дельфинидин, делающий лепестки голубыми. Впрочем, лепестки новой розы имеют, скорее, лиловый оттенок, учёные считают, что вмешиваются родные гены розы или какие-то негенетические факторы. Оказалось, что менять цвет можно разными методами — например, можно выключить гены, отвечающие за выроботку определённого пигмента, тогда ярче проявляются остальные пигменты.
Работа велась с 1990-го года, когда две фирмы — Suntory и Florigene решили сделать то, что не удалось селикционерам. Изначально учёные взяли ген цветка петуньи, но успеха это не возымело, зато удалось вывести в 1995 году синюю гвоздику. Компании намереваются продолжить свои исследования, чтобы улучшить цвет розы, более приблизить его к голубому. А пока они вывели более чем 20 вариантов гвоздик — жёлтые, розовые, с круглыми лепестками и так далее.
Голубые розы поступят в продажу в 2007—2008 годах.
Статьи полезны тем, что учат использовать «цели» (goals) и «воронки» (funnels) в Google Analytics. Если вы занимаетесь изготовлением сайтов, продающих какие-либо товары или услуги, статьи необходимо прочитать и научиться пользоваться этим инструментами.
На первой странице студии Артемия Лебедева сегодня была новость о сайте «Хэлплайна» с движущимся, при наведении мышки, изображением пластмассовой уточки.
Сама новость мне не интересна, а решение, которое позволяло уточке двигаться я посмотрел. Как и ожидалось — сдвиг позиции фонового изображения. Но есть и кое-что новое для меня — вызов «document.execCommand("BackgroundImageCache",false,true)» явно для Internet Explorer.
Как оказалось, это решение застарелого бага IE6 с миганием фона, подложенного под ссылку. Подробное описание описание условий возникновения бага можно найти в статье «Minimize Flickering CSS Background Images in IE6». Баг заметен, если в настройках кеширования браузера выбрать «Every visit to the page» для параметра «Check for newer versions of stored pages».
Вкратце, баг чаще всего проявляется при подкладывании фоновой картинки под ссылку — фон при наведении начинает неприятно мерцать, это Internet Explorer отсылает запросы на сервер, чтобы провеить не изменилась ли картинка, которую использовали как фон. Способ, который помогает решить проблему заключается в специальном JavaScript-вызове (хотя на мой взгляд лучше бы использовать «условную компиляцию» в IE), работает начиная с IE6SP1:
Браузер «Сафари» под «Мак», оказывается, умеет отображать PDF (и TIFF, кстати, тоже) в теге IMG. Т.е. как простую картинку. Поскольку в OSX есть встроенная поддержка PDF, такое поведение браузера, видимо, вытекает из того, что картинки в браузере отображаются через какой-то системный компонент. Причём, с отображением PDF через тег OBJECT у «Сафари» есть проблемы, если только не установить специальный плагин от фирмы Adobe.
А вот браузер «Опера», помимо стандартного набора JPEG/PNG/GIF/XBM умеет отображать ещё и ICO. Почему этого не делают остальные браузеры — загадка, ведь им всё равно приходится работать с этим форматом, чтобы отобразить favicon.ico.
У jkr-anitetta из Южной Кореи в ЖЖ появилась смешная заметка как она участвовала в массовке на съёмках сериала «Сеул, 1945», сериал про Вторую мировую, место действия — Владивосток. Если читать лениво, переходите сразу к фотографиям.
А были еще две лошадки и кареты. Что в общем-то было совсем не в тему. Никто в 45-ом в царских каретах не ездил. Дрожки – может быть, но не помпезные кареты 19 века. Несколько барышень были одеты в прикид 19 века! С мужиками вообще у них, у корейцев, как-то все было более правильно и в смысле одежды, и в смысле ролей. Ну да ладно, похоже русского, или хотя бы толкового специалиста по истории России пригласить забыли.
Самое приятное в том, что я отказался от веб-интерфейса и сделал управление сайтом через протокол Живого Журнала то, что я могу писать хоть из-под сотового телефона.
Давно хотел записать, чтобы не потерять. Выдержка из главы «Defragmenting a Table» руководства по MySQL:
It can speed up index scans if you periodically perform a “null” ALTER TABLE operation:
ALTER TABLE tbl_name ENGINE=INNODB
That causes MySQL to rebuild the table. Another way to perform a defragmentation operation is to use mysqldump to dump the table to a text file, drop the table, and reload it from the dump file.
По-русски говоря, таблицы в формате InnoDB могут сильно фрагметироваться в процессе работы, для того, чтобы избавиться от фрагметрации выполняйте иногда это «магическую» конструкцию или снимайте дамп с таблицы и заливайте обратно.
Однако мой отец как-то давно случайно нашел волшебный пинок для этих паразитов. Пинок совершенно волшебный и действует безотказно. Проверено с десяток раз. Однако, что поразительно, уроки они не усваивают и пинок приходится применять снова и снова. […] Заходим на сайт mos.ru и в самом низу видем адресок почты mayor@mos.ru. Это адрес приемной Лужкова по вопросам… да почти по всем вопросам. В общем на этот адрес надо накатать письмецо, где расписать все то, что коммунальные службы “сделали”. А, скорее всего, “не сделали”.
В свете моего скорого переезда в Москву это более чем полезное знание. Когда я покупал квартиру в Казани в новом доме, то меня один раз затопили и один раз топил я — из-за лопнувшей канализационной трубы и это я ещё легко отделался.