Как стать автором
Обновить
4
0

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

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

Рассматриваем под лупой отладчик Delve для Go-разработчиков

Время на прочтение6 мин
Количество просмотров8.7K

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

Сегодня есть множество IDE, поддерживающих работу с Go и позволяющих отлаживать приложения. На текущий момент для Go представлены два отладчика: GDB (но он не поддерживает многие фичи языка, например Go-рутины) и Delve. Многие IDE используют последний как дефолтный отладчик. И в этой статье я расскажу о возможностях Delve: о том, что умеет сам отладчик, а не что нам предоставляет IDE.

Читать далее
Всего голосов 34: ↑33 и ↓1+32
Комментарии0

Привлекаем внимание технологов (и не только «Норникеля»)! Визуализация ML-модели на «архивных» данных

Время на прочтение11 мин
Количество просмотров4.8K

Идет очередной этап работы датасаентиста… обучена ML-модель, которая снизит издержки, повысит эффективность, сделает жизнь лучше, ничего не изменит, зато звучит модно. И вот настало время презентовать результаты ее работы. Если вы, как и я, работаете в промышленности, то на запланированную встречу наряду с менеджерами наверняка пригласят технологов с производства - именно они будут пользователями вашей системы, и успешность проекта может во многом зависеть от их заинтересованности и вовлеченности в совместную работу. Раз надо их заинтересовать, сделаем!

Привет, Хабр! Меня зовут Владимиров Дмитрий, я data scientist в группе анализа данных компании Норникель. Я хочу поделиться тем, как настроить интерактивную визуализацию работы ML-модели использую связку Python+Postgres+Grafana.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Алан Кей: Будущее нельзя построить постепенно

Время на прочтение13 мин
Количество просмотров21K
Наименее важное время в которое мы живём — это настоящее.
Алан Кей

image

Ещё в 2014 году, когда Алан Кей выступал с этой речью в Сан Франциско, один друг присутствовал там лично. Его крайне впечатлило выступление, и он попросил перевести его для исследователя, который уже в возрасте и не знает английского. Искренне интересуясь теми, кто двигает мыслью в Долине, я согласился. Перевод лежал невостребованным долгое время, но вдруг пришла шальная мысль: взять и опубликовать.
Спасибо MagisterLudi за редакцию и помощь!


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

Большие Данные — это ниша, в которой многие сегодня пытаются делать деньги, которая также является любимицей маркетологов из-за её вездесущности. Все слышат фразу, но не все знают её значение, именно это служит отличным поводом чтобы маркетологам говорить: “это использует Большие Данные, то использует Большие Данные”. Но интересное будущее лежит за значением, за смыслом, а не данными. Стивен показал вам идею, которая у большинства людей и не появлялась — что если бы язык программирования реально знал что-нибудь о своём пользователе, о контексте, что если бы он знал бы что-нибудь и обо мне. Эти идеи довольно стары, и появились тогда, когда и многие скачкообразные открытия. Но они не были поняты в 80-е, и были просто отброшены. И это интересная тема для размышления.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии16

Разработка SELinux-модуля для приложения

Время на прочтение5 мин
Количество просмотров15K

Давным-давно, в далекой-далекой стране


… государственная служба NSA разработала систему безопасности для ядра и окружения Linux, и назвала ее SELinux. И с тех пор люди разделились на две категории: disabled/permissive и enforcing. Сегодня я покажу вам путь Силы и переведу на другую сторону всех желающих.

Предположения


В тексте будет содержаться много технической информации, поэтому автор предполагает, что читатель:

  • Имеет какое-то приложение (демон), которое должно работать с SELinux
  • Просмотрел разницу между DAC, MAC и RBAC
  • Знаком с администрированием Linux
  • Что-то читал про SELinux и может расшифровать user_u:user_r:user_home_t:s0
  • Имеет под рукой CentOS 7
  • На котором установлены пакеты setools-console, policycoreutils-devel, selinux-policy-devel
  • И включен SELinux в режиме permissive с политикой targeted или minimum

Это все про вас? Тогда поехали!
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии4

Android Tips and Tricks

Время на прочтение13 мин
Количество просмотров47K
В данном материале можно будет увидеть различные инструменты и подсказки, которые здорово облегчают жизнь Android разработчикам. Большая часть собрана напрямую от знакомых разработчиков и содержит вещи, которые должен знать каждый. Дополнения и расширения приветствуются, и если вы знаете о каком-то крутом механизме, который не был упомянут в статье, не поленитесь перейти в оригинал и открыть pull request.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии18

Что в имени тебе моем: как качественно «пробить» человека в сети Интернет?

Время на прочтение5 мин
Количество просмотров196K
Мы постоянно встречаемся в своей жизни с новыми людьми, и стоит констатировать, что помимо хороших друзей нам попадаются мутные товарищи, а иногда и отъявленные мошенники. Любовь наших сограждан оставить свой след в интернете и старания наших ИТ-компаний по автоматизации всего и вся позволяют нам довольно оперативно собирать интересующую информацию о конкретных персонах по открытым источникам. Чтобы это делать быстро и качественно, нам нужно владеть простой методологией разведывательной работы и знать, где и какую информацию о человеке можно добыть в интернете.
Читать дальше →
Всего голосов 90: ↑70 и ↓20+50
Комментарии56

Аутентификация и авторизация в микросервисных приложениях

Время на прочтение11 мин
Количество просмотров214K

Автор: Вячеслав Михайлов, Solutions Architect

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

Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии15

Кукла

Время на прочтение13 мин
Количество просмотров6.6K


Переделанный из полевой лаборатории, бронированный фургон с замазанной, но всё ещё различимой надписью «Chemical Synthetics Inc» остановился у края шоссе.

Через несколько минут дверь со стороны водителя открылась и из фургона вышел человек в кислородной маске и жёлтом защитном комбинезоне с эмблемой корпорации – стилизованным изображением молекулы бензола. На его теле не было ни одного открытого участка: голову закрывал капюшон, плотно прилегающий к маске, руки защищали перчатки, прижатые манжетами рукавов, брюки были заправлены в высокие армейские ботинки.
Читать дальше →
Всего голосов 39: ↑26 и ↓13+13
Комментарии22

Добавляем в Android-приложение систему локального поиска

Время на прочтение13 мин
Количество просмотров19K
Многие программы нуждаются в функции поиска. Сегодня мы рассмотрим пример реализации подобного функционала в приложении для ресторана. Наша основная цель – дать пользователю возможность быстро и легко найти в меню из множества блюд то, чего ему хочется.

Мы расскажем о том, как добавили функцию локального поиска по содержимому существующего приложения и при этом сохранили единообразие пользовательского интерфейса. Мы рассмотрим здесь изменения, внесённые в пользовательский интерфейс и причины этих изменений, так же поговорим о добавлении в элемент класса Activity объекта GestureOverlayView и о создании собственных жестов. Естественно, особое внимание будет уделено поиску.


Экран результатов поиска в приложении ресторана
Читать дальше →
Всего голосов 19: ↑12 и ↓7+5
Комментарии7

Mikrotik. Failover. Load Balancing

Время на прочтение12 мин
Количество просмотров284K
Когда у меня встала необходимость разобраться, как сделать failover или load balancing, имея два и более каналов в мир, я нашел множество статей и инструкций, в которых описывались рабочие конфигурации. Но почти нигде не нашел разъяснения, как все работает, и описания отличий разных вариантов. Хочу исправить эту несправедливость и собрать простейшие варианты построения failover и load balancing конфигураций в одной статье.

Итак, у нас есть роутер, который соединяет нашу локальную сеть и два канала в интернет (основной ISP1 и резервный ISP2).

Давайте рассмотрим что же мы можем сделать:

Сразу предупрежу: несмотря на то, что в этой статье буду все описывать для mikrotik, не буду касаться темы скриптов
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии45

Трагизм непризнанности и ранимая гениальность. Великие умы в истории криптографии США

Время на прочтение13 мин
Количество просмотров12K


Трагическая история непризнанного гения. Эдвард Хепберн

Американец Эдвард Хепберн посвятил дисковым шифраторам лучшие порывы своего таланта. Хепберн был в таком восторге от своего творения, что даже написал целую оду в честь дискового шифратора.

На Западе появилось удивительное изобретение.
Это триумф многолетнего, неустанного, терпеливого труда
Решена многовековая, сложнейшая проблема.
Создан изумительный, совершенный шифр…
Его достоинства столь очевидны, что ни одно государство в мире
Не может его игнорировать.
Он – результат глубоких исследований, продиктованных необходимостью.
Теперь «Хеберн электрик код» властвует над всеми шифрами.
Рыцарь радио, страж сокровищ,
Мозг нации, гарант полной безопасности,
Сердце корабля, хранитель жизней
В борьбе грубой силы против интеллекта…
Непостижимая, хитроумнейшая загадка для науки,
Настолько глубокая, что берегитесь, коварные предатели!
Вокруг вас расставлена невидимая гениальная западня.
Мировая война продемонстрировала его крайнюю необходимость,
Ученые всех государств участвовали в жестоком состязании.
Лучшие умы человечества стремились добиться успеха.
И сейчас в центре мирового внимания – американское изобретение.

Громкое заявление, не правда ли?

Хепберн заинтересовался криптографией только в возрасте 40 лет. Изначально он создал шифрсистему, в которую входили две электрические пишущие машинки, соединенные между собой 26 проводами. Когда нажималась какая-либо клавиша на одной машинке, это приводило к тому, что на другой печаталась буква шифртекста. Провода оставались подсоединенными к одним и тем же контактам на протяжении всего периода
Читать дальше
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Мелочи разработки на Android для начинающих

Время на прочтение4 мин
Количество просмотров41K
В связи со стремительным развитием мобильных технологий, IT-компаниям все больше требуются разработчики мобильных приложений для своих продуктов. Наша компания не стала исключением. В моем распоряжении оказалось два падавана, которых надо было обучить премудростям разработки на Android (к слову сказать, парни были умные и способные, но практически без опыта). Было решено написать им небольшую памятку касательно основных аспектов разработки. Выкладываю ее на суд хабрапользователей.
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии16

Почему OpenVPN тормозит?

Время на прочтение3 мин
Количество просмотров181K
Описанная проблема присуща только ветке OpenVPN 2.3, в 2.4 размеры буферов не меняются без требования пользователя.

Время от времени, мне встречаются темы на форумах, в которых люди соединяют несколько офисов с использованием OpenVPN и получают низкую скорость, сильно ниже скорости канала. У кого-то это может быть 20 Мбит/с при канале в 100 Мбит/с с обеих сторон, а кто-то еле получает и 400 Кбит/с на 2 Мбит/с ADSL/3G и высоким пингом. Зачастую, таким людям советуют увеличить MTU на VPN-интерфейсе до чрезвычайно больших значений, вроде 48000, или же поиграться с параметром mssfix. Частично это помогает, но скорость внутри VPN все еще очень далека от канальной. Иногда все сваливают на то, что OpenVPN — userspace-решение, и это его нормальная скорость, учитывая всякие шифрования и HMAC'и. Абсурд!

Немного истории

На дворе июль 2004 года. Типичная скорость домашнего интернета в развитых странах составляет 256 Кбит/с-1 Мбит/с, в менее развитых — 56 Кбит/с. Ядро Linux 2.6.7 вышло не так давно, а 2.6.8, в котором TCP Window Scale включен по умолчанию, выйдет только через месяц. Проект OpenVPN развивается уже 3 года как, к релизу готовится версия 2.0.
Один из разработчиков добавляет код, который устанавливает буфер приема и отправки сокета по умолчанию в 64 КБ, вероятно, чтобы хоть как-то унифицировать размер буфера между платформами и не зависеть от системных настроек.
Читать дальше →
Всего голосов 90: ↑89 и ↓1+88
Комментарии61

Установка, настройка и тестирование Fedora 21 Workstation на личном или игровом компьютере

Время на прочтение37 мин
Количество просмотров204K
9-го декабря вышла новая Fedora 21 Workstation, которую по совокупности параметров можно назвать «самым свежим и стабильным» Линукс-десктопом.

За время использования и тестирования Fedora я проникся к этой платформе глубокой симпатией и хочу поделиться этим теплом и знаниями о ней с вами.

В течение года я наблюдал за её работой в качестве рабочего и игрового места в разных ситуациях — от станций с «умирающим» железом до нового игрового ноутбука Asus G750JM с Nvidia Optimus.

Собранные заметки получились несколько шершавыми, старающимися охватить одновременно и новичков в Линуксе, и опытных пользователей с разработчиками. Прошу простить. Хочу донести большой объем информации в одной статье: и по общей настройке и установке Федоры, и по технологии Nvidia Optimus на ноутбуках, wi-fi с проприетарными драйверами, о настройке симпатичных шрифтов в Java и IDE от JetBrains, запуску игр в Steam на дискретной видеокарте, о результатах сравнительного тестирования игр, графики и браузеров между Федорой и Windows 8.1, и даже об установлении одного «абсолютного» рекорда.

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

Читать дальше →
Всего голосов 55: ↑49 и ↓6+43
Комментарии44

Два способа разработки программного обеспечения, или Одна ночь из жизни программиста Миши

Время на прочтение9 мин
Количество просмотров53K


«Две тропинки идут рядом: путь жизни и путь смерти… Люди не идут никаким путём, ни путём жизни, ни путем смерти. Вихрь носит их, как солому.»
Густав Майринк, «Голем»

В офисе было тихо и темно, лишь стук клавиш и редкие щелчки мыши нарушали едва различимое жужжание кулера, да широкоформатный монитор освещал измождённое лицо regular developer'а Миши. Сторонний наблюдатель мог бы подумать, что идёт обычная рабочая ночь с пятницы на субботу. Так оно и было для тысяч других разработчиков по всему миру, но только не для Миши. Поставив очередную пустую бутылку под стол, он внезапно почувствовал, что граница, отделяющая его от гордого титула «senior developer», не так уж и далека.

«Я встаю не раньше полудня, работаю до двух часов ночи и выпиваю за раз до трёх литров пива. Наверное, я становлюсь профессионалом», — подумал Миша, и в этот самый момент почувствовал на себе чей-то тяжёлый взгляд. То, что он увидел, подняв глаза от монитора, заставило его замереть от ужаса. Две фигуры в серых балахонах стояли по обоим сторонам его стола. Лица, скрытые низко надвинутыми капюшонами, смотрели сурово, и в то же время безразлично. Страшно было пошевелить хотя бы пальцем или вздохнуть, а сознание отчаянно отказывалось верить в реальность происходящего — ведь Миша узнал этих двоих. Старшие коллеги рассказывали ему, что всякий раз, когда кто-нибудь подбирается к мистической грани между простым разработчиком и старшим, к нему приходят эти двое, чтобы посвятить в свои мрачные тайны.

Миша сглотнул и тихо спросил дрожащим голосом:

— Тим-лид Коля? Проджект-менеджер Изя? Рабочий день уже давно закончился, что вы здесь делаете? И к чему весь этот маскарад?
Читать дальше →
Всего голосов 258: ↑228 и ↓30+198
Комментарии87

Lumix GF3 — хакнут

Время на прочтение1 мин
Количество просмотров26K
Ура!
В продолжение предыдущего топика сломанного GF2
Виталий Киселев добавил в свою программу Ptools новый lumix GF3 анонсированный прошлым летом.

Главное преимущество — разлочка битрейта видео, разлочка 30 мин. лимита, разлочка на все языки, включение Progressive развертки. К примеру, мой GF2 с 17mbps разгоняется до 100mbps (как классно для хромакея, верно?), но я остановился на 33mbps.

В связи с тем, что пользователи Canon MarkIII (4000$) фрустрируют, смотря на то, как камера Lumix GH2 (1000$) практически уделывает MarkIII, популярность хакнутых прошивок от Виталия возрастает.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии55

Google Web Mercator: неоднозначная система координат

Время на прочтение10 мин
Количество просмотров52K
Первого октября 2014 года американское Национальное Агентство Геопространственной Разведки (NGA) опубликовало отчет, в котором изложена критика системы координат Web Mercator, используемой во множестве картографических веб-сервисов. К документу прилагалось подробное разъяснение проблемы и рекомендации для партнеров NGA. Документ получил большой резонанс, но далеко не все статьи, основанные на этом отчете, отличались точностью и грамотностью изложения. Это касается, например, статьи на сайте ГИС Ассоциации, которую, по причине грубейших ошибок в терминологии, можно считать безграмотной. Поскольку именно с этой системой координат разработчики веб-сервисов сталкиваются чаще всего, я считаю, что есть смысл разобраться в проблеме.
Подробности
Всего голосов 42: ↑41 и ↓1+40
Комментарии16

Простыми словами о преобразовании Фурье

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Всего голосов 203: ↑192 и ↓11+181
Комментарии188

Алгоритм Х или что общего между деревянной головоломкой и танцующим Линком?

Время на прочтение5 мин
Количество просмотров67K


Предисловие


Как-то в гостях мне в руки попалась головоломка, в которой из 25 одинаковых фигурок требовалось собрать куб. Я провозился с ней почти весь вечер, и как можно догадаться, абсолютно безрезультатно. Тем не менее, я не мог сдаться просто так.

Не можешь сам — заставь компьютер. Сказано — сделано. В результате написанному по наитию алгоритму пришлось работать всю ночь, чтобы найти все 4 уникальных решения. В процессе гугления решений для сравнения, я нашёл программу Burr Tools, которая справилась с этой задачей за 3 минуты на моём ноутбуке.

Такая разница в скорости заставила меня разобраться, как решается эта задача и ещё целый класс подобных.

Так как же решается эта задача и ещё целый класс подобных?
Всего голосов 145: ↑141 и ↓4+137
Комментарии14

JetBrains — разработка под Android для лентяев

Время на прочтение1 мин
Количество просмотров79K
Хотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:

* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
Читать дальше →
Всего голосов 104: ↑93 и ↓11+82
Комментарии54
1

Информация

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