Search
Write a publication
Pull to refresh
20
0
Send message

Учим Python качественно

Reading time4 min
Views1.4M
Здравствуйте всем!

Решил поделиться методом обучения сего мощного, но в одно и тоже время лёгкого языка программирования. Он действительно лёгкий. Вам не надо будет запоминать и вводить лишних символов, которые Вы можете встретить в Си-подобных языках.

Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП), мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?
Читать дальше →

Руководство новичка по эксплуатации компоновщика

Reading time32 min
Views217K
David Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).

Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).

Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
g++ -o test1 test1a.o test1b.o
test1a.o(.text+0x18): In function `main':
: undefined reference to `findmax(int, int)'
collect2: ld returned 1 exit status

Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
Читать дальше →

Поиск@Mail.Ru, часть вторая: обзор архитектур подготовки данных больших поисковых систем

Reading time11 min
Views36K

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


В прошлый раз мы с вами вспомнили, как стартовал в 2010 году Go.Mail.Ru, и каким Поиск был до этого. В этом посте мы попробуем нарисовать общую картину — остановимся на том, как работают другие, но сначала расскажем о поисковой дистрибуции.
Читать дальше →

Интервью с Чарльзом Уэзереллом, автором книги «Этюды для программистов»

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



Книга содержит 27 “этюдов”. Каждый этюд – это законченная содержательная задача для обучающихся программированию. Удивительно, книге более 30 лет, но любой из этюдов может быть до сих пор использован по назначению. Сам, будучи фанатом книги, до сих пор храню родной бумажный вариант русского издания, а относительно недавно таки приобрел оригинал на английском.

Увы, о самом авторе было очень мало информации, и более того — не было продолжения или новых книг, чтобы крайне странно после столь хорошей первой книги.

Волею судеб, недавно у меня появилась возможность связаться с Чарльзом и взять у него интервью.
Читать дальше →

Какой SIP-сервер выбрать: SER, OpenSER, Kamailio, OpenSIPS? Что в них общего и в чем разница?

Reading time8 min
Views54K
У многих администраторов voip-сетей, сталкивающихся с sip-серверами слова ser, openser, kamailio, opensips вызывают по меньшей мере головокружение. Почему их так много? Почему так похожи? Какие активно развиваются, а какие уже нет? Какой в конце-концов выбрать?

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

Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами

Reading time3 min
Views294K
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
Читать дальше →

Ментальные ловушки

Reading time3 min
Views128K
Данная статья является кратким конспектом по книге "Andre Kukla: Mental Traps"

Ментальные ловушки — это так называемые грабли, на которые мы наступаем снова и снова. Безусловно каждый нормальный человек хочет, чтобы этот «неудачный шаг» в его деятельности был последним и больше не повторялся.

С «граблями» или ментальными ловушками можно легко справиться, если они лежат перед вами во всей красе, безо всякой маскировки. Но так бывает далеко не всегда и зачастую мы не видим и не понимаем в чем заключаются наши ошибки. Целью этой статьи является знакомство с наиболее «популярными» ментальными ловушками, которые Андре Кукла описал в своей книге.
Читать дальше →

Wi-Fi: неочевидные нюансы (на примере домашней сети)

Reading time14 min
Views1.4M
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[!!]: после замечаний касательно публикации первой части привожу текст целиком. Если вы читали первую часть — продолжайте отсюда.
Читать дальше →

Автомасштабирование в Amazon Web Services: EC2 + CloudWatch

Reading time4 min
Views15K
Добрый день!

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

В качестве инициатора маштабирования будет выступать Cloud Watch. Метрикой будет наша кастомная метрика Load Average.

Итак, начнём-с. Первое, как тру линуксоид, я советую и рекомендую использовать в настройке автоскейлинга утилиты командной строки (Command Line Tools — CLT) по следующим причинам:
  • из CLT можно сделать всё;
  • удобнее копипастить в консоль, чем кликать мышкой.

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

Первое знакомство с ядром линукс версии 3.3 и 3.4

Reading time9 min
Views8.3K
Далее — перевод статьи с сайта IBM. Вряд ли вы узнаете что-то принципиально новое из неё. Данную статью хорошо использовать как отправную точку для чтения об интересных или ранее неизвестных вам особенностях Линукс. Часть ссылок я привёл в тексте статьи курсивом, часть можно увидеть в конце оригинальной статьи. Мои пояснения или комментарии выделены курсивом.

В релизы ядра Линукс версий 3.3 и 3.4 вошло впечатляющее количество улучшений. Однако эти релизы не просто развитие ядра, но зловещий рубеж на пути этого развития.
Релиз версии 3.3 — первый релиз ядра линукс, объём которого превысил 15 миллионов строк (пусть даже по откровенно кривому способу измерения). Если вы вычтете изменяемую, непостоянную часть кода (различные драйвера, платформозависимый код и различные утилиты), число строк падает немного ниже 4 миллионов — левиафан собственной персоной.
Читать дальше →

MHook vs Zuma

Reading time9 min
Views5.7K
Тут не совсем про зуму, и не совсем про mhook. Дело в том, что я сделал небольшую обертку над mhook (чтобы помочь своему труду), хотел бы показать что получилось, как я его использую, и получить немного конструктивной критики. А чтобы не использовать синтетических примеров, пойду по накатанной, и поиздеваюсь над zuma. Рассказывать я буду в такой последовательности: сначала пара слов (действительно мало) о том как перехватывает mhook, потом немного о том как я это использовал, затем опишу что я все-таки сделал, и закончу тем, что вживлю пару электродов в любимую жабку. Так что сами можете решать что вам интересно, и соответственно, с чего начинать читать.
Читать дальше →

Пять способов улучшить Raspberry Pi

Reading time3 min
Views174K
Стремительно набирает популярность одноплатный компьютер Raspberri Pi. Стремясь сделать его как можно дешевле, разработчики выкинули все «лишнее» и максимально упростили конструкцию там, где это было возможно. С одной стороны, это вынуждает пользователя терпеть некоторые неудобства при работе с системой. Но с другой стороны, оставляет простор для творчества и усовершенствований.

Итак, вашему вниманию предлагается обзор пяти полезных модификаций для Raspberry Pi.
Читать дальше →

Как решить проблему 10 000 соединений?

Reading time1 min
Views28K


Способы решения этой проблемы, поднятой еще в 2001 году программистом Дэном Кегелем, рассматриваются в девятой лекции курса «Сетевое программирование в UNIX», подготовленного специалистами SkyDNS и компании «Айдеко». За подробностями – добро пожаловать под кат.
Читать дальше →

Заказчик-Исполнитель: избегаем ДТП

Reading time5 min
Views12K
Вместо эпиграфа.
«- Ты что – глухонемой?
-Да»
к/ф «Бриллиантовая рука»


Попал я как-то в ДТП – один хороший человек так спешил домой к теще на блины, что не заметил перед собой мою машину. Приехал на станцию, там сделали «дефектовку», определили, что делать и срок ремонта – 3 недели. Конечно, хотелось быстрее, но мне объяснили, что СТО загружена, плюс пару деталей надо ждать, плюс технологический процесс: рихтовка, грунтовка, сушка, покраска, опять сушка. «Совсем как у нас в проектах, — подумал я, — проектирование, реализация, тестирование, исправление багов, приемочное тестирование заказчиком, опять исправление багов».

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

Все же, факт возврата машинки радовал несказанно, и в прекрасном настроении в тот же день я поехал к заказчику. Заказчик, весьма приятный в общении дяденька, увидев меня, почему-то изменился в лице: «Какого хрена вы ничего не делаете? Когда будут результаты? Мы работаем уже второй месяц, сдвигов по проекту нет! Менеджеры ваши непонятно куда пропали. Они на работу ходят или нет?». Машинка внезапно перестала радовать. «Как это нихрена не делаем?», — лихорадило в мозгу. «Вчера ж было совещание, смотрели систему, все ж по плану».
Читать дальше →

Я не могу написать бинарный поиск

Reading time11 min
Views208K
Недавно (буквально два года назад) тут пробегала статья Только 10% программистов способны написать двоичный поиск. Двоичный поиск — это классический алгоритм поиска. Мало того, это еще чрезвычайно простой алгоритм, который можно очень легко описать: берем отсортированный массив, смотрим в середину, если не нашли там число, в зависимости от того, что в середине — ищем это число этим же методом либо в левой части, либо в правой, откидывая средний элемент. Для функций также, просто берем не массив, а функцию. Все очень и очень просто, алгоритм описан почти везде, все баги словлены и описаны.

Так вот, я не могу реализовать двоичный поиск. Для меня он ни капельки не тривиален. Наверное, я ненастоящий программист. А ведь так и есть, я всего-лишь студент, но ведь это не оправдание? Если точнее, я не могу реализовать хороший корректный красивый двоичный поиск. Все время у меня вылезает проблема либо с корректностью, либо с красивостью, либо и с тем, и с другим. Так что, да, заголовок немного желтоват.
Прежде чем читать этот топик, напишите свою версию бинарного поиска — для отсортированного массива. Причем, в зависимости от параметра, поиск должен выдавать или первый элемент, или любой из дублирующих. Еще для сравнения, напишите бинарный поиск для функций

А в чем, собственно, проблема?

Cisco Call Manager and Skype connect

Reading time2 min
Views7.1K
Для одного проекта было решено протестировать Skype Connect для совместного сосуществовния с Call Manager. Заодно разобратся как это работает и можно ли всю эту связку использовать в продакшене для уменьшения счетов за телефонию.
Читать дальше →

Основные ошибки при открытии небольшого Интернет-магазина

Reading time4 min
Views84K
Основные ошибки при открытии небольшого Интернет-магазина
В предыдущей статье мы описали на что нужно обращать внимание при открытии небольшого интернет-магазина. Теперь представляем список основных ошибок при открытии такого интернет-магазина.
Читать дальше →

Подключение точек доступа к контроллеру Cisco Wi-Fi

Reading time8 min
Views122K
Пользуясь первым руководством из моего цикла статей, вы настроили и подключили к локальной сети ваш контроллер беспроводных точек доступа Cisco WLC. Доступ к нему есть, но «вайфая юзерам» пока ещё нет. Следующий ваш шаг — подключить к контроллеру имеющиеся в наличии точки доступа, которые и будут обслуживать радио-клиентов. О том, как это сделать, и пойдет речь сегодня.
Читать дальше →

Контакт есть, сигнала нет

Reading time21 min
Views151K

или как рассогласованные линии портят ваш сигнал


На форуме Dangerous Prototypes я однажды принял участие в одном обсуждении, посвященном проблемам с шиной SPI, кторая переставала нормально работать, начиная с некоторой длины. Мой опыт подсказывал мне две вещи: 1) проверить источник питания, 2) проверить линию на наличие отражений. Тогда я понял, что это должно быть общей проблемой для всех радиолюбителей. Линии передачи данных — сложная тема, и настало время снять покров таинственности с этой электронной магии.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity