• Бесплатные курсы, книги и прочие материалы по разработке



      У кого сейчас есть время на получение второго академического образования? Хм. Все больше компаний и команд обращают внимание не на формальные «корочки», а на реальные способности и достижения конкретного человека. Речь, конечно о хороших компаниях с современным взглядом на реальность и продвинутым руководством.

      Необязательно проходить всю программу университета, чтобы научиться программировать. Онлайн-курсы, конечно, требуют самоконтроля, усердия и ответственности. Но, если есть цель и стремление, то все приложится. В компании таких же «вольных» слушателей по сети вы наверняка сможете пройти курс успешно.
      Читать дальше →
    • Черный ящик для дома: собираем NAS своими руками, часть 1

      • Tutorial
      Будь я работником макаронной фабрики, то сейчас ломал бы голову над тем, куда девать этак 500 упаковок макарон по полкило штука. К счастью, когда начальство решает премировать сисадмина “натурой”, получение в подарок фургона сухого пайка не грозит, хотя имеются неплохие шансы стать обладателем нескольких десятков килограмм откровенного лома. Однако в этот раз мне повезло – в качестве корпоративного подарка я получил пару новеньких WD Re 2004FBYZ на 2 терабайта каждый, и блок питания Thermaltake Smart DPS G 750W. Вот только что делать с дисками? Ставить в домашний комп – слишком расточительно даже для меня, все-таки Enterprise Class, да и нужды особой нет. Куда практичнее на их основе собрать NAS. Разумеется, не какую-нибудь файлопомойку, а высоконадежное хранилище – эдакий “черный ящик” для критически важных данных. Плюс к этому, можно совместить приятное с полезным – раз уж принято решение целиком перевести инфраструктуру на “умные” БП (а именно так Thermaltake позиционирует линейку Smart DPS), неплохо бы воочию увидеть, как это работает.

      Но есть одна загвоздка – на данный момент фирменное приложение существует только под Windows. Для корпоративного ЦОДа эта операционная система хороша, но для домашнего файлового хранилища ужасна и крайне нерентабельна. Посему, я решил сделать два поста. В этом мы поднимем NAS на основе Windows Server 2008 r2 (убедившись, что “окошки” и “домашний NAS” – понятия несовместимые), и посмотрим, на что способна DPS G App 2.0. Во втором же соберем бюджетный NAS на основе NAS4Free, создав по-настоящему надежную систему.
      Читать дальше →
    • По-настоящему адаптивные письма. Часть… снова первая



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

        К чему мы приходим:
        — Использование внешних стилей и последующий прогон кода через инлайнер. Из-за усложнения кода это стало целесообразным
        — Улучшение семантики через именование классов и сокращение участков кода
        — Частичная поддержка the Bat! Хотя Николь на него забила.
        — Полная поддержка всех мобильных почтовых клиентов
        — Использование ранее опасных конструкций. Благодаря усердному тестированию проблемы решены.
        Читать дальше →
      • Уязвимость «ВКонтакте» позволяла получить прямые ссылки на приватные фотографии



        tl;dr
        Была обнаружена уязвимость в закладках ВК, которая позволяла получать прямые ссылки на приватные фотографии из личных сообщений, альбомов любого пользователя/группы. Был написан скрипт, который перебирал фотографии пользователя за определенный период и затем, через эту уязвимость получал прямые ссылки на изображения. Если коротко, то: можно было за 1 минуту получить все ваши вчерашние фотографии, за 7 минут — все фото, загруженные на прошлой неделе, за 20 минут — прошлый месяц, за 2 часа — прошлый год. Уязвимость на данный момент исправлена. Администрация ВКонтакте выплатила вознаграждение в 10к голосов.

        История началась с того, как мне в личку во «Вконтакте» кинули изображение. Обычно, если вещь важная, я её загружаю в облако, но в моём случае в этом не было необходимости, и я решил воспользоваться функцией закладок «Вконтакте».
        Читать дальше →
      • Black Swift: зачем мы его сделали

          Как уважаемые хабровчане знают, вот уже почти год мы разрабатываем маленький компьютер (примерно с SD-карточку), работающий под OpenWRT, со встроенным Wi-Fi, USB, Ethernet, азартными играми и доступными женщинами. Дмитрий dzhe уже несколько раз писал про него — и, в общем, с каждым разом собирал в комментариях один и тот же вопрос: а зачем вы вообще его делаете? Ну ведь есть же Raspberry Pi, стоит он столько же, есть VoCore, Carambola, Edison, в конце концов, — зачем нужен ещё один «нанокомпьютер»?

          Пожалуй, надо наконец на этот вопрос ответить — заодно отметив этим ответом появление у нас своего корпоративного блога (спасибо, Хабр!), а также запуск отдельного веб-сайта, посвященного только этому проекту.



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

          Читать дальше →
        • Региональное Интернет-СМИ: Часть 2. К чему надо быть готовым

            Продолжаю писать про особенности создания и работы регионального СМИ. Я решил, что нужно прояснить еще некоторые вопросы перед тем, как перейти к сути работы СМИ, поэтому вторая часть называется «К чему надо быть готовым».
            Что же вас ждет?
          • Источники доходов интернет-медиа. Часть I

              Мэтью Соларс (Matthew Sollars) опубликовал первую порцию списка источников дохода, которые может использовать интернет-медиа. Список составлен по результатам обзора существующих практик СМИ в США и Европе. Упор сделан на инновационные подходы, поэтому в список не включён основной источник – баннерная реклама. Я публикую этот список специально для тех скептиков, которые активно отмахивались и ёрничали в комментариях под моими заметками и переводами о бизнес-моделях для интернет-СМИ, опубликованными ранее. Разумеется, в России реалии иные, тем не менее чужой опыт может оказаться полезным.
              UPD Вторую часть статьи «Источники доходов интернет-медиа» можно прочитать здесь.
              Читать дальше →
            • Читаем подзамочные записи Livejournal.com в Google Reader

                До появления Google Reader я активно читал френд-ленту в Livejournal.com. А потом появился habr. А потом куча интересных standalone блогов.
                Постепенно greader стал основным инструментом чтения новостей. А с открытием Yahoo Pipes качество моих лент значительно возросло.
                Pipes позволили отфильтровать несколько лент только по интересующим меня топикам, позволили заполнить поле description в тех лентах, где авторы по каким-то причинам не стали их заполнять (новости с сайта IRN.ru, лента Компьютерры), и многое другое.

                Но была в бочке меда и ложка дегтя. Ни Pipes, ни Google Reader не умеют делать digest authentication. Pipes умеют только basic, greader не умеет и того. А digest — единственный тип аутентификации, который поддерживает Livejournal.com.
                Поэтому попытки залогиниться в ЖЖ и читать ленты с подзамочными записями были обречены на неудачу.
                Приходилось периодически заходить в ленту и просматривать, не написал ли кто-нибудь из друзей что-нибудь «под замком».

                Да, в интернете есть сервисы а-ля
                http://freemyfeed.com,

                решающие эту задачу, но доверите ли вы кому попало в интернете логин и пароль от своего ЖЖ? Да и как интегрировать с pipes этот сервис мне придумать не удалось. Но нет худа без добра: автор раскрыл исходники скриптов. Вооружившись терпением и мануалом по php, на основе исходных текстов freemyfeed я написал собственный скрипт — remove-authentication.php, который делает одну простую вещь: заменяет digest authentication на basic.
                C ним становятся возможными конструкции:
                http://user:pass@my.server/remove-authentication.php?feed=feed-url

                И эта штука замечательно интегрируется с pipes.
                Кому надо, забирайте. И читайте ЖЖ в Google Reader. )
                UPD: код надо сохранить как remove-authentication.php и выложить на любой сервер, поддерживающий php :) В идеале — свой.
                UPD2: перенес в блог RSS
                Читать дальше →
              • Про создание платформера на Unity. Часть третья, долгожданная

                • Tutorial
                Привет, Хабр!

                Холодная питерская осень штабелями укладывает людей в кровать с температурой и прочими прелестями той части вселенной, которая отвечает за болезни. Но всему плохому, к счастью, приходит конец. Поэтому, как вы поняли из вступления, сегодня в нашем курсе от начинающего для начинающих мы поговорим о создании врагов, уровней и физики. Больше физики!



                Осторожно: объемы гифок под катом становятся просто нечеловеческими!
                Читать дальше →