Search
Write a publication
Pull to refresh
0
@GenGoread⁠-⁠only

User

Send message

Сервис анонимной аренды хостинга с i2p-доступом

Reading time4 min
Views20K
(внимание: сервиса нет, есть только идея)

Во время публикации информации в обход цензуры, возникает проблема: как опубликовать информацию без раскрытия своей личности и данных, ведущих к раскрытию личности? IP адрес можно считать достаточной информацией для выяснения личности обратившегося к серверу. С учётом, что все хостеры обычно вполне кооперируются с тоталитарными правительствами, процесс установления владельца/автора того или иного сайта не представляет проблем. Наивные обещания компаний «не раскрывать данные клиентов» требуют очень высокого доверия, кроме того, не всегда могут быть исполнены (lavabit тому примером).

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

Коммерческая компания покупает услуги хостинга (VDS, dedicated server и т.д.), конфигурирует там i2p роутер плюс ssh-сервер, работающий через i2p, и отдаёт реквизиты своему клиенту, который заказывает и оплачивает услуги только через i2p. Оплата происходит любой криптовалютой (пока условимся, что bitcoin), всё взаимодействие происходит через i2p сеть.

Описание со стороны компании


Компания имеет сайт в i2p, принимает биткоины. При поступлении оплаты компания заказывает услугу у указанного поставщика (в обычном интернете), настраивает i2p, отдаёт реквизиты клиенту. По запросу клиента сервер перезагружается/переустанавливается, так же возможна пересылка почты с саппортом. В самом продвинутом варианте — API для управления.

Описание со стороны клиента


Зайдя на i2p сайт клиент заказывает хостинг «в интернете», получает доступ на свой сервер через i2p, где размещает нужную информацию.

Описание со стороны тоталитарного режима


В интернете есть сайт. Сайт находится на сервере. Сервер принадлежит хостеру, был заказан компанией-посредником, после чего продан анониму за биткоины, у которых в истории фигурируют несколько миксеров и операции внутри i2p-сети. Можно изъять сервер, можно наказать компанию (если она находится в юрисдикции тоталитарного режима), найти автора по логам, записанному трафику и посредством ханипотов не получается.

Доверие серверу

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

Вебсокеты на PHP. Часть 3. От чата до игры: Battle City

Reading time5 min
Views41K
В предыдущих двух частях (Делаем вебсокеты на PHP с нуля и Межпроцессное взаимодействие) в качестве демонстрации я использовал чаты, но в этой статье на примере онлайн-игры я покажу, что сфера применения вебсокетов может быть гораздо шире.

Как обычно, в конце статьи ссылки на демонстрационную игру и исходный код на гитхабе.

Содержание:
  • Поддержка вебсокетов браузерами
  • Разработка онлайн-игры
  • Благодарности
  • Демка и исходный код

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

Опыт разработки интерфейса интеллектуальной обучающей программы

Reading time9 min
Views12K
В будущем традиционное обучение точным наукам может быть дополнено не только MOOC (Massive Open Online Courses) курсами, но и курсами в «следящих» интеллектуальных обучающих программах. Такие программы способны до некоторой степени оценить решение студента на завершенность и правильность, а также предоставить подсказки по решению. На рисунке ниже — интерфейс ввода решения задачи в «следящей» обучающей программе, разработанной нашим коллективом:


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

Видео-курс «Введение в логику» на русском языке

Reading time1 min
Views62K
Здравствуй, Хабр!

Представляю вам курс «Введение в логику», недавно прошедший на Хекслете. Он основан на учебнике по математике Романа Добровенского. Курс состоит из шести лекций общей продолжительностью 2 часа 20 минут.



Первая лекция. Базовые понятия логики, логические операции, наша первая теорема и закон Де Моргана.


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

Вы до сих пор не любите JavaScript?

Reading time6 min
Views96K
С началом эпохи HTML5, рынку понадобилось большое количество JavaScript программистов. Многие специалисты по другим языкам, начали массово переориентироваться на JavaScript. Я много раз видел, как программисты с большим опытом ругали этот, один из самых гибких и могучих, язык, не понимая его принципов. В этой статье я постараюсь рассказать суть и философию JavaScript. Здесь будет всего 4 строчки кода и много-много того, что не напишут в учебниках. Обещаю, что вы полюбите этот язык, или по крайней мере, станете эффективнее в нём. Итак, поехали!
Читать дальше →

GSM на столе

Reading time4 min
Views73K
Разработка под веб: HTTP, HTML, CSS, JavaScript, Python… Ох. Всё одно и то же. Так хочется отвлечься на что-нибудь радикально другое. Я же обитаю в московском хакспейсе Нейрон! Почему бы не поспрашивать вокруг?

Например, в Нейроне сидят ребята из компании Fairwaves, разрабатывающие GSM-оборудование для недорогих сотовых сетей. Весь стек — от железа до софта — доступен под open source лицензией. Да, да, включая железо. Поэтому совсем не обязательно работать в Fairwaves, чтобы познакомиться с этой технологией. И результат копания можно выложить на GitHub или сделать вклад в существующий проект. Как минимум, будет чем похвастаться на собеседованиях.

Пара дней чтения документации, пролистывания кода, десятки навязчивых вопросов и экспериментов (спасибо Александру Чемерису и Ивану Ключникову за помощь). И вот результат — собственная GSM-сеть под контролем моего Макбука:

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

Как я купил wi-fi весы, уволился с работы и начал жить

Reading time6 min
Views210K
image

Stop fucking procrastinating and do some fucking work!


Это не то, что я услышал от своего начальника (хотя иногда вполне заслуживал такого обращения), а название одной из сотен книг в каталоге «Амазона», посвященной борьбе с прокрастинацией.
Читать дальше →

Как мы :hover на iOS побеждали…

Reading time6 min
Views51K
Ни для кого, думаю, не секрет, что touch-устройства обрабатывают «мышиные» события несколько иначе, не так, как это происходит на десктоп-браузерах…

Самый яркий для меня пример, это обработка псевдокласса :hover. Для начала iOS7, например, не будет реагировать на hover если только на элемент, или его родителя, не навешена обработка события click. Это хорошо видно вот на этом примере: jsfiddle.net/H8EmG — сколько не тыкай пальцем в текст — никаких подчеркиваний не увидишь. А в этом примере jsfiddle.net/H8EmG/1 «тычок» пальцем в текст будет приводить к его подчеркиванию. Интересный факт — пока не ткнем в другой элемент, текст так и будет сидеть под ховером…

Другой интересный пример, это обработка появления элементов «по-наведению»: jsfiddle.net/ASRm9/1 Попробуйте нажать на текст. Сперва вы увидите текст «HOVER!», появившийся внутри строки, а вот второе нажатие уже вызовет alert('click'). Это происходит потому, что iOS понимает что за :hover что-то скрыто, и старается не сломать поведение, заложенное автором сайта.

Но однажды мы столкнулись с такой багой, объяснить которую мы не смогли до сих пор, а на ее локализацию потребовался не один день отладки на iPad… Желающие подробностей, а также хитрого, как мне кажется, способа решения, наверное, всех проблем с :hover разом — прошу под кат…

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

«Чем хуже, тем лучше», или Стартап за 6 часов

Reading time6 min
Views40K
19 августа 2009 года, в 12:30 Том Леман написал первую строчку кода задуманного им проекта Rap Genius, посвященного трактованию рэп-текстов. А уже в 18:22 того же дня была готова первая версия веб-сайта. Менее шести часов потребовалось на то, чтобы создать сервис, куда сегодня каждый месяц заходят 40 миллионов новых пользователей, который привлек уже 17 миллионов долларов венчурных инвестиций, и вокруг которого недавно разгорелся интернет-скандал, разрешившийся в пользу проекта и сделавший его ещё более популярным.

В первый же день, разложив по полочкам песню Killa Cam в исполнении рэпера Cam’ron, Леман внедрил те функции, которые до сих являются самыми востребованными. Конечно же, мы были просто обязаны позвать его выступить на последней конференции Design+Startup, проходящей под патронажем фонда First Round. На этой встрече Леман поделился теми четырьмя словами, благодаря которым Rap Genius смог состояться.

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


Что же это значит на практике? Том Леман с удовольствием рассказывает нам об этом.

image

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

Оплата за результат и гарантии

Reading time7 min
Views18K
Любой проект, связанный с интернет-продвижением (включая разработку сайта) по умолчанию подвержен рискам, связанным с природой интернет-коммуникаций.
  • никто не может абсолютно точно прогнозировать будущие изменения среды (Интернета, потребителей, конкурентов),
  • никто не может выдвигать только правильные гипотезы о потребностях и поведении целевой аудитории,
  • никто не может абсолютно точно спрогнозировать эффективность инструмента до начала его использования.

Как это связано с гарантиями, и стоит ли вписываться в проекты с «оплатой за результат»?



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

Хуки — это просто (часть 2)

Reading time4 min
Views20K
image

Некоторое время назад я писал вводную статью о хуках (что это, зачем нужно, Hello world). Статья задумывалась простой, минималистичной и, вроде бы, такой и получилась. Единственный упрёк, который я услышал в комментариях — «Зачем же брать библиотеку Microsoft Detours, которая для коммерческого использования стоит 10 000$ ?». Замечание справедливое. В этой статье я приведу тот же пример с использованием другой библиотеки ценой примерно в 20 раз меньше (что уже вполне себе в рамках разумного) — madCodeHook.

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

Как получить хорошую верстку от верстальщика

Reading time3 min
Views24K


Вводная часть


Прошлый мой материал “Краткая инструкция по работе с web-дизайнером (для менеджера проекта)” вызвал неоднозначные отзывы и отличную ответную статью (взгляд с другой стороны) “Краткая инструкция о том, как надо работать с web-дизайнером (взгляд дизайнера)”.

Прочитав обе статьи, вы сможете составить адекватное собственное мнение на заданную тему.

Новым материалом хотелось бы также получить отзывы и мнения, чтобы посмотреть на проблему со всех сторон. В статье будут ссылки на несколько полезных инструментов.
Читать дальше →

Создание игр для Windows 8 с использованием Unity3D — смотрите сегодня в 10:00 онлайн

Reading time2 min
Views14K
Если вы хотите создать игру для Windows 8, но не знаете с чего начать, обязательно подключайтесь к веб-трансляции мероприятия «Создание игр для Windows 8 с использованием Unity3D» 20 февраля в 10:00 (MSK). Мы расскажем вам все самое важное о платформе Microsoft, Windows 8 и Unity3D, а также об инструментах совместной работы, и эти знания помогут вам создать замечательную игру.
Плеер с трансляцией доступен под катом. Смотрите конференцию онлайн и общайтесь в твиттере (#unity3dwin).
image
Читать дальше →

«Теоретический минимум» Леонарда Сасскинда издан на русском

Reading time4 min
Views67K
Рады сообщить, что в издательстве «Питер» вышел перевод новой книги Леонарда Сасскинда и Джорджа Грабовски — «Теоретический минимум» (ориг: The Theoretical Minimum: What You Need to Know to Start Doing Physics).

В Америке эта книга, несмотря на свой формат лекций по физике и классической механике, неожиданно стала настоящим бестселлером, а The Wall Street Journal вообще признал ее «Книгой 2013 года». В России книга вышла в издательстве «Питер» при поддержке гуманитарного фонда «Династия», цель которого — содействовать изданию лучших современных научно-популярных книг в области естественных и гуманитарных наук.

image

Мы уже издавали одну книгу Сасскинда на русском — «Битву при черной дыре» (пост о ней был на Хабре) — но «Теоретический минимум» по формату и содержанию кардинально от нее отличается.
Читать дальше →

Тестируем MeteorJS-приложение с помощью Laika

Reading time3 min
Views3.4K
Всем привет! Этот небольшой пост посвящен системе тестирования MeteorJS-приложений Laika от Arunoda Susiripala. Ее особенности довольно интересны:
  • Laika запускает свои тесты так же, как запускается реальное приложение (используется PhantomJS)
  • Каждый тест изолирован, т.е. заново запускается ваше MeteorJS-приложение с чистой базой данных
  • Вы можете использовать для разработки и meteor, и meteorite, laika прекрасно работает с ними обоими
  • Вы можете запускать проверку на сервере и клиенте в одном тесте. Это поможет протестировать такие моменты, как права доступа (permission), подписки (subscriptions) и вызовы методов (method calls)
  • Так как MeteorJS работает в реальном времени, то вам потребуется тестировать приложение при работе нескольких клиентов одновременно. Laika это может.
  • Возможность использования событий для более точного тестирования, т.е., фактически, эмуляция работы пользователя
  • Передача значений в код во время выполнения теста через аргументы
  • Ожидание окончания генерации шаблонов (templates)


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

Идеальная страница 404 ошибки, или как удержать пользователя на сайте?

Reading time4 min
Views145K
Большинство пользователей, наткнувшись на страницу ошибки 404, постараются как можно скорее ее закрыть и забыть. Чтобы не потерять таким образом своих посетителей, стоит создать для этой ошибки необычное оформление. Рассмотрим детальнее, какие задачи стоят перед страницей 404 и как их воплотить.

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

Yacy — распределённый не цензурируемый поисковик: три года спустя

Reading time2 min
Views146K


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

Первое и единственное упоминание о нем на хабре было 29 ноября 2011.

Но с того времени многое изменилось, давайте посмотрим на него еще раз.
Читать дальше →

Пространства имен в PHP, разъяснение

Reading time5 min
Views125K
Прим.пер.: Я в курсе, что на момент перевода актуальная версия PHP — 5.5, а также что есть мудрая книга мануал. Но мне показалось интересным, то как автор преподносит namespace функционал, возможно кому-то из тех, кто только постигает азы (да и не только, есть немало бородатых разработчиков, остановившихся на PHP 5.2), статья поможет проникнуться. Ходор.

В PHP, начиная с версии 5.3 появились пространства имен. Большинство современных языков уже давно заимели себе такой функционал, но PHP немного опаздывал. Тем не менее, у каждой новой функции есть свое предназначение, давайте выясним, какие выгоды мы можем извлечь, используя namespace.

В PHP у вас не может быть два класса, названных одинаково, все они должны быть уникальны. Проблема этого ограничения в том, что если вы используете чью-либо стороннюю библиотеку, предоставляющую класс с именем User, то вы не можете создать свой собственный класс, также названный User. Это по настоящему скверно, ведь User — очень удобно имя для класса, не так ли?

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

Сумма всех натуральных чисел: 1 + 2 + 3 + 4 +…

Reading time3 min
Views415K
Сумма всех натуральных чисел может быть записана с использованием следующего числового ряда



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

Подробности

Information

Rating
Does not participate
Registered
Activity