Как стать автором
Поиск
Написать публикацию
Обновить
-0.38

Чулан

Всякая всячина

Сначала показывать
Порог рейтинга
Уровень сложности

Наталья Брызгалова — рейтинги студий, управление проектами

Время на прочтение1 мин
Количество просмотров856
На сайте онлайн-конференций, которые уже 3й месяц идут на разогреве перед фестивалем 404, накопилось уже большое количество интересных вопросов и ответов от интересных людей из веба:


Наталья БрызгаловаА сегодня на ваши вопросы отвечает Наталья Брызгалова. Наталья управляет проектами, ведет блог nbry.ru и особое внимание уделяет рейтингам студий. Наталья совместно с Евгением Тесловым работает над проектом zi.интернет-коэффициент. Многие думаю читали публикации Натальи на хабре. Вот к примеру про опрос студи о программах управления проектами, про техническое задание на дизайн и много других публикаций.

Задавайте вопросы на сайте конференции. Наталья ответит в онлайне сегодня (18 августа) после 14:00.

Как сделать из Яндекс.Диск'а безлимитную систему хранения файлов

Время на прочтение4 мин
Количество просмотров12K
Эта статья является заключительной в серии моих постов про Яндекс.Диск и загрузку файлов: обход каптчи, даунлоад части файла с RANGE запросом из удаленного источника и автоматический аплоад на Яндекс.Диск. Все эти посты объединяет одно желание, разобраться, как именно работает система защиты Яндекс.Диск'а и какие у нее недостатки. Я ни в коем случае не хочу сказать, что в Яндексе работают непрофессионалы, наоборот, изучая код, я пришел к обратному выводу. Единственная цель этой статьи, на примере Яндекс.Диск'a показать, как можно из бесплатного файлового хостинга сделать бесплатное хранилище под Ваш проект, просто идея. Ну и конечно, дать некоторую пищу для размышления разработчикам подобных сервисов.

Итак, представляю вашему вниманию пример использования файлового хостинга Яндекс.Диск несовсем по назначению.
Читать дальше →

Haskell и Java — сравнение на реальной задаче (спутники, ICFP Contest)

Время на прочтение6 мин
Количество просмотров2.6K
Сегодня на хабре проходила статья про Nemerle и ICFP 2009. Я хотел бы поделиться собственными изысканиями на эту тему, которые сделал недавно. Моей задачей было написать идеальный компилятор VM из задания, сделать это на Хаскеле, а главное, сравнить скорости результирующего кода на Java и на Haskell. Здесь не приводится полное решение задачи для ICFP, потому что задача эта переборная, и VM в ней — самое внутреннее место, от которого зависит производительность переборного решения, этим она и интересна.

Читать дальше →

Россия присматривается к Qimonda?! Часть вторая

Время на прочтение2 мин
Количество просмотров535
Со времени появления слухов о том, что Россия может вложить деньги в (тогда) дышавшего на ладан немецкого производителя памяти прошло уже почти четыре месяца и я был уверен, что слухи останутся лишь слухами. Более того, менеджеры Qimonda признали провал поисков покупателя и начали распродавать компанию по частям. Не тут-то, оказывается, было!
Читать дальше →

Хроники Пиратской Партии: начало

Время на прочтение5 мин
Количество просмотров687
Главное — нАчать, как говорил первый Президент СССР. Он же последний.

Итак, как оно было? История куется прямо у нас на глазах. Заметьте — не мы первые напали!

24 июня, 2008 Волны возмущений по поводу принятия нового антидемократичного закона буквально сотрясают Швецию. Жители страны готовы на многое, лишь бы принятый в прошлую среду закон не вступил в силу. За день до голосования в парламенте четыре правящие коалиции потребовали внесения поправок в законопроект с целью снять с себя обвинения в недемократичности — в противном случае они обещали проголосовать против вместе с оппозицией.

02.06.2009 “Пиратская партия” претендует на места в Европарламенте. 7 июня состоятся выборы в Европарламент.
Читать дальше →

MT Browser Switcher — для тех, кто пользуется несколькими браузерами

Время на прочтение1 мин
Количество просмотров914
Вот я использую Opera. Но есть некоторые сайты, которые предпочитаю открывать в Mozilla Firefox или Google Chrome. Вот приходит мне в почтовый клиент ссылка на событие в моём google-календаре. Если в неё тыкнуть — откроется браузер по-умолчанию, т.е. Opera. А я на гугл лажу Google Chrome'ом. Поэтому приходится копировать ссылку, запускать Google Chrome руками, вставлять её туда и открывать страницу. Неудобно.

Стал искать что-нибудь, что помогло бы решить проблему. Не нашёл.

В творческом порыве наваял MT Browser Switcher. Эта небольшая программа позволит Вам назначать разным сайтам разные браузеры по-умолчанию. MT Browser Switcher выступает для системы в качестве браузера по-умолчанию. После запроса на открытие какого-либо URL (например, после клика на ссылке в текстовом редакторе или в любимом RSS-ридере) MT Browser Switcher анализирует этот URL и выбирает нужный браузер в соответствии с заданными Вами правилами. Если ни одного правила не подошло под URL, то ссылка просто открывается в браузере по-умолчанию.

Схема работы
image

Кому интересно, подробности тут: http://mito-team.com/ru/projects/mt-browser-switcher

За отзывы, багрепорты или пожелания буду благодарен :)

Одноразовые пароли. Где? Зачем? Как?

Время на прочтение3 мин
Количество просмотров3K
Когда я впервые услышал фразу «одноразовый пароль» я был в недоумении. Как это одноразовый? Кто будет использовать пароли, которые действуют только один раз? это сколько же надо паролей помнить, чтобы после первого же использования его выбросить? Да и вообще кому это нужно, ведь есть же нормальные долгоживущие пароли.

Если Вы так же как и я впадаете в некоторое недоумение при словосочетании «одноразовый пароль», то я постараюсь рассказать что это такое, для чего их можно использовать и как они работают.
Читать дальше →

Технологии привязки покупателей – Разъемы

Время на прочтение4 мин
Количество просмотров882
Речь пойдет о проприетарности. Но не софта, и даже не железа, а всего лишь разъемов. Мне кажется, что эта информация может оказаться кому-нибудь полезной. Во всяком случае, если бы я заранее знал об этих граблях, все было бы проще.

Читать дальше →

Часы с ломающейся стрелкой

Время на прочтение1 мин
Количество просмотров703
Я, как всякий порядочный дизайнер, решил не оставаться в стороне от современных тенденций, и заново придумал часы.
Принцип следующий: минутная стрелка вращается на конце часовой, а секундная — на конце минутной. Такие еще не встречал, и решил накидать часы на флеше.

Часы с ломающейся стрелкой, на флеше

Часы с ломающейся стрелкой

По клику на часы, время ускоряется (для просмотра). Технически такой дизайн реализовать я пока не считаю возможным, разве что при увеличении стрелок до толщины в пол-сантиметра. В таком случае будет возможность расположить механизм внутри стрелок.

За хостинг спасибо drfaustxx.
P.S. Аналоговые часы я никогда не любил :)

Суровые челябинские 1С-разработчики и как же юзать XSLT

Время на прочтение6 мин
Количество просмотров1.8K
Озадачился я вопросом — а что такое «шаблонизаторы» и какой в них смысл?

Полез читать, да все как-то про «сипульки для сипуления в сипулярии». Но за пол-дня в общем и целом начал осозновать, что именно имеют некоторые, говоря об отделении логики от представления и благе шаблонизаторов для больших проектов, где не нужно дергать кодера для того чтобы что-то где-то поправить, мол — «дизайнера это работа».

Вся сложность восприятия этой темы возникает лишь из-за того, что есть настоящие шаблонизатор — например XML -> XLST -> «Привет мир!» и многие другие, по факту являющееся библиотеками расширения языка.

Что я хочу этим сказать? Да то что Smarty к примеру — не шаблонизатор, а лишь библиотека акронимов, позволяющая писать (я не знаю ни PHP ни Smarty, это лишь попытка объяснения на пальцах, не приставайте к коду)
{foreach from=$data item="entry"}
{$entry.Comment|escape}

{/foreach}

Вместо
<?php
//... а здесь мы пишем функцию, которая читает из базы и последовательно вставляет полученное нами в
$output = $output.''.$entry.''
//... и делает это наверное в цикле
?>

Т.е. разделения логики и отображения не происходит — мы просто используем расширение языка. Мы обязаны быть в курсе, какие именно переменные и в каком виде (какого типа) у нас возвращаются из основного кода, после чего в «шаблонизаторе» мы эти переменные используем для отображения.

Сериализации данных не происходит, а лишь сериализация позволяет гарантировать «чистоту» данных от логики источника. Я не говорю о том, что в сериализованных данных не может содержаться какой-то код, я говорю о том, что он перестает быть исполняемым. Адресат данных должен самостоятельно решать, как именно будут восстановлены полученные им данные, в «предложении» же должны содержатся как минимум и подлежащее и сказуемое для возможности самостоятельного восстановления сути сказаного. Содержащиеся данные не «подразумевают» чего-либо еще или не умалчивают о чем-то, они ровно то, что они есть.

Ну например, если принять выражение -«Эта булка стоит 5 рублей!» за сериализованное, то варианты несереализованных выражений будут такими — «Это стоит 5 рублей! (Что?)», «Булка стоит 5 рублей (Какая?)», «Эта булка стоит 5 (Чего?)», «Эта булка — 5 рублей!(Местная валюта-хлеб?)» ну и апофеозом будет «Это стоит денег (???)» и «Смотрите прайс-лист! (wtf?!)».

Smarty позволяет разработчику сказать что-то типа "-Эта булка стоит 5 тышш рублей, потому что мы — пафосный бутик на Тверской!" и следует принимать решение на основе полученных от него данных и находясь в границах его логики. То есть начать соображать "- А, этож Тверская, тут же все дорого, значит надо баблос слюнявить как сказали".

Сериализация позволяет отстранится от логики источника и вполне обосновано предположить "- Дороговато!", соотнеся услышанную стоимость со своим представлением о том, чего должен стоить хлеб, после чего вежливо поинтересовавшись, не отведывали ли тут рыбного супа предложить продавцу отправиться налегке в пешее эротическое путешествие.

Сериализация — это пачка распечатанных фотографий из последней поездки, которые Вы прихватили с собой показать бабушке в деревне. Не-сериализованные данные — когда вместо распечатанных на матовой бумаге фотокарточек 13х15 Вы везете с собой Blu-ray диск, находя очевидным, что уж где-нибудь там найдется ноут с поддержкой Blu-ray.

Отлично, мы прониклись идеей, что «сериализация» есть благо, но при чем тут 1С?

Ну, они похоже этой идеей просветлились, во всяком случае г-н Рыжиков, создавший незабвенную виршу Иллюзии XML/XSLT технологий. Я лично смутно себе представляю, сколько и чего нужно раскурить, чтобы «я сам программист», прочитавший
много книг и учебников, в которых программистов и проектировщиков учили, что лучший способ создать шаблонизатор или абстрагировать внешний вид (представление) от данных — это загнать все в XML, пропустить потом через XSLT и уже на выходе получить HTML.

наложил табу на back-end логику и
Все восприняли это буквально и начали делать подобные продукты. Ну и конечно мы тоже наслушались и уверовали, что наше будущее — это XML/XSLT технологий.
Совершили подвиг, заставив XSLT шаблоны работать достаточно быстро, вложили кучу сил, времени и денег в разработку технологии… Самые большие каталоги товаров вмещали по 70 тысяч товаров.

сделал вывод, что:
Как не стараются РАЗРАБОТЧИКИ, производительность XML/XSLT систем остается очень низкой, несмотря на все усилия индустрии. Да и как выжать эту производительность? Сначала данные из SQL базы преобразуются в XML (а это текстовый файл большого размера в силу своей структуры). Потом XML данные загружаются в XML парсер уже в серверной части, где они занимают еще больше памяти для работы XPATH, формирования индексов по XML данным в момент загрузки и т.п. Далее XSLT проходит по огромному массиву данных, получая на выходе опять же текст, который занимает память.

При этом искренне не понимал о чем идет речь, когда ему задавали вопрос — «Откуда берутся огромные объемы данных, если контента на страницу бывает кило 100 максимум???».

Действительно, как же не взяться огромным объемам, если обрабатывать xml-дамп базы XSL-шаблоном?

Безумству храбрых поем мы песню!

Не менее весело читать «независимых разработчиков», которые согласны с мэтром — «XSLT — тормоза и отстой!».

Нет, ну вообразите себе — это ровно (в смысле абсолютно эквивалентно) как наткнутся в ЖЖ на топик
-Сегодня взялся за голые провода, стоя в мокрой ванне. Нехило меня током долбануло, 3 часа в себя приходил!

с толпой комментов:
— И я сегодня взялся за провода! И меня долбануло!

-+1, ванны отстой! Резиновые коврики рулят!

— Резина — отстой, лучше пластик!

— Сам ты отстой, и пластик твой — фуфел!

— Ответил за базар, что пластик — фуфел?

— Ха, да у меня друг — директор шинного завода, они там только резину и юзают, а не какой-то говнопластик. Не надо же тебе объяснять, как это круто — делать шины! Это не какой-то там свечной заводик в Урюпинске, это же production!

— А меня так каждый раз током долбит, когда я за провода берусь, достало!

— Да ты лошара, вот меня один раз долбануло в ванне от проводов, так я нахрен их вырубил в щитке в подвале! Чтоб ни меня, не мою семью, ни соседей не било! Надо же и об окружающих думать!

Клиника, одним словом :)

Пожалуйста, не делайте так!

Шаблон должен делать ровно то, что он делает — взять с полки и укомплектовать товар аксессуарами, в зависимости от того — OEM это или Retail. Если Retail — то и диск положи, и шлейфы и мануалы на всех языках, и брелок. А если OEM — чихни в пакет для комплекта к самой железяке. При этом комплектовщик работает с конкретной железкой и каким-то конечным объемом аксессуаров, подходящих к этому устройству. Он не пытается запихнуть в коробку с видеокартой блок питания, потому что у нее есть дополнительный разъем — блок питания не входит в комплект по его ТИ, или вместо видюхи положить бутылку коньяка, метнувшись за ним в магазин, потому что это для «самого». И уж тем более ему не говорят — «Вот видюха, вот склад комплектов — выбери чего-нить и сунь туда, ты же головастый малый!»

Разделение логики означает ее, логики, разделение — не более и не менее!
(если Вас передернуло от такой формулировки — просто проигнорируйте, а если какая-то смутная догадка мелькнула в мозгу — перечитывайте до просветления)

У вас все еще есть база SQL с хреновой тучей записей (как и положено приличной SQL-базе); back-end который ходит в базу и получает от нее полтора десятка записей (в соответствии с запросом пользователя и логикой постраничного отображения, предписывающего отображать 15 записей, причем в названии не должно быть слова «Жопа» если в графе «Возраст» у юзера стоит «до 18») на выходе заворачивающий результаты своей работы в XML; front-end получающий коротенький XML и накладывающий на него свою таблицу стилей ака XLST в результате чего получается новый XML-файл, в котором первоначальный узел <bullshit>Костюм и галстук — $5000</bullshit> меняется на <Haute couture>Костюм и галстук — $5000</Haute couture>.

А где же HTML? Да здесь он, родимый, просто в другом шаблоне — toHTML, для узла <bullshit> задано другое правило, трансформирующего его в <span class=«amazing» >, которое отдается клиенту тем же front-end-ом, если пользователь не умеет читать XML. Да, суть front-end-а именно в том, чтобы говорить с клиентом на одном языке, при этом ему пофигу о чем ведется речь — про шмотки или бухло. Он и о том и о том может, если суфлер-back-end подскажет, что вставлять после «Это очень крутая штука, наша»…

Короче, если Вы смогли это дочитать и все еще пытаетесь реализовать back-end как XLST-преобразование XML-дампа базы данных — прямая дорога вам в 1С, делать «Битрикс-ы» под руководством г-на Рыжикова. Или нет, не возьмут Вас за слова XML и XSLT, они же уже «накололись» на этом и больше так не «лохонутся». Ну, тогда перечитайте еще разок этот опус или попробуйте написать гневный отклик на него, думая над каждой своей фразой.

UP. Disclaimer — сложность текста, его сумбурность, оторванность примеров от предмета и тэдэ — результат крайне поверхностных знаний автора в обсуждаемом предмете. На данный момент вся моя профессиональная подготовка по XLST состоит в прочтении первого предложения XLST — стандарта, гласящего:
This specification defines the syntax and semantics of XSLT, which is a language for transforming XML documents into other XML documents.

Еще вопросы?

Ближайшие события

Общие советы по составлению оптимальных регулярных выражений

Время на прочтение3 мин
Количество просмотров2.5K
Регулярные выражения — неотъемлемая часть любого инструмента обработки данных.
Логично, что в различных вариациях поддерживается различный синтаксис и различный функционал.
Не смотря на это принципы работы самих регулярных выражений, машины регулярных выражений и базовые установки оптимизации практически едины.
Где-то на просторах сети видел совершенно глупое заявление, что “регулярные выражения не приспособлены для решения нерегулярных данных” или нечто похожее. Полнейшая ерунда.
Читать дальше →

Новая уязвимость в ядре Linux

Время на прочтение1 мин
Количество просмотров577
В ядре Linux была найдена новая критическая уязвимость, которая позволяет локальному злоумышленнику выполнить вредоносные действия с повышенными привилегиями на целевой системе. По словам Жюльен Тинне и Тависа Орманди (авторы первого эксплойта), подверженными являются все версии ядер 2.4 и 2.6, выпущенные с мая 2001 года. Разработчики Linux уже выпустили критическое обновление.

Подробнее:
www.xakep.ru/post/49195/default.asp
blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html

Сплойты:
milw0rm.com/exploits/9435
milw0rm.com/exploits/9436

Как создать свое первое приложение для iPhone

Время на прочтение11 мин
Количество просмотров4.4K
Что если бы вам давали по рублю каждый раз, когда вы слышите выражение «У меня отличная идея для нового приложения”. Сейчас все говорят об одном и том же. iPhone создало беспрецедентное нововведение для людей как в обществе программистов так и вне. И для тех, кто находится вне среды разработки, этот процесс остается загадкой.

Это руководство предназначено для ознакомления вас с процессом разработки приложений для iPhone, от идеи до реализации и выхода на рынок. Этот топик представляет разные идеи, методы, советы и ресурсы, которые понадобятся, если вы собираетесь создать свое первое приложение для iPhone.

1. Есть хорошая идея?


Как же узнать – хорошая ли у вас идея или нет? Первый шаг: насколько цельна идея. Шаг второй: ответьте на вопрос – имеет ли она хоть один показатель успеха?

image

Решает ли ваше приложение уникальную проблему? До того как лампочка была изобретена, кто то должен был крикнуть «Эй, омерзительно трудно читать под светом свечи!”. Разберитесь что делать сейчас «омерзительно” трудно и как ваше приложение может сделать более комфортным жизнь тех людей, которые его будут использовать.

Dog Tricks

Предназначено ли ваше приложение для какой нибудь специфической ниши? Несмотря на то, что для поиска AppStore нет никакой статистики, масштаб использования приложений растет вместе с расширением приложений в AppStore. Найдите нишу со страстными поклонниками (любители домашних животных, например) и создайте приложение, которое будет интересно специфической категории людей.

Do Not Press

Заставляет ли людей хохотать? Это не поддается прогнозам. Если вы можете придумать что нибудь смешное, вы несомненно на верном пути и ваша идея может стать золотой. Вчера я нажимал красную кнопки «не нажимать” в течении 5-и минут.

Wine PhD

Не создаете ли вы колесо получше? Есть ли успешные существующие приложения, которые не нуждаются в значительных изменениях? Не надо довольствоваться только списком вин, предоставьте возможность виноделам пообщаться со своими поклонниками.

Popper

Будет ли приложение интерактивным? Давайте посмотрим правде в глаза, многим из нас нравятся именно такие приложения. Удачные игры и приложения привлекают пользователей именно требованием действий!



Задание: Подумайте, можно ли включить ваше приложение в один из вышеизложенных категорий? Если да, то самое время подготовить необходимые инструменты.

Читать дальше →

Послать SMS инопланетянам можно до 24 августа

Время на прочтение1 мин
Количество просмотров613
Австралийский веб-сайт предоставляет возможность выслать текстовое сообщение в космическое путешествие. До 24 августа те, кто горит желанием бросить собственный информационный след в бескрайних просторах Вселенной, могут посетить страничку www.HelloFromEarth.net и составить сообщение длиной до 160 знаков, которое будет отправлено к Gliese 581d – наиблежайшей схожей Земле планете вне Солнечной системы. Ожидаемое время доставки составляет 20 лет. Гарантий ответа, очевидно, никто не дает.
Читать дальше →

Пятничная подборка лучших игровых видео этой недели с русскими субтитрами

Время на прочтение1 мин
Количество просмотров492
Хочу поделится с хабрасообществом пятничной подборкой лучших игровых видео этой недели. Сегодня в подборке: Rage, Halo 3 ODST, и еще 20 минут геймплея Brutal Legend.

id Software запустили новый трейлер Rage — многообещающего проекта, где в равных пропорциях смешаны атмосфера Fallout и «Безумного Макса», геймплей старого-доброго Quake и недавнего FUEL. Как обычно, на первом месте графика, с остальным — как получится.

Смотреть остальное

3й открытый тест неофициального Fallout Online начнется 15 августа 2009 года

Время на прочтение2 мин
Количество просмотров883

Вот и подошло время к проведению 3 открытого бета теста неофициального Fallout онлайн!
Неужели дождались?

Вклад авторов