Search
Write a publication
Pull to refresh
107
0
Stanislav F. @1nd1go

User

Send message

OAuth: описание протокола простым и понятным языком

Reading time16 min
Views201K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами

Некоторые (полезные) советы по Windows 7

Reading time4 min
Views38K
Содержание:
1. Быстрый запуск приложений с правами администратора
2. Отчет об использовании электроэнергии
3. Поиск в интернете из меню «пуск»
4. Навигация по панели задач
5. Скрытие значка Windows Live Messenger
6. Сворачивание окон
7. Быстрое открытие и закрытие копии приложения
8. Копирование файлов из командной строки в несколько потоков
9. Быстрое управление окном

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

Как выглядит работа PHP программиста в Швеции

Reading time3 min
Views17K
Вступление

Должен оговориться — я никогда не работал программистом в России или любой другой русскоязычной стране. Перед этим 10 лет жил в Польше и вот теперь уже полтора года в Швеции в Стокгольме. Итак, как выглядит работа PHP-Developera в небольшой шведской компании (25 человек), в которой development team состоит из дизайнера, программиста (собственно меня) и еще одного удаленного системного администратора. Особенно подчеркиваю, что фирма маленькая и не заточенна под разработку сайтов или программ.

У фирмы есть 3 сайта, каждый из которых посвящен определенному продукту. Один сайт имеет около 1000 unique users в день, второй — 300-400, третий — 100-200. Коллектив — национальный винегрет, официальный язык в офисе — английский. По-шведски, кстати, я не говорю совсем. Продукты, которые продаем тоже интернациональные, клиенты разбросаны по всему миру; сайты, естественно, на английском.
Читать дальше →

Долгая дорога в сеть для робота и книжки или точка доступа из адаптера USB-Wifi под Win7

Reading time3 min
Views5.7K
image

Начало истории


Было дело — купил я еще в 2010 году модный и популярный Айфон4, попользовался им неделю да и продал, не мое оно. А почему я тут про него вспоминаю? А потому, что после айфона моим очередным умным спутником стал коммуникатор HTC Desire HD, на ОС Android. Которая, если кто еще не знает, не умеет ходить в сеть по Wifi при подключении Ad hoc, в отличие от своих конкурентов. Чуть позже я приобрел читалку на электронных чернилах Kindle3G, которая ведет себя аналогичным образом — то есть подключается только через Access Point.
Читать дальше →

Netgear WNR3500L: Превращаем роутер в NAS

Reading time6 min
Views77K
История покупки роутера Netgear WNR3500L похожа на поговорку автолюбителей: тюнинг автомобиля начинается после дтп. Так и в моем случае. Старенький и глючный D-Link DIR300 умер смертью храбрых (скорее всего перегрев от нагрузки). Так как работал он, мягко говоря, неудовлетворительно, было решено купить железку помощнее и посовременнее.

Среди претендентов оказались 3 модели: Asus N16, Linksys WRT160NL и Netgear WNR3500L. Все они удовлетворяли нескольким критериям: быстрый процессор, много оперативки, USB для подключения жесткого диска и возможность установки альтернативных прошивок. Несмотря на большую любовь к марке Linksys, выбор пал в сторону Netgear. Причина проста: линксисов попросту нигде не было в наличии, асус купили прямо у меня перед носом, а роутер был очень нужен. В качестве накопителя был выбран 3.5” WD Elements на 1.5ТБ.

WNR3500L позиционируется компанией Netgear как open source роутер. Самые популярные прошивки для него – это Tomato, OpenWRT и DD-WRT. Я остановился на DD-WRT. Она понравилась мне как по скорости, так и по функционалу, который расширяется установкой пакетов Optware. Ранее на хабре уже раскрывалась тема установки Samba на DD-WRT (прямо вот тут), но в этом топике я постараюсь как можно полнее раскрыть вопрос установки и начальной настройки данного роутера по методу, который наши иностранные коллеги называют «The Right Way».

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

Установка Windows 7 на Macbook Air 2010 Late основной и единственной ОС

Reading time4 min
Views212K
Данный пост написан не холивара ради, а просто, чтобы поделится опытом. Сразу отвечу на основную часть вопросов:
— Зачем это надо?
— Это просто надо!
— Есть же MacOS, зачем на Маке Windows?
— Каждый выбирает для себя, с чем ему удобнее работать! Мне нравятся железки от Apple, но привык я работать в Windows!
— Есть же виртуальные машины?
— Они работают медленно!
— Есть же Bootcamp!?
— На Air мало место, и только Windows занимает около 30-40Гб, со всем софтом!
Ответил на все вопросы?! Если вам все еще интересно как это провернуть, тогда добро пожаловать в пост…
читать дальше

31 тезис

Reading time3 min
Views1.2K
Иногда, когда у меня случаются моменты не самого лучшего настроения или что-то не получается, вмешивается, происходит или еще каким-то образом отравляет жизнь, я перечитываю эти цитаты, собранные мной несколько лет назад воедино — и силы приходят!

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

Нерациональное использование Digitalocean

Reading time2 min
Views6.2K
После раздачи паков студентам Github’ом решил использовать 100 баксов в Digitalocean со смыслом, а точнее в качестве облачного хранилища — качалки всяких мелочей. Памяти, конечно, в дроплетах не так уж и много, (20 — 40 гБ в бюджетных вариантах), но они на то и мелочи, что весят немного. В качестве образа был выбран привычный Ubuntu 14.04 x32, в качестве качалки был избран transmission с его удобной веб-мордой, а как способ шаринга данных был взят apache2 с webdav. Получился Яндекс.Диск на стероидах (ssd, торрент, качающий напрямую в диск, возможности настроить больше плюшек), но с меньшим объемом жесткого диска.
Читать дальше →

Работа по контракту в Лондоне

Reading time11 min
Views95K

Вид на City, сердце деловой Великобритании

Перед тем как перейти «на контракт» я работал в постоянным сотрудником в Лондоне в небольшой (700 серверов / 8 коллег) компании. Моя специализация — Wintel engineer, то есть я могу работать к в суппорте так и в техподдержке проектов. Все что связано с продуктами Microsoft. Я подумывал об уходе с постоянной работы, однако волею судеб пришлось уйти совершенно неподготовленным. Именно отсюда начинается мой рассказ о контрактниках в Великобритании.
Читать дальше →

Программа и материалы курса «Multicore programming in Java»

Reading time5 min
Views34K
Добрый день.
Меня зовут Головач Иван, я буду уже второй раз вести спецкурс-вебинар «Multicore programming in Java». В этой статье предлагаю на рассмотрение программу курса и наиболее полезные ссылки по вопросам многопоточности в Java.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Кратко о курсе: стартует 1 сентября, ведется в режиме вебинаров дважды в неделю (понедельник + четверг) в 19.00-22.00 (по московскому времени), состоит из 16 лекций по 2.5 часа (=40 лекционных часов), рассчитан на Java Middle.

1. Модуль #1: Между hardware и New JMM
1.1 Программа модуля
1.2 Литература к модулю
2. Модуль #2: java.util.concurrent
2.1 Программа модуля
2.2 Литература к модулю
3. Модуль #3: Fork/Join Framework + Parallel Streams
3.1 Программа модуля
3.2 Литература к модулю
4. Модуль #4: “Неклассические архитектуры”
4.1 Программа модуля
4.2 Литература к модулю
Читать дальше →

Почем опиум для народа? Как устроен FOREX и нужен ли он. (Часть II)

Reading time14 min
Views84K
image

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

Кроме того, был задан ряд провокационных вопросов, которые условно можно свести к вариации одного из двух:

  1. Каковы критерии «кухни»? (вариации: вот этот брокер (имярек) кухня или нет? и пр.)
  2. В чем отличия услуг ITinvest от услуг критикуемых вами кухонь?

Не желая вступать в полемику и спор с представителями форекс-сообщества (все-таки статья писалась не для них), я, тем не менее, счел себя обязанным продолжить объяснение, что такое «правильный» форекс, а также:

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

Попутно читатель получит ответ на провокационные вопросы, сформулированные выше. Кому текст покажется занудным – просьба читать только заголовки.
Читать дальше →

Биткойн и основы фьючерсной тоговли

Reading time4 min
Views17K
imageВ то время как MtGox в очередной раз тормозит, а биткоиника перешла в коматозное состояние, биржа ICBIT без помпы запустила торговлю фьючерсами.

Для начала немного теории. Те, кто уже с ней знаком могут смело прокрутить текст до начала специфичной для биткойнов части.
Читать дальше →

Типичные ошибки API платежных систем

Reading time2 min
Views36K
imageЕсли вы собираетесь написать n-ную платежную систему, рекомендую ознакомиться с типичными ошибками в реализации API, которые я собрал в процессе написания модулей для своего проекта.

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

Git Rebase: руководство по использованию

Reading time8 min
Views856K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


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

Новый выделенный сервер: приемка и проверка

Reading time10 min
Views42K
Новый сервер: приемка и проверка

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

В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.
Читать дальше →

Raspberry PI и JAVA: пристальный взгляд

Reading time4 min
Views69K
Недавно на хабрахабре вышла статья о java на raspberry pi, увидев название которой было много ожиданий, а под катом оказался банальный Hello World!

Дело в том, что ко мне как раз ехала моя малинка и хотелось получить ответы на следующие вопросы:

1. Сравнима ли скорость работы java на малинке и настольном компьютере?
2. Насколько удобно работать с java на raspberry?
3. Есть ли адекватные библиотеки для работы с GPIO?

Вот на эти вопросы я и попробую дать ответы в этой статье.

Кому интересно: добро пожаловать под кат (графики и фотографий обнаженной малинки там не будет)
Читать дальше →

Майнинг и как он работает: матчасть

Reading time6 min
Views563K

Привет, %username%!
Я расскажу и покажу как работает основа генерации денег в криптовалютах — майнинг. Как создается первый блок, новые блоки и как появляются деньги из ниоткуда.
Чтобы было проще понять, мы напишем свой импровизированный майнер для импровизированной криптовалюты HabraCoin.
Читать дальше →

RESTful API для сервера – делаем правильно (Часть 1)

Reading time13 min
Views334K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

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

Вышел непривязанный jailbreak для iOS 7.x

Reading time1 min
Views116K
image

Сегодня, в качестве подарка к рождеству, команда хакеров evasi0n выпустила непривязанный jailbreak для устройств на iOS 7.x, включая iPad Air, iPhone 5s и iPad Mini with Retina Display.

Работоспособность подтверждена автором. Ждем твика Back to Skeumorphism или что-то в этом духе.

Скачать можно с официального сайта.

Перед джейлбриком хакеры рекомендуют:

* Сделать бэкап устройства.
* Отключить пароль на разблокировку устройства.
* Не делать никаких операций на компьютере во время джейлбрика, которые так или иначе связанны с iTunes и iOS.

Если во время установки программа зависла, ребут устройства и самого приложения безопасен.
Если Вы не можете открыть приложение на OS X 10.8, щелкните правой кнопкой мыши на файле и выберете «Открыть».
Читать дальше →

Spring и обработка событий в Hibernate

Reading time3 min
Views19K
Как-то обделена на хабре такая тема, как обработка событий при работе с сущностями с использованием Hibernate — я смог найти только один пост уже почти мохнатого года. Но то аудит, а нам нужна возможность автоматизировать работу с некоторыми атрибутами сущностей и при этом упростить процедуру работы с ними.

Для начала создадим демонстрационный стенд с двумя сущностями User и AnObject, а так же DAO-слоем для них.
Код
Здесь и далее привожу только значимые куски кода — в полной версии можно посмотреть на github
@Entity
@Table(name = "user")
public class User {
        @Id
        @GeneratedValue
        private long id;
        @Basic
        @Column(name = "username", updatable = false, unique = true, nullable = false)
        private String username;

        // getter and setter
}

@Entity
@Table(name = "anObject")
public class AnObject {
        @Id
        @GeneratedValue
        private long id;
        @Column
        private String value;

        // getter and setter
}


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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity