Рубрика «особенности»

Что вернёт эта функция в Python? - 1

Всем привет! Сегодня хотел бы обсудить очень простой, но, на мой взгляд, интересный вопрос по Python и его внутреннему устройству. Как вы думаете, что вернёт эта функция:

def foo():
    try:
        return 1
    finally:
        return 2

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

Прежде чем давать ответ, давайте разберёмся, что происходит. Для начала рассмотрим самую простую функцию:

def foo():
    return 1

Распечатаем её байт код:

Читать полностью »

Приветствую тебя %username%. Прочитав статью о способах обхода sudo, решил тоже попробовать описать нечто подобное, но для языка Python. Спасибо root-me за такие задачки. Решая их, можно многое узнать о работе того или иного механизма. Прошу строго не судить, это моё первое творение.
Начнём!
Читать полностью »

Эта статья родилась по мотивам вот этой статьи в виде полу-шутки. В той статье большая часть "проблем" является либо синтетическими и крайне редко используемыми, либо притянутыми за уши из-за ожидания соответствия языка теоретической парадигме которой, по мнению автора, язык должен соответствовать. С другой стороны не упомянуты вещи, которые мне лично действительно усложняют жизнь.

Читать полностью »

Особенности поддержки 10 дата-центров по всему миру: мой опыт и грабли - 1
Это 2 Петабайта бэкапа

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

Вот пример. Стоят у нас в стойках серверы, по сути — дисковые полки, предназначенные для «медленных» данных бэкапов. Место на них кончалось. В каждом сервере было по 24 диска и 36 слотов, мы решили добить ещё по 12 HDD. Я отправил тикеты, объяснил, что мы делаем и зачем, добавил, что нужно поставить диски в неподсвеченные слоты.

Через 10 минут мониторинг показал, что у нас выпал диск в первом сервере. «Ничего себе, коллеги жгут», — подумали мы. Наверное, задели или ещё что-то… Но тут почти сразу выпали второй и третий диски. Я начал звонить в немецкий саппорт, и мне ответил коллега из Индии.Читать полностью »

У нас есть приложения для абонентов с личным кабинетом на Android и iOS. Когда число пользователей смартфонов WP в нашей сети перевалило за полмиллиона, мы, естественно, начали писать приложение. Учитывая количество потенциальных установок и тот факт, что у других операторов приложения на WP нет, Microsoft всячески помогала нам с информацией по особенностям ОС.

А особенностей было много. Например, выяснилось, что нативный контрол карты в SDK для Windows Phone 8.1 Runtime достаточно медленно работает с метками на карте, если их больше 5. Во время изменения положения и масштаба эти пины отстают от самой карты. Можно использовать MapIcon, но в этом случае не гарантируется, что пин будет показан на карте: например, его может перекрыть название улицы. Пришлось делать кастомный растровый слой на карте для улучшения производительности.

Зачем мы сделали приложение Билайн под Windows Phone и что в этой ОС есть такого, чего нет в iOS и Android - 1

Вторая сложность – в Windows Phone 8.1 Runtime SDK нет возможности отправить USSD-запрос из приложения или скопировать какой-то текст (номер USSD-запроса, например) в буфер обмена системы. Читать полностью »

В этой статье мы коротко пройдемся по особенностям foreach. Первый момент вы скорее всего знаете, второй момент вы скорее всего не знаете.

Предыдущая статья об особенностях C#.
Читать полностью »

В очередной раз наступив на досадные необязательные грабли, я решил систематизировать свои знания о них. Если вы какое-то время разрабатываете на C++, то можете и не найти здесь ничего нового, но кому-то приведенный в статье материал точно поможет. Если бы я знал это лет пять назад, то однозначно сэкономил бы несколько безвозвратно потерянных дней жизни и нервных клеток.

Чтобы было интереснее, материал представлю в виде простых задачек. Сразу подчеркну, что я не считаю приведенные примеры просчетами языка. Во многом появляется смысл и логика, если вопрос обдумать. Это скорее случаи, когда может отказать интуиция, особенно если голова забита чем-нибудь еще. Есть и пара примеров вида «Ну чего этому компилятору надо, только что то же самое работало!»

И последнее замечание. Это не будут задачи на внимательность типа «Тут я поставил точку с запятой сразу после for — а никто и не заметил». Проблемы не в опечатках. Все необходимые библиотеки можно считать подключенными — не относящийся к описываемой ситуации код я опускал, чтобы не загромождать статью.
Читать полностью »

В продолжении статьи «8 фактов, которые вы, возможно, не знали о C#» описывающей интересные моменты языка C#, представляю крохотный очерк. Очень жаль, что некоторые воспринимают такие статьи как “капитанство” отбивая всякое желание к написанию, но несмотря на это, в комментариях, порой, всплывает много полезной информации.

Итак, что возвращают функции поиска индекса в массивах, если элемент не найден?
Читать полностью »

Русское программирование. Еще одна точка зрения

Изображение для привлечения внимания. Синтаксис языка программирования выдуманный. Любое совпадение с реально существующим ЯП случайно

Хотелось бы продолжить тему особенностей работы в русских IT-компаниях и высказать свое мнение. Статья будет в некотором роде ответом на статью Основная особенность наших разработчиков.
Читать полностью »

Вот несколько необычных фактов о языке C#, о которых знают лишь немногие разработчики.

1. Индексаторы могут использовать params параметры

Мы все знаем, как обычно выглядят индексаторы x = something["a"], а так же код необходимый для его реализации:

public string this[string key]
 {
   get { return internalDictionary[key]; }
 }

Но знали ли вы, что для доступа к элементам вы можете использовать params параметры x = something["a", "b", "c", "d"]?
Просто напишите ваш индексатор следующим образом:Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js