fun → Kiwi Mad World
Скинули ссылку на ролик про киви. Заставляет задуматься...
Скинули ссылку на ролик про киви. Заставляет задуматься...
15 июля я прочитал новость на сайте Ajaxian, что Mike Chambers может отправить книгу "Adobe AIR for Javascript Developers pocket guide" первым 100 приславшим адрес на его почтовый адрес.
Я, недолго думая, отправил письмо
Вчера позвонили из службы доставки и спросили когда я буду дома и попросили номер мобильного телефона. Сначала я не понял что мне должны прислать, потому что обычно не верю в такие халявные книги
И сегодня курьер позвонил, спросил как до меня добраться и привез пакет с кучей наклеек. Расписался, почитал что пишут на наклейках и понял что прислали именно эту книгу. Внутри были сама книга, буклет о платформе Adobe (точно не понимаю что это. но видимо про Flex и Flash) и наклейка.
Теперь на досуге можно почитать книжку, вместо того чтобы ковыряться в браузере
P.S. Оказалось Mike Chambers один из авторов этой книги. Приятно.
Все же наверно знаете что можно из длинной ссылки получить маленькую?
Например, с помощью сервиса tinyurl.com, просто вводите свою большую ссылку и получается короткую, и сервис просто вас редиректит на нужную. Все просто.
Сервисов уже сделано довольно много таких. Есть даже русские.
А вчера я вечером не знал что делать, гулять и ехать на open air было рано (я так и не уехал, поздно спохватился и все транспорты ушли
), я решил попробовать поработать с CURL. Не буду объяснят что это такое
Вобщем я добился такого, что из php скрипта получать короткие ссылки с разных сервисов. Ввожу свою ссылку, жму кнопку и получаю штук 8 других. 8 — потому что гугл мне показал 10 штук примерно их, но 2 сервиса отпали, так как были не рабочие.
Решил все это оформить как сервис, но вот беда — я не очень хороший верстальщик и у меня не получилсь сделать чтобы footer (подвал) был всегда внизу. Пока оставил, может придет вдохновение и доделаю. А получать весь набор ссылок через AJAX уже есть + есть проверка от спам-бота. Не серьезная конечно, но все равно от простых ботов защитит.
В пятницу днем узнал что моя реализация ORM дала сбой на большом кол-ве записей
Пришлось ставить заглушку и выяснять что там случилось. Оказалось все просто — когда я делал ORM, я «пропустил» момент оптимизации. И так получилось что сначало все работало как надо, а потом записей стало так много, что скрипт просто не выдержал и вылетал с max execution time, нашел место проблемы (дуралей поставил получение всех записей, а потом только пагинатор убирал не нужные) и до вечера переписывал код
Второй вариант я сделал часа за 3. Работало отлично, hasMany, hasOne все в одном запросе через JOIN (Вася, я увидел это у тебя и мне понравилась реализация
) Разбор полученных данных и разброс в массивы.
Все круто, думал я
А потом до меня дошло что когда мы используем hasMany, мы получаем 4 записи (к примеру) с одинаковыми данными текущей модели и с разными модели hasMany. Разбирается это все прекрасно, но вот пагинатор не сработал бы. Фактически мы после обработки получаем 1 запись. А LIMIT засчитал как за 4 записи.
Поэтмоу мне пришлось вернуть часть старого кода. Я оставил JOIN'ы, потому что с ними удобно было ставить запросы. Из-за запросов у меня были как раз проблемы в самом первом варианте. Там нельзя было фильтровать записи по полю из ассоциативной модели. Теперь можно, но пока пишу пост подумал что нада пару вещей проверить, на то как вложенности работают
Но должны...
В итоге я получил работающий 3ий вариант, работает быстро. Записи берет только реально нужные через LIMIT. Жду когда протестим на основном сервере.
Наконец-то получил долгожданный отпуск! с 23 июля 2 недели я могу отдыхать от работы. Я работал целый год без отпуска, но с маленькими перерывами во время сессии, но полноценного отдыха не видел
Очень жаль что целая неделя отпуска уйдет на универ, но лучше закрыть сессию, чем вылететь
Зато 2-я неделя пройдет продуктивно!
Текущие todo во время отпуска:
Вообще, планы на отдых хорошие, но не знаю как все успею. Парашют, тарзанка и Нечкино можно только в выходные пробовать. В пермь тоже только на выходные можно съездить. Посмотрим что из этого получится
Ещё скачал Windows Live Writer, пишу пост из него.
Не могу понять что сегодня за день такой, и почему очень много релизов произошло именно в этот день
Начну по-порядку.
Релиз Firefox 3.0 – да, этот день ждали, в этот день пытались ставить рекорды, даже Яндекс сделал страничку с таймером, а после релиза с ссылкой для скачивания.
Качаем, смотрим
Я пока не буду ставить, боюсь что плагины не будут работать и моя тема аля Safari.
Релиз Adobe AIR 1.1 – для меня это очень хорошая новость. Очень интересная платформа для разработки. В этой версии наконец-то добавили поддержку ввода русского языка
Плюс сделали фреймворк для автоматического обновления программ, хорошая возможность.
Релиз WINE 1.0 — целых 15 лет они разрабатывали «эмуляцию» windows и вот, наконец-то, сделали
Как-то они запозднились, я перешел на Windows и мне этот Wine уже не пригодится.
Facebook добавили русский язык в интерфейсе, может это заменит вконтакте?
Пока я болею, решил написать о 2х событиях, которые я не могу оставить без внимания
Команда jQuery UI team выпустила новую версию jQuery UI.
Особенности релиза:
Ещё интересным дополнением стал онлайн редактор тем для jQuery UI, раньше надо было вручную менять стили, картинки. Теперь можно все это делать через удобный редактор.
2я главная новость — это анонс iPhone 3G. 8 гигабайтная версия будет стоить всего 200$! Единственное что огорчает, так это не понятно как будет с разблокировкой прошивки. Напомню, что официально в России iPhone не может продаваться из-за контрактов с телефонным оператором. В США это AT&T и контракт длится 2 года по не самым дешевым тарифам. Кто-то считал и получилось что за 2 года придется потратить около 2000$
Купить iPhone 3G можно будет 11 июля в Apple Store. Ещё к концу года обещали решить проблему с использованием iPhone в России. Надеюсь у них все получится и мы станем счастливыми обладателями шедевра
Ещё я обновил wordpress до версии 2.5.1, все прошло гладко, ничего не сломалось. Очень рад
Сегодня Google объявила об открытии интерфейса Google AJAX Libraries API. Что это и для чего нужно я в кратце поясню.
Во-первых, это хранилище всех версий следующих библиотек:
Это значит вы можете получить любую версию библиотек сразу в коде страницы с помощью специального запроса (об этом чуть позже). Это также значит, что вам не предется хранить на своем сервере все эти кучи файлов и менять с выходом новых версий файл. И да, на сервере Google хранятся также сжатые версии.
Во-вторых, инфраструктура серверов Google довольна хорошо работает и сервера могут обеспечить хорошую скорость по выдаче файлов. Если кто-то уже загружал этот файл с сервера Google, он уже может оказаться в кеше. Разработчикам не придется заботиться о компресии и кеше, это сделает Google.
В-третих, все это работает максимально просто. Чтобы получить нужную библиотеку, можно воспользоваться двумя способами. Самый простой это сделать запрос через <script src=""></script>
Например, нам нужно получить prototype версии 1.6.0.2:
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.min.js"></script>
Второй способ это загрузить библиотеку через метож google.load из Google AJAX API Loader's
Пример для jQuery:
<script src="http://www.google.com/jsapi"></script>
<script>
// загружаем jQuery
google.load("jquery", "1");
// когда страница загружена, вызываем метод jQuery
// поиск через Google
google.setOnLoadCallback(function() {
$.getJSON("http://ajax.googleapis.com/ajax/services/search/web?q=google&;v=1.0&;callback=?",
//запрос завершен, получаем данные
function (data) {
if (data.responseDate.results &&
data.responseDate.results.length>0) {
renderResults(data.responseDate.results);
}
});
});
</script>
Вот и все
Ещё одна интересная вещь — загрузка последней версии библиотеки. Когда мы указываем версию файла, можно указать что мы хотим загрузить самую последнюю версию. Например, если укажем версию «1» для jQuery, мы загрузим версию 1.2.6. Для остальных библиотек также. Можно указывать ветки версий. То есть, если укажем версию 1.2, то нам загрузят 1.2.6. Но когда выйдет версия 1.3.х, она не будет загружена.
По умолчанию грузится сжатая версия библиотеки, а чтобы загрузить обычную версию, надо указать в строке запроса что мы хотим загрузить. Например
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>
Это если мы используем URL для запроса. А если мы используем метод google.load,то надо указать в функцию допольнительный параметр {uncompressed:false}
Дополнительные ссылки:
via Ajaxian
Была у меня задача написать плагин для FCKEditor, чтобы была возможность вставлять фотографии из фотобазы. Плагин написал, окошко открывается из FCK, фотки показываются. У нас фотки все хранятся с разными размерами, то есть можно выбрать размер. Я решил это дело оформить с UI Dialog, чтобы было удобно. Все, открывается. Думаю закончил, щас только размеры соберу для всех фоток и будет готово. Ан нет! Когда кликаю на фотку, почему-то все окно браузера перекашивает и появляется черный прямоугольник.
Сначала думал что это глючит jQuery UI, начал тестить, закачал последнюю бету. Все равно, не работает и все. В Firebug тестил, из-за фрейма у окошка FCK там нельзя вызвать в консоли то что мне надо. И так и этак пробовал, не получается.
После 2х часов мучений решил поменять имя функции открытия окошка на другое. Теперь вместо «open», называется «openDialog». И чудо! Заработало. Оказывается, в Firefox эта функция открывает новое окно. Хотя я обычно использую window.open, и не понимаю как open делает тоже самое.
Совет: когда пишите на JS, проверяйте названия своих функций
Давно уже задумывался о создании простенькой системы todo списка для рабочих целей. Есть конечно вариант от 37signals — Ta-Da List, но там интерфейс мне не очень нравится. Довольно мелко написано и немного не удобно. Конечно, все остальное отлично сделано, не зря они 37signals
А пока я думаю о такой штуке:
Пока ещё думаю где найти время для всего этого и на чем писать. У меня два варианта — Ruby On Rails и cakephp. Рельсы я плохо знаю, руби тем более
cakephp знаю, наброски уже были когда-то давно сделаны, но заброшены. Но cakephp все же на PHP, а я хочу попробовать Руби изучать. Видимо все-таки придется изучать рельсы и руби