Хочу представить Хабрасообществу наш новый проект — 42tasks.com, кросс платформенный GTD сервис. Почему 42tasks? Потому что все более менее приличные домены уже были заняты а "42 — Ответ на главный вопрос жизни, вселенной и всего такого".
Kaaboeld @Kaaboeld
Пользователь
FileSystem API&File API: разбираемся и используем
14 min
96KВ данной статье я хочу рассмотреть FileSystem API и File API, разобраться с его методами и показать пару полезных штук. Эта статья является компиляцией материалов с html5rocks (1, 2, 3). Все представленные ниже демки можно посмотреть по первым двум ссылкам. Третья ссылка так же предлагает ряд интересных демо. Ну а теперь займемся изучением материала.
+89
Весна грядёт и CodeFest вместе с ней
1 min
537Всего каких-то 3 с копейками месяца назад мы радостно подвели итоги первого CodeFest в Новосибирске и ответственно пообещали вернуться весной. И поскольку мы свои обещания держим… Мы начинаем готовить весенний CodeFest!
Что это будет?
В сентябре CodeFest прошел в два потока и в три секции: разработка, тестирование и управление проектами. На этот раз мы решили сохранить концепцию, но при этом слегка расширить направление разработки и поэкспериментировать.
В итоге у нас появились четыре дополнительных направления:
Что это будет?
В сентябре CodeFest прошел в два потока и в три секции: разработка, тестирование и управление проектами. На этот раз мы решили сохранить концепцию, но при этом слегка расширить направление разработки и поэкспериментировать.
В итоге у нас появились четыре дополнительных направления:
- Enterprise — будет интересно разработчикам корпоративных информационных систем;
- Mobile — мобильная разработка: платформы, фреймворки, технологии, грабли, тенденции и т.д.;
- UI — место UI в разработке, usability-тестирование и прочие радости;
- HR — специальная крайне экспериментальная секция для руководителей и hr-служб компаний больших и маленьких.
+26
Mozilla Skywriter (Bespin) вошёл в состав Cloud9 IDE
1 min
1.2KЗамечательный онлайновый Javascript-редактор Mozilla Skywriter (с конца 2008 года был известен под названием Mozilla Bespin, переименован в октябре 2010 года) вошёл в состав интегрированной среды разработки Cloud9 IDE. Это среда, заточенная именно на JavaScript, которая работает через браузер и позиционируется как альтернатива офлайновым IDE вроде Eclipse. Сейчас находится в стадии бета-тестирования.
Mozilla Skywriter теперь слит с Javascript-редактором ACE (Ajax.org Cloud9 Editor). Тот распространяется под тремя лицензиями MPL/LGPL/GPL, которые теперь относятся и к Skywriter.
Mozilla Skywriter теперь слит с Javascript-редактором ACE (Ajax.org Cloud9 Editor). Тот распространяется под тремя лицензиями MPL/LGPL/GPL, которые теперь относятся и к Skywriter.
+30
Система управления документами Alfresco
7 min
149KПоиск по Хабру не нашел подробных статей по системе Alfresco. В данной статье попробую убить сразу двух зайцев: рассказать что представляет из себя система Alfresco и как мы используем ее в нашей работе.
Как хранятся документы в небольшой организации? Самое простое — на локальном диске. А если необходима совместная работа — пересылаются по почте, либо, самый популярный вариант, на сетевом диске. Еще прекрасный вариант — Google Docs, но не уверен что он широко используется в Российской практике.
Не знаю, какого размера должна достигнуть организация, чтобы в ней задумались о внедрении системы электронного документооборота, но думаю примерно это цифра в районе 50-100 сотрудников, работающих с документами.
При мысли о системе электронного документооборота первыми на ум приходят дорогие решения от известных вендоров, таких как Microsoft, EMC, 1С и т.д. Но есть и альтернатива закрытым решениям — система управления документами с открытым исходным кодом Alfresco. Или, если по-английски, то Open Source Enterprise Content Management System (ECM, CMS).
Конкуренты Alfresco — это закрытое ПО, такое как EMC Documentum, Open Text, Sharepoint. Сами разработчики Alfresco пишут о своих конкурентах, как о наследии 90-х годов, которое:
Попробую рассказать о системе, а вы уже решайте правы ли были разработчики.
Как хранятся документы в небольшой организации? Самое простое — на локальном диске. А если необходима совместная работа — пересылаются по почте, либо, самый популярный вариант, на сетевом диске. Еще прекрасный вариант — Google Docs, но не уверен что он широко используется в Российской практике.
Не знаю, какого размера должна достигнуть организация, чтобы в ней задумались о внедрении системы электронного документооборота, но думаю примерно это цифра в районе 50-100 сотрудников, работающих с документами.
При мысли о системе электронного документооборота первыми на ум приходят дорогие решения от известных вендоров, таких как Microsoft, EMC, 1С и т.д. Но есть и альтернатива закрытым решениям — система управления документами с открытым исходным кодом Alfresco. Или, если по-английски, то Open Source Enterprise Content Management System (ECM, CMS).
Конкуренты Alfresco — это закрытое ПО, такое как EMC Documentum, Open Text, Sharepoint. Сами разработчики Alfresco пишут о своих конкурентах, как о наследии 90-х годов, которое:
- слишком дорого стоит
- слишком сложно использовать, разворачивать, масштабировать
- слишком сложно модифицировать под свои нужды
- слишком “проприетарно”
Попробую рассказать о системе, а вы уже решайте правы ли были разработчики.
+56
Новый программерский жаргон
7 min
51KTranslation
Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?
Ниже — вольный перевод самых популярных ответов.
Ниже — вольный перевод самых популярных ответов.
+335
Чечетка в ластах
4 min
12KСупервступление
Здравствуй, %username%. Мы, такая вся из себя замечательная компания, ла-ла, позиции на рынке, основаны бла-бла, лучшая практика, ознакомиться на нашем сайте… в общем на этом будем считать игру в булшит-бинго законченной :) Перейдем к делу. Расскажу ка я вам о том, как у нас все плохо.
+138
Rails: Хватит отмазываться, начинаем BDD-ить!
9 min
32KКто здесь?
Когда речь заходит о тестировании существующего продукта, а тем более о разработке чего-то нового на основе изначального написания сценариев использования, различных спецификаций и тестов, то частенько можно слышать подобные вещи:
11:24:21 PM Michael: ну хз, надо пробовать 11:24:24 PM Michael: наверное так лучше 11:24:27 PM Michael: даже я думаю наверняка 11:24:36 PM Michael: но пока меня че-то останавливает 11:24:38 PM Michael: лень наверное :)
Знакомо? «Не хочется разбираться? Нет времени?» Тогда читаем дальше. В статье расскажу, как настроить свое любимое рельсовое окружении на разработку с подходом BDD и начать новую жизнь (опционально).
+66
App Engine API под капотом
6 min
1.8KTranslation
Этим топиком я хочу открыть серию переводов блога Ника Джонсона. Ник публикует крайне полезные статьи по GAE, делится опытом, ставит необычные экспериметы. Надеюсь, эти материалы будут вам полезны.
Если вы используете App Engine только для простых приложений, то лучше воздержаться от дальнейшего чтения. Если же вам интересны низкоуровневые оптимизации или вы хотите написать библиотеку для работы с самыми сокровенными компонентами App Engine, прошу читать далее!
В конечном счете, каждый API-вызов проходит через один общий интерфейс с 4-я аргументами: имя службы (например, 'datastore_v3' или 'memcache'), имя метода (например, 'Get' или 'RunQuery'), запрос и ответ. Запрос и ответ являются буферами протоколов — двоичным форматом, широко используемым в Google для обмена структурированными данными между процессами. Конкретный тип запроса и ответа буферов протокола зависит от вызванного метода. Когда происходит вызов API, буфер протокола запроса формируется из данных, отправленных в запросе, а буфер протокола ответа остается пустым и в дальнейшем заполняется данными, возвращенными ответом API-вызова.
Если вы используете App Engine только для простых приложений, то лучше воздержаться от дальнейшего чтения. Если же вам интересны низкоуровневые оптимизации или вы хотите написать библиотеку для работы с самыми сокровенными компонентами App Engine, прошу читать далее!
Общий API-интерфейс
В конечном счете, каждый API-вызов проходит через один общий интерфейс с 4-я аргументами: имя службы (например, 'datastore_v3' или 'memcache'), имя метода (например, 'Get' или 'RunQuery'), запрос и ответ. Запрос и ответ являются буферами протоколов — двоичным форматом, широко используемым в Google для обмена структурированными данными между процессами. Конкретный тип запроса и ответа буферов протокола зависит от вызванного метода. Когда происходит вызов API, буфер протокола запроса формируется из данных, отправленных в запросе, а буфер протокола ответа остается пустым и в дальнейшем заполняется данными, возвращенными ответом API-вызова.
+43
Xmas Time: симпатичная девушка рисует время
1 min
792Всем привет! С наступающими Рождеством и Новым Годом! Мы пришли не с пустыми руками и хотим рассказать вам о нашем новом проекте.
Мы — On5 — занимаемся играми для iOS. А еще мы любим делать часы. Недавно мы выпустили бесплатные «Часики от On5» для iPad, а сейчас пошли еще дальше.
Xmas Time — видеочасы, в которых милая девушка в костюме Санты каждую минуту рисует новую стрелку, стирая старую, а в перерывах от этого тяжкого труда пытается привлечь ваше внимание.
Помимо iOS приложения мы еще сделали сайт, дублирующий функциональность. Смотрите, что получилось, на http://thexmastime.com.
С технической стороны все довольно просто: есть 60 кусочков видео по минуте кажый, есть 12 картинок с разными положениями стрелок — мы их просто совмещаем программно так, чтоб минимизировать зазоры между видео-клипами.
Если вам будет интересно, с радостью расскажем подробнее о процессе съемок и разработки.
Мы — On5 — занимаемся играми для iOS. А еще мы любим делать часы. Недавно мы выпустили бесплатные «Часики от On5» для iPad, а сейчас пошли еще дальше.
Xmas Time — видеочасы, в которых милая девушка в костюме Санты каждую минуту рисует новую стрелку, стирая старую, а в перерывах от этого тяжкого труда пытается привлечь ваше внимание.
Помимо iOS приложения мы еще сделали сайт, дублирующий функциональность. Смотрите, что получилось, на http://thexmastime.com.
С технической стороны все довольно просто: есть 60 кусочков видео по минуте кажый, есть 12 картинок с разными положениями стрелок — мы их просто совмещаем программно так, чтоб минимизировать зазоры между видео-клипами.
Если вам будет интересно, с радостью расскажем подробнее о процессе съемок и разработки.
+5
Домашний файлообменник на базе Sinatra и DataMapper. Часть 3 — Very Advanced features
10 min
4.1KПредыдущие две статьи (раз и два) оказались гораздо популярнее, чем я мог ожидать. А теперь пришла пора третьей, завершающей статьи о файлообменнике на базе Sinatra и DataMapper.
В этот раз мы рассмотрим:
В этот раз мы рассмотрим:
- Проблему с одинаковыми именами файлов
- Страницу ожидания перед загрузкой
- Создание CSS с помощью SASS
- Аутентификацию
- Запуск из под thin
- Тестирование с помощью RSpec
- Бенчмарки
+24
Тренды в дизайне иконок 2010
4 min
29KСоздание иконок — довольно консервативное направление дизайна. Часто новая и оригинальная иконка работает намного хуже, чем стандартная и привычная. Но индустрия не стоит на месте — появляются новые устройства с новыми интерфейсами, и меняются способы работы с ними. Происходит это все довольно медленно, но тренды выделить можно.
Скажу пару слов о методике выявления трендов. Я работаю в компании, которая занимается иконками и интерфейсами, поэтому мне необходимо следить за новыми устройствами, программами и их интерфейсами. Плюс, некоторые выводы можно сделать по тому, что хотят наши клиенты, какие именно иконки они заказывают.
Скажу пару слов о методике выявления трендов. Я работаю в компании, которая занимается иконками и интерфейсами, поэтому мне необходимо следить за новыми устройствами, программами и их интерфейсами. Плюс, некоторые выводы можно сделать по тому, что хотят наши клиенты, какие именно иконки они заказывают.
+145
PHPLego: Ненавязчивый AJAX
9 min
21KЗдравствуйте дорогие хаброчитатели!
Думали ли Вы когда-нибудь о том, чтобы Ваш сайт одинаково хорошо работал с включенным JavaScript-ом и без JavaScript-а? Чтобы, если JavaScript включен, блоки сайта перегружались AJAX-сом, а если JavaScript-а нет, то происходил просто переход на новую страницу?
Хмм… Я думаю, что это интересная задачка, и вот какое простое решение мне удалось придумать. В этой статье я попытаюсь в общих чертах описать суть этого решения, не вдаваясь особо в неинтересные детали.
Для себя я сформулировал задачу, по следующим критериям:
- Переход по разделам сайта внутри и вне блоков должен осуществляться обычными ссылками, без каких бы то ни было onclick=”…”.
- При включенном JavaScript-е блоки сайта перегружают только свою область страницы (свой div). При выключенном JavaScript-е должен происходить обычный переход по ссылке.
- Должен существовать только один глобальный обработчик нажатия на ссылки $(“a”).click(…), который и делает всю работу по перегрузке нужных элементов страницы. Если же JavаScript отключен, то этот обработчик просто не срабатывает, и сайт продолжает работать в обычном режиме.
- Постинг форм при включенном JavaScript-е также обновляет только ту область, в которой находится эта форма. При отключенном – все работает как обычно.
- Должна быть возможность запретить AJAX-презагрузку некоторым областям страницы, например, поставив им какой-нибудь класс «noajax». Это если после перехода по ссылке меняется слишком много данных на странице, и они все в разных блоках. Тогда разумней перегрузить всю страницу целиком, чем обновлять каждый блочёк по отдельности. Оно и быстрее будет.
- Должна быть возможность указать ссылке блок, который она должна перегрузить. Допустим, если нам нужно перегрузить не только текущий блок, но и блок родитель.
- Если блок был загружен ранее, то он должен браться из кеша, дабы не гонять лишний трафик и не напрягать лишним запросом сервер.
- В случае, если блок загружен из КЭШа, пользователь должен как-то понимать что эта не самая актуальная информация, и иметь возможность обновить блок.
- Никакого JavaScript-a. Это конечно мое личное мнение, но я ненавижу писать на JavaScript-е. Поэтому я добавил еще один пункт. Смысл его в том, чтобы разрабатывая модули к сайту я не писал ни строчки JavaScript-а (ну максимум одну-две на модуль, и то для каких-нибудь чекбосов в форме). Не знаю, как ты, дорогой хаброчтец, но я, твою мать, лучше продам свою душу дьяволу, чем буду дебажить свой JavaScript во всех многообразиях браузеров!
Ну, вот собственно и все пожелания. Итак, приступим к реализации…
+53
PixelBuzz.tv — экспериментируем с пикселями
1 min
802Современное кино и телепередачи — это сплошные многомиллионные бюджеты, скандалы, знаменитости и сумасшедшие спецэффекты. В PixelBuzz.tv все наоборот. В нашем распоряжении — 8 цветов, 4 кадра и ограниченный набор пикселов. Каждый может стать режиссером и сделать свой пиксельный ролик, отправив его в общий канал. Все ролики перемешиваются и в случайном порядке отдаются зрителям.
+128
Memcached и PHP ликбез
6 min
225KВ интернете достаточно много информации на данную тему, но, несмотря на это, многие обходят её стороной. Цель данного поста, разъяснить на пальцах основы взаимодействия с Memcached.
+53
apache+nginx+gzip_static+yuicompressor
6 min
15KВ этой статье я опишу принципиальные различия Apache и Nginx, архитектуру фронтэнд-бэкэнд, установку Apache в качестве бэкэнда и Nginx в качестве фронтэнда. А также опишу технологию, позволяющую ускорить работу веб-сервера: gzip_static+yuicompressor.
+101
Как подружить PHP с консолью Google Chrome
2 min
21KВнимание
Статья содержит информацию об устаревшей версии PHP Console.О новой версии PHP Console 3.0 читайте тут.
PHP Console 1.0
Речь пойдёт об одном чудном расширении для Google Chrome, которое позволяет проксировать вывод ошибок и дебаг сообщений из PHP в консоль Google Chrome, а также отображать их в виде всплывающих popup-уведомлений.
+97
Цвета в web-дизайне: Выбор правильного сочетания для вашего сайта
6 min
381KЦвет, безусловно, является важным источником эмоции. Цвета могут устанавливать правильный тон и передавать необходимые эмоции посетителям, могут взволновать, вызвать множество чувств и стимулировать к действиям. Он является чрезвычайно мощным фактором воздействия на пользователей.
+95
HDR видео с помощью двух 5D Mark II
1 min
7KTranslation
От переводчика: Поясню, почему мне этот топик интересен. Во-первых, я сам когда-то занимался HDR фотографией. А во-вторых, когда зеркалки стали снимать видео, я был поражен, как одна профессиональная фуллфреймовая зеркалка с набором хороших линз может порвать профессиональные видеокамеры. Теперь это объединили: двумя зеркалками сняли видео, и сделали из этого HDR. Мне кажется, это достойно того, чтобы перевести и показать вам...
+110
Проблемы и недостатки SaaS
3 min
6.5KВсех несколько удивляет, почему рынок SaaS развивается медленно. Меня же удивляет, почему при этом не называют очевидных причин. В различных источниках называется несколько причин слабой скорости развития SaaS:
— жесткие требования к качеству и бесперебойности канала связи;
— ограниченность функционала ввиду особенностей браузеров. В настоящее время все еще невозможно создать веб-сервис с функционалом, аналогичным оффлайн-приложениям;
— недостаточная скорость работы;
— консерватизм и недоверие пользователей к обрабатываемой «неизвестно где» конфиденциальной информации.
Это все, конечно, хорошо и правильно, НО: первые три технических вопроса решатся со временем, поскольку прогресс не остановить. На мой взгляд, однако, это не решит проблему развития, поскольку проблемы кроются не там. Все эти недостатки — технические. Такое впечатление, будто сам принцип онлайн предоставления функционала важнее рыночных реалий.
Давайте поставим себя на место какой-нибудь компании, потенциального клиента. Что будет важно на самом деле? Я сейчас отвечу как человек, который в нескольких компаниях отвечал за корпоративную автоматизацию:
— жесткие требования к качеству и бесперебойности канала связи;
— ограниченность функционала ввиду особенностей браузеров. В настоящее время все еще невозможно создать веб-сервис с функционалом, аналогичным оффлайн-приложениям;
— недостаточная скорость работы;
— консерватизм и недоверие пользователей к обрабатываемой «неизвестно где» конфиденциальной информации.
Это все, конечно, хорошо и правильно, НО: первые три технических вопроса решатся со временем, поскольку прогресс не остановить. На мой взгляд, однако, это не решит проблему развития, поскольку проблемы кроются не там. Все эти недостатки — технические. Такое впечатление, будто сам принцип онлайн предоставления функционала важнее рыночных реалий.
Давайте поставим себя на место какой-нибудь компании, потенциального клиента. Что будет важно на самом деле? Я сейчас отвечу как человек, который в нескольких компаниях отвечал за корпоративную автоматизацию:
+42
Information
- Rating
- Does not participate
- Location
- Новосибирск, Новосибирская обл., Россия
- Date of birth
- Registered
- Activity