Search
Write a publication
Pull to refresh
76
0
Zaur Nasibov @BasicWolf

Software Engineer

Send message

Теплый и ламповый VPN

Reading time9 min
Views397K

Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

— Алло, милый! У меня youtube не работает!
— Прекрасно, иди спать!
— Нууу! Там новая серия вышла!
— Завтра всё сделаю!
— Ну Заяя, нуууу!
— Ладно! Ладно! Сейчас.


Из этого поста вы узнаете ответы на следующие вопросы:
Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!
Читать дальше →

Дуалбут Windows 7 и Debian Squeeze на компьютере с UEFI

Reading time4 min
Views31K
Полагаю, многие слышали об интерфейсе (U)EFI, который всё чаще и чаще встречается в ПК с процессорами Intel. Несмотря на то, что в Intel любят расписывать преимущества, у загрузки через EFI есть существенный недостаток – установка некоторых ОС, в том числе большинства дистрибутивов Linux (из мне известных EFI «из коробки» недавно начала поддерживать только Ubuntu и её форки). В данном посте я постараюсь изложить «подводные камни» и их решение.
Читать дальше →

Нейросеть Google приступила к работе

Reading time2 min
Views118K
В июне 2012 года группа исследователей из Google запустила нейросеть на кластере 1000 компьютеров (16 тыс. процессорных ядер; 1 млрд связей между нейронами). Эксперимент стал одним из самых масштабных в области искусственного интеллекта, причём систему изначально создавали для решения практических задач.

Самообучаемая нейросеть — достаточно универсальный инструмент, который можно использовать на разных массивах данных. В компании Google её применили для улучшения точности распознавания речи: «Мы получили уменьшение на 20-25% количества ошибок при распознавании, — говорит Винсент Ванхоук (Vincent Vanhoucke), руководитель отдела распознавания речи в Google. — Это значит, что многие люди получат безошибочный результат». Нейросеть оптимизировала алгоритмы для английского языка, но Ванхоук говорит, что аналогичные улучшения могут быть достигнуты и для других языков и диалектов.
Читать дальше →

Самые необычные Дата Центры: Дата Центры, как искусство

Reading time4 min
Views72K
Уже давно никого не удивишь сверхсовременными центрами обработки данных (ЦОД), которых в мире насчитывается великое множество. Надежность, масштабируемость, приспособляемость – основные параметры, на которые ориентировались инженеры при проектировании Дата Центров. До недавнего времени…

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

Серверная в часовне


Никогда не думали о серверной в часовне? А вот в Барселоне испанцы не только думали, но и построили. В 2005 году серверная площадью около 120 кв. м. успешно начала функционировать в бывшей часовне Torre Girona, где разместили один из самых мощных суперкомпьютеров Европы, производительностью около 94 терафлопс.



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

Транзакции в MongoDB

Reading time5 min
Views57K
image MongoDB — замечательная база данных, которая становится все популярнее в последнее время. Все больше людей с SQL опытом начинают её использовать, и один и первых вопросов, который у них возникает: MongoDB transactions?.

Если поверить ответам со stackoverflow, то все плохо.

MongoDB doesn't support complex multi-document transactions. If that is something you absolutely need it probably isn't a great fit for you.
If transactions are required, perhaps NoSQL is not for you. Time to go back to ACID relational databases.
MongoDB does a lot of things well, but transactions is not one of those things.
Но мы не поверим и реализуем транзакции (ACID*) основанные на MVCC. Ниже будет рассказ о том, как эти транзакции работают, а тем, кому не терпится посмотреть код — добро пожаловать на GitHub (осторожно, java).

Пост не о MongoDB, а о том, как использовать compare-and-set для создания транзакций, а durability обеспчивается ровно в той степени, в которой её обеспечивает хранилище.
Читать дальше →

Маленькая C-функция из преисподней

Reading time5 min
Views3.6K
Недавно мой студент и я пытались понять одну тонкость в стандарте C. Самый простой способ прояснить подобные вопросы — это узнать, учли ли её разработчики компиляторов, то есть написать код и посмотреть, что с ним будут делать разные компиляторы.

Я написал такую функцию:
int foo (char x) {
  char y = x;
  return ++x > y;
}

Так как ++x увеличивает на 1 значение x, очевидно, что функция должна возвращать "1" для большинства значений x. Вопрос состоит в том, что она вернет для значения CHAR_MAX?

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

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time5 min
Views211K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


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

Google Chrome хакеру не помощник

Reading time3 min
Views18K
О том, как Chrome мешает мне искать XSS-уязвимости.


Почему я ищу уязвимости?


Как и многие из вас, я делаю Code Review и первое, что ищу это конечно уязвимости. Когда уязвимость найдена в коде, хорошо бы проверить есть ли она на самом деле через браузер, потому что бывают «ложные тревоги». Это те случаи, когда данные уже приходят фильтрованными и XSS невозможен. Всегда полезно иметь возможность показать разработчику атаку в действии, потому что это хороший аргумент и помогает быстрее перейти к конструктивному решению проблемы, если есть сомнения, что уязвимость таки существует. Но проверку в браузере я делаю не часто — либо проблема очевидна прямо из кода, либо верят на слово. В общем искать уязвимости — это интересно.

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


Друг скинул ссылки на сайт, который ещё год назад имел XSS-уязвимость, о чем я писал владельцам ресурса. Стало интересно проверить снова. Проверил — XSS есть, но вот простейшего подтверждения выполнения JS я получить не смог!..



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

Первые подозрения


Итак, стал проверять всевозможные варианты внедрения кода — но без результата. По ходу дела выяснил что и как фильтруется, какие есть проверки и прочее, но alert(1); упорно не выполнялся. По ходу дела нашелся ещё и XSRF — приятный бонус!
Далее я расскажу как я потреля кучу времени, но выяснил одну важную особенность браузера Chrome.

HP webOS официально ушла в Open Source. HP планирует продолжить развитие системы. webOS портирована на Galaxy Nexus

Reading time1 min
Views16K
Мобильная операционная система на базе ядра Linux, HP webOS, официально переродилась сегодня в Open webOS. Долгий цикл подготовки кода закончился сегодня с выпуском исходного кода стабильной версии системы. В свободный доступ энтузиасты и производители всего мира получили 75 компонентов системы длиной более 450 тысяч строк кода. Несмотря на массу проблем мобильного подразделения Hewlett-Packard, они смогли в срок завершить выпуск исходников, которые можно найти в репах на GitHub.
Читать дальше →

«Герои мата и меха» портированы на javascript

Reading time1 min
Views43K
← жать на картинку, это зеркало для хабраэффекта

«Герои матмеха» или «Сдать сессию и остаться в живых». Остросюжетный пошаговый симулятор студента матмеха СПбГУ портирован из глубины веков (98 год) на Javascript и доступен прямо из браузера. Этот квест будет интересам студентам смежных инженерных профессий. Выдержка из документации к оригиналу:
«Эта программа - некоторый синтез всех тех эмоций, что получил автор, пытаясь (с грехом пополам) выйти на сессию в конце второго семестра первого курса на мат-мехе. Правда, при этом автор находился в более выгодном положении, чем Вы - центральный персонаж этой игры, которому предстоит получить зачёты по 6-ти предметам практически с нуля.»



О процессе портирования и о авторах

Взломать Wi-Fi за 10 часов

Reading time12 min
Views1.5M
Еще не так давно казалось, что беспроводная сеть, защищенная с помощью технологии WPA2, вполне безопасна. Подобрать простой ключ для подключения действительно возможно. Но если установить по-настоящему длинный ключ, то сбрутить его не помогут ни радужные таблицы, ни даже ускорения за счет GPU. Но, как оказалось, подключиться к беспроводной сети можно и без этого — воспользовавшись недавно найденной уязвимостью в протоколе WPS.


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

Чем заменить гарнитуру? Обзор стильных наушников

Reading time6 min
Views74K


Долгое время я пользовался гарнитурой не только в связке с телефоном, но и с плеером. Как оказалось, в iPod Classic открывается возможность диктофонной записи, если подключить гарнитуру. Примерно через год фирменные ушки Apple пришли в негодность, равно как и телефонные наушники. Я приобрёл Razer Moray +, про которые писал Boomburum. Наушники неплохие, но у них практически отсутствуют верхи и низы. Да, для игр и телефонных разговоров этого достаточно, а вот чтобы полноценно насладиться произведениями Баха, всё-таки, не хватает. Увы, но и эти наушники сломались через год. Пришло время выбирать новую гарнитуру. Недолго думая, я подобрал 4 пары неплохих наушников с немного различными характеристиками и ценами. Их обзор и представляю на ваш суд.
Читать дальше →

Генератор телеметрии станции Мир, или почему нельзя обижать программистов

Reading time1 min
Views16K
image
Посты — ссылки пропали, а запись достойна внимания. Приятного чтения:
Сегодня я хочу, чтобы мой технический читатель, измотанный повседневной работой, немного расслабился, для чего расскажу довольно старую, но, несмотря на это, до сих пор малоизвестную историю про одного обиженного руководством программиста, занимавшегося интересной и творческой задачей — поддержкой рандомного эмулятора российской космической станции «Мир», а также о внезапно возникшем в результате этого опыта телеметрическом канале с того света.

Скорее всего, байка. Однако правдой с легкостью могла бы быть

Ссылка на оригинал

Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки

Reading time4 min
Views159K

Предисловие


Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
Читать дальше →

Самый ценный совет по программированию, который я получил

Reading time1 min
Views16K
«Год или два, с момента начала работы в Bell Labs, я работал в паре с Кеном Томпсоном над интерактивным графическим языком, разработанным Джерардом Хольцманом (Gerard Holzmann). Я печатал быстрее, поэтому я сидел за клавиатурой, а Кен стоял позади меня. Мы работали быстро, и когда компилятор выдавал ошибку, я рефлективно начинал закапываться в проблему, изучая стек вызовов, вывод программы, запускал отладчик и так далее. Но Кен просто стоял рядом и думал, игнорируя меня и код, который мы только что написали. Вскоре я заметил закономерность: Кен зачастую понимал, в чем проблема, раньше меня и произносил: „Я знаю, что не так“. Обычно он был прав. Я понял, что Кен выстраивал ментальную модель кода и, когда что-то ломалось, это была ошибка в модели. И думая о том, как эта проблема могла возникнуть, он выяснял, в каком месте модель была неверна или где наш код мог неправильно эту модель отразить.
Читать дальше →

Одно предложение, которое делает нас сильнее

Reading time2 min
Views93K
Это мой самый короткий топик, суть которого в одном предложении. Часто именно с этого предложения начинается успешный стартап, бизнес и любое другое начинание.

Это шаблон описания сути вашей компании или проекта в одном предложении. Я открыл его для себя во время стажировки в США. Составив его, мы реально становимся сильнее. В последствии мне это помогло выбрать правильный курс, сфокусироваться и расставить приоритеты.
Читать дальше →

Пайпы, the pythonic way

Reading time3 min
Views19K
Одни питонисты любят код читаемый, другие предпочитают лаконичный. К сожалению, баланс между первым и вторым — решения по-настоящему изящные — редко случается встретить на практике. Чаще стречаются строки вроде
my_function(sum(filter(lambda x: x % 3 == 1, [x for x in range(100)])))
Или четверостишья а ля
xs = [x for x in range(100)]
xs_filtered = filter(lambda x: x % 3 == 1, xs)
xs_sum = sum(xs_filtered)
result = my_function(xs_sum)
Идеалистам же хотелось бы писать как-то так
result = [x for x in range(100)] \
    | where(lambda x: x % 3 == 1)) \
    | sum \
    | my_function

Не в Питоне?
Зря так думаете...

Договориться можно обо всём

Reading time2 min
Views40K
Добрый день, уважаемые посетители Хабра.



Несколько дней назад я прочитал замечательную книгу Гэвина Кеннеди «Договориться можно обо всём». Как верно отмечает автор, мы ведем переговоры с первых лет своей жизни, начиная еще до того, как научимся толком разговаривать, и важность правильно вести переговорный процесс, что в личной жизни, что в работе, очень сложно переоценить. Особенно важно умение вести переговорный процесс в IT индустрии, где заказчики и исполнители зачастую говорят на разных языках, и совершенно по-разному оценивают различные события и факты. Книга произвела на меня отличное впечатление, и я искренне рекомендую всем, при наличии свободного времени, ее прочитать. В процессе ознакомления с материалом, Гэвин предлагает читателям несложные тесты, и, далее, дает развернутые комментарии тех или иных наших ответов, классифицируя читателей по 4 категориям: Ослы, Овцы, Лисы и Совы, согласно умению вести переговорный процесс. Именно эти тесты, а точнее их автоматизация, и побудили меня написать этот пост на Хабре. Хотите проверить свой талант переговорщика?
Хочу! Дальше!

Реализация синглтона в многопоточном приложении

Reading time14 min
Views17K


Введение


В настоящий момент сложно себе представить программное обеспечение, работающее в одном потоке. Конечно, существует ряд простых задач, для которых один поток более, чем достаточен. Однако так бывает далеко не всегда и большинство задач средней или высокой сложности так или иначе используют многопоточность. В этой статье я буду говорить об использовании синглтонов в многопоточной среде. Несмотря на кажущуюся простоту эта тема содержит множество нюансов и интересных вопросов, поэтому считаю, что она заслуживает отдельной статьи. Здесь не будет затрагиваться обсуждение того, зачем использовать синглтоны, а также как их правильно использовать. Для прояснения этих вопросов я рекомендую обратиться к моим предыдущим статьям, посвященным разным вопросам, связанным с синглтонами [1], [2], [3]. В этой статье речь будет идти о влиянии многопоточности на реализацию синглтонов и обсуждению вопросов, которые всплывают при разработке.
Читать дальше →

Information

Rating
Does not participate
Location
Азербайджан
Registered
Activity