Pull to refresh
21
0
Alexey Zhuchkov @zerodivisi0n

User

Send message

Пишем симулятор медленных соединений на Go

Reading time6 min
Views16K
В этой статье я хочу показать, как просто в Go можно делать достаточно сложные вещи, и какую мощь в себе несут интерфейсы. Речь пойдет о симуляции медленного соединения — но, в отличие от популярных решений в виде правил для iptables, мы реализуем это на стороне кода — так, чтобы можно было легко использовать, к примеру, в тестах.

Ничего сложного тут не будет, и ради большей наглядности я записал ascii-анимации (с помощью сервиса asciinema), но, надеюсь, будет познавательно.


Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments7

How-to: Что нужно учитывать при разработке первого торгового робота

Reading time7 min
Views43K
image

В нашем блоге мы уже писали о важных этапах разработки механических торговых систем, выборе стратегий работы на рынке и их тестировании на исторических данных. В сегодняшнем материале мы обобщим ранее изложенную информацию и расскажем о том, как новичкам на фондовом рынке стоит подходить к созданию своего первого торгового робота, чтобы избежать распространенных ошибок.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments11

Основы подхода к построению универсального интеллекта. Часть 1

Reading time16 min
Views17K

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


Область искусственного интеллекта (ИИ) принесла массу замечательных практических результатов в части автоматизации человеческой деятельности в самых разных сферах, что постепенно меняет облик нашей цивилизации. Однако конечная цель – создание по-настоящему разумных машин (сильного ИИ) до сих пор не была достигнута. В то же время, из ученых мало, кто действительно сомневается в том, что такой сильный ИИ в том или ином виде может быть создан. Если какие-то возражения и звучат, то они имеют религиозных характер, апеллирующий к наличию у человека нематериальной души. Но даже при столь радикальных воззрениях на нематериальный мир списывают лишь такие сложные концептуально феномены как свобода воли, творчество или чувства, не отрицая возможности наделения машины почти неотличимым от человека поведением. Гораздо менее однозначными являются ответы на вопросы, когда и как именно может быть создан сильный ИИ?
Читать дальше →
Total votes 42: ↑30 and ↓12+18
Comments132

Очень быстрый и эффективный способ расслабления глаз

Reading time4 min
Views412K

Предисловие


imageНе знаю, все ли программисты всесторонне любознательные люди, но я всегда пытаюсь получить фундаментальные знания во всех областях, которые могут быть практически полезны. В то время, когда мне в голову пришла эта идея я изучал анатомию и физиологию по журналам «Тело человека. Снаружи и внутри», ну а по работе я занимался стерео-варио фотографиями (для тех кто не знает — были такие советские календарики с ребристой поверхностью, где картинка либо казалась объемной, либо менялась). Так вот, в один из вечеров мне пришла в голову замечательная идея, которую я на протяжении уже 4х лет использую для поддержания своего зрения.
Обещаю, что эффект почувствуете сразу!
Читать дальше →
Total votes 246: ↑238 and ↓8+230
Comments207

Джентльменский набор интернет шоппера: Shipito + ProfitBid + TrackChecker

Reading time9 min
Views43K
На волне постов ненависти к Почте России легко прослеживается тот факт, что все большее количество людей покупают товар из заграниц. Тем самым не желая переплачивать Российским барыгам-ритейлерам подрывая политику государства в области импортозамещения. И я один из них.
Однако много препятствий чинит православным Россиянам виртуальный шоппинг, самое трудное из которых — страна проживания. К сожалению наша отчизна классифицируется большинством онлайн магазинов как страна третьего мира, не иначе, а поэтому и прямой доставки туда нам не видать.
Выходом из этого казуса, очевидно, является mail forwarding сервис.
Итак в данной статье речь пойдет о
  • нововведениях в сервисе-посреднике — Shipito
  • Сервисе, который возвращает процент с покупок на ebay.com/ca/uk, Amazon, Skype, GoDaddy — Profitbid
  • Наконец-то созданном юзером MetalFan отличном софте (полностью бесплатном) для отслеживания почтовых отправлений всех почтовый сервисов TrackChecker
  • Небольшом списке интересных магазинов


PS. В топике присутствуют мои реферральные ссылки.
PS2. Трафик.
Читать дальше
Total votes 114: ↑93 and ↓21+72
Comments68

Задачи для собеседования

Reading time3 min
Views4.3K
Я иногда провожу интервью кандидатов на работу. Помимо определения профессиональных навыков кандитата в мои обязанности входит «погонять человека по задачкам».

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

Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments94

Насколько крепка дружба между Java и С внутри Dalvik VM?

Reading time20 min
Views7.2K
В данной статье попытался очень подробно описать свои шаги при исследовании кода андроида и его выполнения в Dalvik VM. Мне было очень интересно узнать ответы, на вопросы:

  • Как выглядит код, генерируемый С? (с позиции ARM)
  • Как выглядит код, генерируемый Java?
  • Как и где происходит выполнение кода?

Поэтому данная статья разбита на 3 части.

Мне кажется ставить перед собой такие вопросы и изучить их — важный момент при последующем написании кода, ведь андроид уже наступил на пятки и не знать его также, как и один из своих любимых инструментов (например С) уже будет не правильно.

Читать дальше →
Total votes 122: ↑115 and ↓7+108
Comments14

Я хочу работать в Google! Телефонное интервью (часть 1)

Reading time4 min
Views31K
Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Читать дальше →
Total votes 207: ↑182 and ↓25+157
Comments99

Нечёткий поиск в тексте и словаре

Reading time13 min
Views260K

Введение


Алгоритмы нечеткого поиска (также известного как поиск по сходству или fuzzy string search) являются основой систем проверки орфографии и полноценных поисковых систем вроде Google или Yandex. Например, такие алгоритмы используются для функций наподобие «Возможно вы имели в виду …» в тех же поисковых системах.

В этой обзорной статье я рассмотрю следующие понятия, методы и алгоритмы:
  • Расстояние Левенштейна
  • Расстояние Дамерау-Левенштейна
  • Алгоритм Bitap с модификациями от Wu и Manber
  • Алгоритм расширения выборки
  • Метод N-грамм
  • Хеширование по сигнатуре
  • BK-деревья
А также проведу сравнительное тестирование качества и производительности алгоритмов.
Читать дальше →
Total votes 171: ↑170 and ↓1+169
Comments33

GC в C++: преодоление соблазна

Reading time4 min
Views8.7K
Недавно появилась заметка о простой и эффективной «ручной» сборке мусора в С++. Вполне допускаю, что локальная сборка мусора внутри какого-то сложного класса (где идёт активная низкоуровневая работа с указателями) может быть оправдана. Но в масштабах большой программы, существует более надёжный и простой метод избавления от утечек памяти. Не претендуя на «метод на все случаи жизни», очень надеюсь, что он сделает проще жизнь хотя бы некоторым из читателей.

Суть метода предельно проста: если каждый объект является переменной какой-либо области видимости или простым («стековым») членом другого объекта, то даже при аварийном закрытии программы от необработанного исключения, всегда будет происходить корректная очистка. Задача заключается в том, чтобы свести всё многообразие динамических сценариев к этой схеме.
Вот отсюда поподробнее...
Total votes 33: ↑28 and ↓5+23
Comments39

Core Data: импорт данных с минимумом кода

Reading time5 min
Views11K
Как и многие разработчики, я не очень люблю писать много кода, особенно там, где это кажется не нужным — на ранних стадиях стараюсь придумать, как этот код оптимизировать и обобщить. Что касается непосредственно Core Data, мне всегда казалось, что все эти бесконечные фетчи и создания новых объектов можно упростить. Тогда я открыл для себя часто упоминаемый на хабре паттерн ActiveRecord и его очень хорошую (на мой взгляд) реализацию на Objective-C — MagicalRecord. Углубляться в описание не буду — все очень доступно описано на странице проекта.
Следующим шагом упрощения должен был быть маппинг данных, поступающих извне.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Переезд проекта с SVN на Git

Reading time8 min
Views71K
image
Много лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
Читать дальше о том, как это делается от А до Я
Total votes 119: ↑113 and ↓6+107
Comments51

Вещи, о которых следует помнить, программируя на Python

Reading time5 min
Views64K

Дзэн Питона



Изучение культуры, которая окружает язык, приближает вас на шаг к лучшим программистам. Если вы всё еще не прочли «Zen of Python», то откройте интерпретатор Python и введите import this. Для каждого элемента в списке вы найдете пример здесь

Однажды моё внимание привлекло:
Читать дальше →
Total votes 154: ↑133 and ↓21+112
Comments27

Организация архитектуры взаимодействия Activity и Service

Reading time7 min
Views34K
Приветствую!

Сегодня я решил поведать Вам мой способ организации activity-service interaction в Android приложениях. Мотивирован топик тем, что достаточно часто можно встретить приложения, в которых, скажем, поход на сервер организовывается внутри активити в AsyncTask. При этом часто встречается верная мысль, что это надо делать в сервисах, но нигде в оф. документации нет ни слова об организации правильной архитектуры двустороннего взаимодействия между ними.

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

Об этом методе я буду рассказывать далее.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments37

Полезные штуки для iOS-разработчика #1

Reading time4 min
Views83K
На Хабре в свое время было несколько статей «Очень много полезных штук для AS3». Автор попытался собрать ссылки на самые полезные и интересные библиотеки. И т.к. в последнее время я разрабатываю под iOS, решил последовать его примеру и сделать то же самое, но для своей платформы. Описания почти прикладывать не буду, все есть на страничках проектов.
Читать дальше →
Total votes 114: ↑109 and ↓5+104
Comments80

Делиться не всегда полезно: оптимизируем работу с кэш-памятью

Reading time7 min
Views38K
Делиться с ближним своим для нас, божьих тварей, это очень характерно, считается добродетелью, и вообще, как утверждает первоисточник, положительно отражается на карме. Однако в мире, созданном архитекторами микропроцессоров, такое поведение не всегда приводит к хорошим результатам, особенно если это касается разделения памяти между потоками.

Мы все «немного читали» об оптимизации работы с памятью, и у нас отложилось, что полезно, когда «кэш остается горячим», то есть данные, к которым часто обращаются потоки, должны быть компактными и находиться в ближайшем к процессорному ядру кэше. Все так, но когда дело доходит до того, чтобы делиться доступом, потоки становятся злейшими врагами [производительности], а кэш не просто горячий, он аж «горит адским огнем» – такая во круг него разворачивается борьба.

Ниже мы рассмотрим простой, но показательный случай возникновения проблем производительности многопоточных программ, а потом я дам несколько общих рекомендаций, как избежать проблемы потери эффективности вычислений из-за разделения кэша между потоками.
Читать дальше →
Total votes 72: ↑68 and ↓4+64
Comments30

Кодим безумный пассивный сниффер в виде модуля для Python

Reading time6 min
Views36K


Сразу скажу: то, чем мы с вами будем здесь заниматься, не претендует, скажем, на какую-то промышленную применимость. Более того, я признаю, что мой код в данном примере может быть ужасен, страшен и ненужен. И тем не менее — почему бы не поперехватывать пакеты посреди недели? Так, слегка.

Итак, сегодня мы вот что наколдуем:

1. Реализуем простейший пассивный перехватчик пакетов для TCP и UDP
2. Засунем его в C-библиотеку в виде расширения для Python
3. Приделаем ко всему этому интерфейс итератора, дабы байты сыпались, как из рога изобилия
4.…
5. PROFIT!
Берите стул, садитесь ближе к камину
Total votes 66: ↑60 and ↓6+54
Comments15

Определеяем какая строка была нажата в UIPickerView

Reading time4 min
Views3.6K
Проблема

Недавно решил преукрасить интерфейс своего приложения элементом UIPickerView, но меня не совсем устроило, то, что мне предложил стандартный набор инструментов, а именно: прокрутить его так чтоб нужный элемент стал под «Selection Indicator» и потом выполнить какое-то действие. Мне нужно было чтоб по нажатию на любую строку посылалось сообщение с нужными параметрами. Поэтому я решил кастомизировать UIPickerView прикрутив к нему UITapGestureRecogniser.
Читать дальше →
Total votes 5: ↑3 and ↓2+1
Comments6

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity