Обновить
0

Пользователь

Отправить сообщение

Почти забавные космические происшествия

Время на прочтение9 мин
Охват и читатели34K

За десятилетия освоения космоса накопилось много происшествий, которые выглядят почти забавными. Да, произошла авария, программа полета частично или полностью сорвана, но, за отсутствием погибших, пострадавших, и серьезных, дорогих потерь, история становится почти смешной. Иногда получается даже, что авария дает новые знания, или ее устранение выводит, казалось бы, потерянную миссию на новые высоты.
Читать дальше →

Спросите Итана №27: Выживут ли Земля и Луна?

Время на прочтение3 мин
Охват и читатели14K
И они не увидят, что скрывает мгла, если Солнце потускнело, а Луна умерла.
— Дж.Р.Р.Толкин

Читатель спрашивает:
В далёком будущем нашей Солнечной системы, по твоим словам, когда Солнце начнёт расширяться, «система Земля/Луна будет вытолкнута наружу, и избежит участи наших соседей с внутренних орбит». Не мог бы ты объяснить, почему?

Начнём с сегодняшнего дня и поговорим о том, что нас ждёт в будущем.

image

Это наше Солнышко. Огромный плазменный шар 1,4 млн. км. в диаметре. На таком диаметре вы могли бы разместить вплотную друг к дружке 109 планет Земля. С каждой секундой в Солнце 4 × 10^38 протонов превращаются в гелий, то есть более 4 млн. тонн массы превращается в энергию (E = mc^2).

И хотя оно такое большое и горячее в области ядра, у него достаточно топлива для поддержания горения в течение 10-12 млрд. лет. К текущему моменту прошло уже 4,5 млрд. лет. Но даже и за это время с Солнцем будут происходить небольшие изменения.
Читать дальше →

Байки выездных инженеров – монтаж и сервис ВКС/КЦ

Время на прочтение6 мин
Охват и читатели66K


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

Начнём. В большой компании мы делали видеонаблюдение на одном из объектов. Там две службы безопасности — ИТ и «физики». Первые «кладут кабель», вторые «ложат мордой в пол». Так вот, по настоянию ИТ-безопасников мы делали вообще отдельную сеть на коаксиале, чтобы нельзя было открутить камеру, воткнуться на её место и сбрутить роутер. Промучились изрядно. В конце монтажа мы обратили внимание на ряд датчиков «физиков», стоящих прямо рядом с камерами. На витой паре. Скрутили один, воткнулись с ноутбуком, там веб-интерфейс роутера… и да, пароль 12345678!

Однажды мы поднимали колл-центр для той части банка, которая, как оказалось, занимается сбором долгов. Впечатления инженера с приёмки совершенно потрясающие:
— Ты знаешь, стайка такая милых девушек до смены. Ласковые, флиртуют, глазки строят. А потом садятся на АРМ и начинают так брутально с клиентами разговаривать, что просто страшно становится. Я там чуть по стене не съехал первый раз.
Пробыв на тестовой эксплуатации 3 дня, инженер принял волевое решение и закрыл все свои кредитные карты.
Читать дальше →

Анализ защиты Sony PlayStation 4

Время на прочтение25 мин
Охват и читатели106K
image

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

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

Если вы плохо знакомы с применением эксплойтов, вам cледует сначала прочитать мою прошлую статью про взлом игр DS с помощью уязвимости целостности стека (stack smash) в файлах сохранений.

Загрузить всё необходимое для собственных экспериментов можно здесь, на данный момент поддерживается исключительно прошивка 1.76.
Читать дальше →

Django своими руками часть 1: Собираем шаблоны для jinja2

Время на прочтение3 мин
Охват и читатели16K

Введение


В этом посте хотелось бы описать создание небольшого фреймворка с системой плагинов как django. Только с использованием внешних компонентов. Jinja2 для шаблонов, bottle для получения переменых среды, вместо ORM будет использоваться pymongo, а сессиями будет заниматься beaker.
В первой части хочу рассказать как удобно подсоединить Jinja2 чтоб шаблоны можно было собирать из разных папок (читай плагинов) и кешировать их.
Также в следующей части хотелось бы рассказать как подключить к шаблонам gettext и автоматизировать их перевод.

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

Экстремальное программирование, знакомство с Behavior Driven Development и RSpec

Время на прочтение4 мин
Охват и читатели41K

Теория


Для начала, давайте разберемся, что же такое Behavior Driven Development(в дальнейшем BDD) и чем данная техника отличается от Test-Driven Development(в дальнейшем TDD)

Разрабо́тка че́рез тести́рование (англ. test-driven development) — техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик экстремального программирования.
Читать дальше →

Flask-Admin

Время на прочтение4 мин
Охват и читатели67K
Доброе время суток.

Хочу представить проект, над которым работал в последнее время: Flask-Admin. Если в двух словах, это расширение для фреймворка Flask, которое позволяет быстро создавать административный интерфейс в стиле Django.
Читать дальше →

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

Время на прочтение5 мин
Охват и читатели39K
Всем привет! Я работаю над e-commerce стартапом в штатах и за последнее время удалось поработать с рядом сервисов электронных платежей, а именно Stripe, Braintree и Paypal. Сегодня хочу немного рассказать о том, какие особенности электронных платежей есть в Штатах, о практическом опыте использования вышеназванных сервисов и так же ряд общих мыслей на эту тему.
Читать дальше →

Все данные на одном экране: Опыт интеграции мессенджера Kato с IFTTT, Hubot и Stripe

Время на прочтение5 мин
Охват и читатели9K
Каждая компания постоянно сталкивается с огромным количеством входящей информации, на которую необходимо реагировать: твиты пользователей, новые правила в индустрии, почтовые сообщения в техподдержку, автоматические оповещения от серверов, данные о проблемах в работе от подрядчиков, уведомления от платежных сервисов, и так далее.

image

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

Что такого особенного в Nim?

Время на прочтение7 мин
Охват и читатели85K


Язык программирования Nim (ранее именовался Nimrod) — захватывающий! В то время как официальная документация с примерами плавно знакомит с языком, я хочу быстро показать вам что можно сделать с Nim, что было бы труднее или невозможно сделать на других языках.

Я открыл для себя Nim, когда искал правильный инструмент для написания игры, HoorRace, преемник моей текущей DDNet игры/мода Teeworlds.

(прим. пер. На синтаксис Nim имели влияние Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.)

Запускаем!


Да, эта часть всё ещё не захватывает, но просто следите за продолжением поста:

for i in 0..10:
  echo "Hello World"[0..i]

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

Новый PyCharm 4.5 собрал вместе все инструменты для работы с Python

Время на прочтение2 мин
Охват и читатели43K
Всем привет! Мы выпустили новый PyCharm 4.5, который уже доступен для скачивания.



С момента предыдущего релиза PyCharm 4.0 прошло ровно полгода. За это время PyCharm получил ряд новых полезных инструментов для Python, Django и веб-разработки, которые, как всегда, тесно интегрированы и эффективно работают друг с другом. Сегодня мы рады рассказать, что же интересного и важного появилось в новой версии PyCharm.
Читать дальше →

Оптическая компенсация

Время на прочтение3 мин
Охват и читатели80K


В начале моего дизайнерского пути я полагался исключительно на Photoshop и CSS в вопросах правды и лжи. Если Photoshop утверждал, что две фигуры выровнены, то значит, они выровнены. Если две разные фигуры были разного размера, то так и было. Если два цвета имели одинаковые hex коды, то они выглядели одинаково.

Такой подход казался мне логичным, но он оказался неверным.

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

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

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

50+ лучших дополнений к Bootstrap

Время на прочтение5 мин
Охват и читатели203K


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →

Введение в функциональное программирование на Python

Время на прочтение10 мин
Охват и читатели156K
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

a = 0
def increment1():
    global a
    a += 1


Функциональная функция:

def increment2(a):
    return a + 1


Вместо проходов по списку используйте map и reduce
Читать дальше →

Искусственный интеллект в Wolfram Language: проект по идентификации изображений

Время на прочтение13 мин
Охват и читатели26K
Перевод поста Стивена Вольфрама (Stephen Wolfram) "Wolfram Language Artificial Intelligence: The Image Identification Project".
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.


«Что изображено на этой картинке?» Люди практически сразу могут ответить на этот вопрос, и раньше казалось, что это непосильная задача для компьютеров. Последние 40 лет я знал, что компьютеры научатся решать подобные задачи, но не знал, когда это произойдёт.

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

И сейчас я весьма рад сообщить о том, что мы перешли новый рубеж: вышла новая функция Wolfram Language — ImageIdentify, которую можно спросить — «что изображено на картинке?» и получить ответ.

Сегодня мы запускаем Wolfram Language Image Identification Project — проект по идентификации изображений, который работает через интернет. Можно отправить туда изображение с камеры телефона, с браузера, или перетащить его посредством drag&drop в соответствующую форму, или просто загрузить файл. После этого ImageIdentify выдаст свой результат:

Give the Wolfram Language Image Identify Project a picture, and it uses the language's ImageIdentify function to identify it

Содержание


Теперь в Wolfram Language
Личная предыстория
Машинное обучение
Все это связано с аттракторами
Автоматически созданные программы
Почему сейчас?
Вижу только шляпу
Мы потеряли муравьедов!
Назад к природе
Читать дальше →

Ночные кошмары Питона: неявный `this`

Время на прочтение3 мин
Охват и читатели28K
Обсуждение статьи "Не совсем крутой Ruby" зашло достаточно далеко: недостатки и достоинства Ruby между делом перетекали в обсуждение недостатков и достоинств Python. Не сильно удивило то, что передача self в качестве первого аргумента метода класса, некоторым хабравчанам кажется лишней. Ну что ж, не хотите явного self, будет вам неявный this! Под катом, немного магии на чистом Python.
Читать дальше →

Отзывчивая анимация спрайтов с помощью ImageMagick и GreenSock

Время на прочтение6 мин
Охват и читатели11K
CSS спрайты – это не новинка. С того момента, как их популяризовали на «A List Apart» в 2004, простые спрайты стали основной техникой в наборе инструментов большинства веб-разработчиков. Но, несмотря на то, что преимущества скорости спрайтов вполне понятны, их использование в современной веб-разработке редко обсуждается. Принцип остается тем же: это комбинирование нескольких изображений в один «основной» графический элемент, из которого в каждый момент времени отображаются только определенные части.

В этой статье мы рассмотрим простой способ создания отзывчивых CSS спрайт-анимаций, которые мало весят, хорошо отображаются на мобильных устройствах и даже интерактивны. Вам не нужны никакие специальные графические редакторы, а только немного понимания CSS и JavaScript. Приступим.
Читать дальше →

Selenium для Python. Глава 3. Навигация

Время на прочтение6 мин
Охват и читатели176K
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →

Frame object в Python. Что с ним можно, а что нельзя (в production и другом приличном месте) делать

Время на прочтение6 мин
Охват и читатели29K
О Python на Хабре было много хороших статей. Как об особенностях реализации, так и о прикладных фичах, отсутствующих в других мейнстримных языках. Однако я с удивлением обнаружил (поправьте, если не прав), что есть одна важная тема, не раскрытая ни на Хабре, ни в русскоязычном интернете вообще. Эта статья будет посвящена такой штуке, как stack frame. Скорее всего она не скажет ничего, ну или может с учетом последнего пункта почти ничего нового опытным python-разработчикам, однако будет полезна новичкам (а может и вредна, но все примеры ниже).

Я постарался написать статью так, чтобы её было удобно читать, открыв параллельно repl и бездумно копировать туда код эксперементируя. Поэтому по возможности большая часть примеров имеет вид «однострочники в интерпретаторе».

Начнем мы немного издалека, с того что заметим, что Traceback это тоже объект, а потом найдем где там стековый кадр и уже перейдем к делу.
Читать дальше →

Подробно об объектах и классах в PHP

Время на прочтение25 мин
Охват и читатели99K
Сегодня объекты используются очень активно, хотя это трудно было предположить после выхода PHP 5 в 2005 году. Тогда я ещё мало что знал о возможностях этого языка. Пятую версию PHP сравнивали с предыдущей, четвёртой, и главным преимуществом нового релиза стала новая, очень мощная объектная модель. И сегодня, десять лет спустя, около 90% всего PHP-кода содержит объекты, не изменившиеся со времени PHP 5.0. Это убедительно говорит о том, какую роль сыграло внедрение объектной модели, неоднократно улучшавшейся на протяжении последующих лет. В этом посте я хотел бы рассказать о том, как всё устроено «под капотом». Чтобы люди понимали суть процессов — почему сделано так, а не иначе — и лучше, полнее использовали возможности языка. Также я затрону тему использования памяти объектами, в том числе в сравнении с эквивалентными массивами (когда это возможно).

Я буду рассказывать на примере версии PHP 5.4, и описываемые мной вещи справедливы для 5.5 и 5.6, потому что устройство объектной модели там почти не претерпело изменений. Обратите внимание, что в версии 5.3 всё не так хорошо с точки зрения возможностей и общей производительности.

В PHP 7, который пока ещё активно разрабатывается, объектная модель переработана не сильно, были внесены лишь незначительные изменения. Просто потому что всё и так хорошо работает, а лучшее — враг хорошего. Были добавлены возможности, не затрагивающие ядро, но здесь об этом речи не пойдёт.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность