• Проект популяризации науки 15x4 проводит открытые лекции и масштабируется в новые города

      Прошлым летом, когда появилось движение 15x4, едва ли кто-то мог подумать, что проект настолько вырастет так быстро. Всё началось с нескольких человек, безумно увлечённых наукой, которым нравилось пересказывать друг другу Википедию. А потом в Харькове открылся первый лекторий. Немного позже — второй, в Киеве. Со временем в разных городах проводилось всё больше мероприятий, а на YouTube-канале 15x4 появлялись новые и новые записи лекций.

      На картинке 176 разноцветных квадратиков с пиктограммами лекций. Посередине 15x4 Share Your Knowledge.

      Сейчас 15x4 это сообщество популяризаторов науки, участники которого хотят, чтобы люди выступали и делились знаниями. Мероприятия уже проводятся в Москве, Киеве, Харькове, во Львове, в Кишинёве и Черновцах.

      15x4 — категорически не коммерческое объединение учёных и фанатов науки. Деятельность проекта никак не монетизируется, а вход на все мероприятия во всех городах был и остаётся свободным.

      На сегодня прочитано около 150 лекций и проведено около 50 мероприятий. Темы лекций очень разнообразны. Лекторы часто читают о физике и биологии, также были лекции о технологиях, медицине, психологии, лингвистике и, естественно, космосе. В том числе сейчас на сайте вы найдёте лекции про Большой адронный коллайдер, глютен, вакцинацию, гомеопатию, CRISPR, 3D-печать, квантовые компьютеры и редактуру текста.
      Читать дальше →
    • Используем ноутбук как Bluetooth-клавиатуру (или мышь)

        Только что пришла мне в голову мысль — можно ли подключить ноутбук по Bluetooth к телефону/планшету/etc, чтобы можно было печатать текст на компьютере, а передавались нажатия клавиш на мобильное устройство.

        Оказывается, это уже реализовано в виде готовой программы, которую получилось достаточно быстро нагуглить по запросу linux emulate bluetooth mouse.

        Называется она hidclient. Работает на Linux-компьютерах с Bluetooth.

        Теоретически, передавать таким образом события с клавиатуры или мышки можно на любое устройство, которое поддерживает подключение HID-устройств по Bluetooth. На практике я попробовал это с iPod — прекрасно работает.
        Настройка
        • +12
        • 12,4k
        • 9
      • Какие эксперименты Facebook ставит над своими пользователями

          17 июня в журнале Proceedings of the National Academy of Sciences была опубликована статья под названием «Экспериментальное доказательство заражения масс эмоциями через социальные сети».

          Суть исследования заключается в выборочном удалении записей из новостной ленты пользователей Facebook. Для эксперимента были отобраны 689 тысяч человек, у половины из которых в новостной ленте скрывались негативно окрашенные сообщения, а у другой половины, наоборот, позитивные.

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

          Отмечается, что эксперимент не затрагивал отображение стены на страницах друзей или личные сообщения.

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

            Логотип1 мая на форуме BitcoinTalk появилась ветка, в которой один из пользователей форума анонсировал несколько необычный форк Bitcoin. Основное отличие этой криптовалюты заключается в том, что майнят её не компьютеры, а люди. Для того, чтобы получить MOTO (единицы криптовалюты Motocoin), вам понадобится лишь средний компьютер (на данный момент требуется поддержка OpenGL версии три, но в будущем, скорее всего, игра будет работать и со второй версией) и некоторые навыки прохождения компьютерных игр.

            Для получения вознаграждения нужно пройти уровень, сгенерированный псевдо-случайным образом на основе транзакций в очередном блоке. Как только кто-то проходит уровень, генерируется следующий блок.

            Игра, в которую нужно играть для майнинга MOTO, очень похожа на ЭластоманиюX-Moto) — отсюда и такое название криптовалюты.

            Такой необычный подход к майнингу сначала удивил многих участников Bitcoin-сообщества (некоторые даже решили, что это шутка), но позже, когда стало понятно, что всё вполне серьёзно, эксперимент пришёлся сообществу по вкусу. А отчего бы и нет — ведь не так уж много таких криптовалют, которые (в теории) можно годами майнить даже на среднем ноутбуке. И, что ещё важнее, тут нужно время человека, а не компьютера, а оно гораздо ценнее.
            Читать дальше →
          • Платформа для общественного финансирования разработки свободного ПО Bountysource теперь работает и с Bitcoin

              Bountysource, набирающая популярность платформа для общественного финансирования разработки свободного ПО, теперь позволяет производить взаиморасчёты не только в долларах, но и в криптовалюте Bitcoin.

              Работает Bountysource следующим образом:

              • Если вам нужно, чтобы в том или ином программном продукте появилась какая-либо фича, либо был исправлен какой-либо дефект, вы можете объявить сбор средств для разработчика, который за это возьмётся. Возможно, помимо вас на это пожертвуют деньги и другие люди, и кто-либо из разработчиков, таким образом, возьмётся за дело быстрее, так как это будет выгодно.
              • Если вы хотите заработать денег, вы можете сами взяться за реализацию фич и исправление багов. Конечно же, результат вашей работы станет доступен не только для тех, кто её профинансировал, но и для всего opensource-сообщества. Двойная выгода: вы одновременно расширяете своё общедоступное портфолио (при приёме на работу большое количество качественного открытого исходного кода вашего авторства может очень хорошо сыграть в вашу пользу) и получаете за это деньги.

              Я думаю, что Bountysource и другие аналогичные платформы в будущем позволят вывести свободное ПО на качественно новый уровень. На самом деле, эта модель может быть настолько эффективна, что в какой-то момент надобность в покупке проприетарного ПО для большинства людей и вовсе исчезнет: потому что профессиональным разработчиком будет настолько выгодно заниматься OS-проектами, что это просто станет их основной деятельностью, вместо работы над проприетарными проектами.
              Поучаствовать в опросе
            • Восстановление данных в MySQL из снимка EBS

              • Tutorial
              Это короткое руководство, возможно, поможет кому-то, кто использует AWS (и, в частности, MySQL на инстансе EC2), восстановить данные в MySQL из снимка EBS (регулярное создание которых любой предусмотрительный системный администратор, конечно же, настраивает заблаговременно — с помощью ec2‑consistent‑snapshot, например)

              Прежде всего нужно открыть EC2 Management Console, и в разделе ELASTIC BLOCK STORE → Snapshots найти подходящий снимок (обычно это последний снимок раздела).

              Далее нужно щёлкнуть на снимке правой кнопкой мышки и выбрать «Create Volume». В Availability Zone при этом нужно выбрать тот же регион, в котором находится инстанс EC2.

              После этого нужно перейти в раздел ELASTIC BLOCK STORE → Volumes и, опять же, щёлкнуть правой кнопкой мышки на появившийся раздел. В меню нужно выбрать пункт «Attach Volume», после чего в появившемся модальном окне выбрать инстанс EC2 и нажать «Yes, Attach».

              Всё — на сервере должно появиться новое блочное устройство. Теперь можно запустить dmesg | tail и посмотреть, какой идентификатор был присвоен для подключённого блочного устройства. Допустим, это xvdg. Тогда ФС может располагаться, например, на /dev/xvdg1 (зависит от предпочтений того, кто создавал таблицу разделов).
              Непосредственно восстановление
              • +14
              • 3,6k
              • 3
            • bcat: просмотр вывода консольных программ в браузере

              • Tutorial
              С удивлением обнаружил, что никто на Хабрахабре не писал про bcat. Это маленькая удобная утилита для просмотра вывода консольных программ в браузере. У вас есть скрипт, возвращающий HTML? Bcat! Нужен простой предпросмотр для README-файла с Markdown-форматированием, который вы только что дописали? Bcat! Пишете парсер веб-сайта, и хотите посмотреть, что за ошибку возвращает сайт? Bcat! Есть большой лог, и вы хотите, чтобы он отобразился чёрным по белому, и его было удобно читать? Ну, вы поняли, да? :)

              Программа работает на Linux, Mac OS X и FreeBSD (и, теоретически, на любой UNIX-подобной платформе с интеграцией freedesktop.org).

              Для установки bcat можно воспользоваться gem:

              gem install bcat
              

              Вместе с bcat устанавливается rack (если, конечно, он не был уже установлен до этого).

              Для проверки можно попробовать открыть календарь на 2014 год:

              python -c "import calendar ; print calendar.HTMLCalendar().formatyear(2014)" | bcat
              

              Если в браузере открылась новая вкладка, и в ней отобразился календарь — значит, всё работает правильно.
              Примеры
            • 2ndb — тетрадка для записей, которая изучает, а затем улучшает того, кто в ней пишет

                У вас есть такие друзья, которые всё время что-то записывают в тетрадку или в файлик в Google Docs? Вы спрашивали у них о том, зачем они это делают, и что именно они туда пишут? Если нет, то отвечу за них (не за всех, но за многих):

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

                Но задумайтесь: если информации настолько много, и она настолько подробна, то ведь наверняка из этих данных можно что-то получить? Используя их, можно вычислить что-то ещё. Найти тенденции, закономерности. И тогда это уже будет не просто тетрадка, а действительно ценный и незаменимый инструмент, который не только позволяет хранить информацию, но и может давать советы. Он мог бы рекомендовать человеку скорректировать что-то в своей жизни таким образом, который, согласно результатам статистического вычисления, с наибольшей вероятностью даст желаемый результат.

                Именно такую систему я бы и хотел описать более подробно: программный продукт, способный собирать информацию (на начальных этапах это в основном те данные, которые пользователь предоставляет самостоятельно, регулярно занося их в систему) и, анализируя её, находить в ней различные тенденции, связывать разнообразные аспекты человеческой жизни по каким-либо общим параметрам (например, обнаруживая хронологическую связь) и информировать пользователя в том случае, если у системы есть для него какие-либо рекомендации, советы или предостережения.
                Читать дальше →
              • Пять вещей, которые нужно учесть, продумывая архитектуру интернет‑магазина

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

                  Однако часто ситуацию можно значительно улучшить, если ещё до начала разработки попытаться угадать возможные желания клиента, и сразу объяснить ему, что решение нужно принять прежде, чем начинать работу, поскольку в ином случае (если он в дальнейшем передумает), придётся многое переделать, и это займёт много времени.

                  Давайте рассмотрим, что стоит сразу же учесть при обсуждении проекта интернет-магазина.
                  Читать дальше →
                • Простым языком об HTTP

                    Вашему вниманию предлагается описание основных аспектов протокола HTTP — сетевого протокола, с начала 90-х и по сей день позволяющего вашему браузеру загружать веб-страницы. Данная статья написана для тех, кто только начинает работать с компьютерными сетями и заниматься разработкой сетевых приложений, и кому пока что сложно самостоятельно читать официальные спецификации.

                    HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).

                    Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией OSI, HTTP является протоколом прикладного (верхнего, 7-го) уровня. Актуальная на данный момент версия протокола, HTTP 1.1, описана в спецификации RFC 2616.

                    Протокол HTTP предполагает использование клиент-серверной структуры передачи данных. Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное программное обеспечение обрабатывает данный запрос, формирует ответ и передаёт его обратно клиенту. После этого клиентское приложение может продолжить отправлять другие запросы, которые будут обработаны аналогичным образом.

                    Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.
                    Читать дальше →
                  • Автоматизируем щелчки мышкой в Linux: xdotool

                    • Tutorial
                    Эта очень короткая заметка на примере активации ключей в Steam описывает процесс автоматизации операций, выполняемых при помощи мыши и клавиатуры.

                    Допустим, вы купили несколько наборов игр Humble Bundle. Теперь у вас есть, например, 5 ключей для активации в Steam. А может быть 15 или даже 25. Вы очень не хотите активировать их вручную, потому что это слишком муторно: в клиенте Steam нужно каждый раз наводить курсор на меню «Games», щёлкать, потом наводить курсор на пункт меню «Activate a Product on Steam…», опять щёлкать, потом нажимать Enter, потом ещё раз Enter, и только затем наконец-то вводить ключ (а потом нужно подождать, ещё раз нажать Enter, затем Escape). А потом повторять то же самое для каждого последующего ключа. Как писал Леонид Каганов, стоило ли вообще ради такого «прогресса» спускаться с пальмы и брать в руки каменный топор?

                    В общем, вы решили этот процесс автоматизировать — тем более, что задача-то, на самом деле, очень простая. Для её решения нам потребуются консольные утилиты xdotool и xclip — убедитесь, что они установлены у вас в системе.
                    Читать дальше →
                  • Петиция президенту Бразилии о предоставлении убежища для Эдварда Сноудена

                      Кто такой Эдвард Сноуден, думаю, знают даже детишки в вашем дворе, а сами вы наверняка способны вкратце пересказать его биографию. И это, надо сказать, выставляет вас в очень хорошем свете — Сноуден один из самых важных из ныне живущих людей, с кем мало кто может сравниться по степени вклада в раскрытие важнейшей информации о нашей с вами безопасности.
                      Читать дальше →
                    • Всемирная база паролей к сетям Wi-Fi на вашем мобильнике

                        Те из нас, кто много путешествует, наверняка не раз оказывались вот в такой ситуации: в городе, в который вы приехали, много беспроводных сетей, но все они с паролями (которых вы не знаете). Местной SIM-карты у вас нет, а интернет в роуминге у вас стоит как двигатель самолёта, на котором вы прилетели.

                        А вот здорово бы было, если бы хотя бы некоторые из этих паролей были бы вам известны. Давайте рассмотрим, как именно подобная система могла бы работать.
                        Читать дальше →
                      • Безграмотная мотивация — хуже отсутствия какой-либо мотивации

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

                          На самом деле в некоторых случаях это будет ошибкой. Один из довольно ярких примеров — мотивация персонала. Именно в разговорах о мотивации многие руководители проявляют вопиющую биологическую безграмотность.
                          Читать дальше →
                        • Вход на сайт с помощью авторизационного файла

                            ИллюстрацияРанее я уже рассказывал о том, как можно добавить авторизационные QR-коды, чтобы пользователи, которые уже вошли на сайт на компьютере, могли сразу же также авторизоваться на мобильных устройствах (например, на планшете или мобильном телефоне), и при этом не вводить ни адрес сайта, ни логин, ни пароль. Справа изображён ещё один вариант авторизации — с помощью файла.

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

                            Исходный код (Python/Django) простого варианта реализации можно посмотреть здесь. В каждом авторизационном файле хранится некоторая сгенерированная случайным образом строка символов, для которой в базе данных на сервере есть хэш, привязанный к определённому идентификатору пользователя. Таким образом, время, необходимое на вход, минимально: после того, как пользователь перетаскивает авторизационный файл на страницу, JS проверяет размер файла, вставляет содержимое в специальное текстовое поле и тут же отправляет форму — никаких дополнительных действий для входа не требуется, даже кнопку «Войти» нажимать не нужно.
                            Читать дальше →
                          • Парное программирование как сервис

                              Что, если можно бы было в тот момент, когда сталкиваешься с какой-то сложной задачей, которую уже достаточно долго не можешь решить самостоятельно (хоть и посмотрел всё, что можно было найти в Гугле на этот счёт), зайти на специальный сайт и попросить кого-нибудь посмотреть и помочь?

                              Речь идёт про теоретическую возможность сделать сайт для поиска напарников для па́рного программирования.

                              Бэндэр и Фрай

                              Когда кому-то нужна помощь, он заходит на сайт, нажимает на кнопку «Нужна помощь» и описывает суть проблемы.

                              Например:

                              Всем привет, меня зовут Антон, мне 12. Дело такое: друг написал сайт, но у него по-дурацки реализована защита от накрутки в форме голосования. Хочу продемонстрировать ему проблему в действии, но я никак не могу понять, как в Python правильно использовать CookieJar с urllib2 — серьёзно, какое-то запутанное API. Так в остальном у меня почти всё готово, осталось как раз вот поддержку cookies прикрутить. Буду рад, если поможете!

                              Время на реализацию (приблизительно): 30 минут
                              Время для связи: любой день недели, с 3 p.m. до 12 a.m.

                              python, cj, cookiejar, urllib2
                              Читать дальше →
                            • Пользуетесь ли вы кнопкой «стоп» в музыкальном проигрывателе?

                                В последние несколько лет появилась тенденция убирать кнопку «стоп» из интерфейса музыкальных проигрывателей. Например, такой кнопки нет в Ubuntu (Rhythmbox), в Mac OS X (iTunes), в Android, в iOS.

                                Так, в случае с Rhythmbox, если у вас нет кнопки «стоп» на мультимедийной клавиатуре (в этом случае «стоп» всё-таки работает — хотя в интерфейсе нет ни кнопки, ни пункта в меню), чтобы добиться эффекта, который был бы от кнопки «стоп», нужно поставить музыку «на паузу», и затем закрыть Rhythmbox. Либо выбрать последнюю композицию и промотать её до конца.

                                Иначе при нажатии на «плэй» воспроизведение начнётся с того же места (что вполне логично для кнопки «пауза»), что далеко не всегда уместно (особенно для музыки). Либо придётся вместо «плэй» нажимать на кнопку для воспроизведения предыдущей композиции (для того, чтобы начать воспроизведение текущей композиции сначала).

                                Лично вам нравится такое решение? Вы согласны с тем, что кнопка «стоп» — лишняя? Или всё-таки не стоило её везде убирать?
                              • Django: Использование QR-кодов для быстрого входа на сайт с мобильных устройств

                                • Tutorial
                                Если у вас есть сайт, которым часто пользуются с мобильных устройств (таких как телефоны и планшетные ПК), то вы, возможно, задавались вопросом, как реализовать быстрый вход — так, чтобы пользователю не требовалось вводить ни адрес сайта, ни логин и пароль (либо E-mail и пароль).

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

                                Скриншот с экрана мобильного телефона

                                Кстати, весь процесс написания приложения, которое приводится далее, можно посмотреть в скринкасте (есть на YouTube, либо в более хорошем качестве в виде файла MPEG2 в 1080p).
                                Читать дальше →
                              • Песни об IT

                                  Дорогие хабраюзеры! Хочу поздравить вас с Днём гордости гиков!

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

                                  И, поскольку у нас есть такой хороший повод, то давайте вспомним некоторые песни, которые напрямую относятся к жизни IT-гиков. Если вы вспомните ещё какие-то интересные песни, добавляйте их в комментарии.
                                  Читать дальше →
                                • Двухдневный бесплатный доступ к курсам Code School

                                    Code School — это проект от Envy Labs, в рамках которого реализовано уже около 30 онлайн-курсов по различным технологиям и языкам программирования.

                                    Rails for Zombies
                                    Процесс обучения сводится к просмотру видеороликов и повторению изученного, при этом все упражнения выполняются непосредственно в браузере. Обучение достаточно сильно геймифицировано: для перехода к следующему уровню нужно обязательно выполнить упражнения из предыдущего, причём за выполнение упражнений начисляются очки, а на вашу публичную страницу добавляются значки (badges).
                                    Читать дальше →