• Навигация в Android: от UX до реализации. Часть 1

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

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

    В этой серии статей мы поговорим об этих проблемах и рассмотрим основные решения. Если вас заинтересовала эта тема, то прошу под кат
    Читать дальше →
  • Asterisk на Mikrotik. Обновленная настройка

    На написание этой заметки (статьей не назовешь, ибо все уже давно разжевано в статье Asterisk на Mikrotik) меня толкнули изменения в интерфейсе Winbox, а так же изменения репозиториев OpenWRT в связи с помещением в архив устаревших версий, на которые ссылается оригинальный пост. Начну с истории: у меня на работе имеется виртуальная АТС, на которую я без стеснения привязал SIP-клиент на телефоне. По правилам провайдера доступ для внутренних звонков не блокируется, но доступ наружу, хоть и можно подключаться с любой точки мира, блокируется при частой смене IP, чего избежать на мобильном устройстве проблематично. Пересмотрев всевозможные варианты я остановился на поднятии у себя дома Asterisk на моем Mikrotik RB2011UiAS-RM. Благодаря инструкции от shadowalone я миновал львиную долю танцев с бубном, но в связи с устаревшими ссылками пришлось-таки заняться мелким шаманством. Итак:
    Читать дальше →
  • Удаление директории в PHP

    Доброго времени суток, дорогие читатели. Сегодня хотелось бы поговорить на тему удаления директории в PHP. Казалось бы, что операция не является сложной, однако некоторые нюансы имеют место быть. Давайте рассмотрим способы, как можно это сделать.

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

    В сети советуют написать функцию, которой в качестве аргумента будет передаваться путь к директории, которую нам необходимо удалить. В теле функции необходимо организовать листинг содержимого директории, в рамках которого осуществляется проверка — является ли файл директорией. Если файл является директорией, то по данному условию функция вызывает себя. Это необходимо для зачистки вложенных директорий, и это будет работать на всех уровнях вложенности. В ином случае, для файла применяется функция unlink() — она предназначена для удаления файла. За рамками данной проверки на последнем шаге мы удаляем директорию.
    Читать дальше →
  • Медленный regexp, умирающий Node.js


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


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


    В один прекрасный момент все инстансы сервиса на Node.js один за одним перестали отвечать на health-check, слать логи и метрики. Пришлось остановить эти контейнеры (мы запускаем Node.js в Docker) и запустить новые.

    Читать дальше →
  • Планшет Wacom, драйвер не отвечает или не работает, решение проблемы

    Приобрёл я недавно планшет One by Wacom (CTL-671), установил драйвер с диска, сделал всё по инструкции и ничего не запускается.


    Пишет следующее: "Драйвер планшета не отвечает".


    Драйвер планшета не отвечает
    Читать дальше →
  • «Статья про минет»: ученые обработали 109 часов орального секса, чтобы разработать ИИ, который сосет член

    Привет, Хабр! Представляю вашему вниманию перевод статьи Саманты Коул (Samantha Cole) c motherboard.vice.com.

    Анонимные специалисты по машинному обучению написали «статью про минет», чтобы сделать эту машинку для отсоса более реалистичной.


    Autoblow AI, секс-игрушка для пользователей с пенисом, состоит из резинового рукава и расположенного внутри корпуса электродвигателя, и пытается имитировать оральный секс. Ее кампания на Indiegogo была запущена на прошлой неделе и быстро достигла своей цели в 50 000 $. Ее главное преимущество над предыдущей моделью, Autoblow 2, выпущенной в 2014 — это алгоритм машинного обучения, который «постоянно меняет технику», чтобы удовлетворить пользователя новыми способами.

    Вместо повторяющихся, механических движений, этот «режим искусственного интеллекта» обещает воспроизвести сложные и непредсказуемые движения настоящего, человеческого минета. Чтобы сделать это, компания попросила команду из шести человек просмотреть и аннотировать 109 часов порно и наняла специалистов по машинному обучению, чтобы создать модель, обрабатывающую эти данные и транслирующую их в то, что делает игрушка. Вся работа заняла три года.
    Читать дальше →
  • Мой (нано)опыт с Yandex.Maps API или зачем нужна инструкция

    Introduction


    Я андроид разработчик и...
    Мне довелось допиливать небольшой проект(~500h), в котором на старте было принято решение использовать Yandex.Maps API, потому что зачем для Москвы использовать гугл карты, если есть наши. Сейчас расскажу, как все прошло.


    Я не проводил глубоких подкапотных исследований и никаких секретов не открою. Но, если вам, как и мне, надо очень быстро (вчера) начать использовать в вашем проекте карты, надеюсь, помогу сэкономить немного времени.

    Читать дальше →
  • Просто о простых числах…

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


    Кто-нибудь всерьёз задумывался что минимально необходимо для вычисления последовательности простых чисел от первого до N? Взять всё необходимое и отбросить всё лишнее — рецепт успешной стратегии. В данном случае необходимо взять на вооружение все быстрые операции и отбросить все трудоемкие, вроде деления. А тот, кто решил описать простые числа через операции деления, похоже, сыграл злую шутку с человечеством. Шли тысячелетия, а а люди так и продолжают делить…

    Читать дальше →
  • Проверка на XSS уязвимости, сайта на основе Yii2

    В yii по умолчанию используется шаблонизатор для view чистый php. К сожалению, это может привести к ошибкам экранирования вывода. Разработчик выводимый контент должен экранировать, используя Html::encode(), либо аналог. Обычно, для поиска подобных ошибок, пентестер забивает во все возможные поля форм код вида:

    <script>alert(document.cookie);</script>


    Потом проходиться по всему проекту и смотрит что упало. Но иногда бывает, что форма выводиться не полностью. Если же атрибуты будут посланы явно отдельным запросом Post, то будут загружены в модель. Либо сейчас заполнить атрибут через форму пользователь не может, и все хорошо, а через месяц форма меняться, параметр становиться доступен для редактирования, и где-то в совсем другой части проекта проявляется XSS.
    Читать дальше →
  • Зачем нужен геймдизайнер?

    Дисклеймер
    Это мое понимание и я считаю такой подход верным, сейчас. Моя задача — поднять уровень проработки проектов у начинающих девелоперов и заставить задуматься профессионалов.

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

    И тут на сцену выходит геймдизайнер.

    Читать дальше →
  • Анимации для игры, грабли, шишки, костыли — Unity 3D, Anima 2D, Dragon bones, Spine

    Дисклеймер
    Материал посвящен тем кто разрабатывает игры, хочет начать это делать, начинающим аниматорам, художникам и всем кто работает с Unity 3d.

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


    Начало работы с Unity


    Итак, ты придумал игру, идею и упаковал ее адекватно(99% начинающих этого не делают), разработал игровые механики, формулы, задатки сюжета, разработал увлекательный геймплей, что дальше?
    А дальше идет выбор — 2D или 3D проект. Конечно это должно быть сделано на этапе идеи, но бывают ситуации, когда после геймплейного прототипа появляются варианты и выбор. И это, черт возьми, самое ужасное что может случится, очевидно же 2D — проще для начинающих. Тут кроется вся боль и сама суть дальнейших страданий.
    Читать дальше →
  • Дальтоник — друг человека (Минздрав не Прав)

    Так получилось, что мне пришлось окунуться в тему нарушения цветопередачи имея уже почти 40 лет за плечами. И дело не в том, что я без проблем вожу машину более 15 лет, и не в том, что какие-то оттенки цветов не дают мне насладиться красотой мира, и точно не в том, что родные и близкие иногда не понимают, почему я изредка называю цвета «чужими именами»…
    Интернет пестрит статьями о дальтонизме, переполненными медицинскими терминами и описанием колбочек, которых у некоторых людей в глазах не достаточно, зачастую написанными теми, кто сам не может оценить, как это всё работает (точнее не работает у некоторых).

    Благодаря достижениям современной науки у людей с «якобы» (ниже я напишу, почему это слово здесь стоит) нарушенной цветопередачей появилась возможность взглянуть на мир другими глазами. Правда пока эта возможность в России (особенно не жителей МСК и СПБ) достаточно тяжело реализуема. Появление очков типа Enchrome, OxyIso, Pilestone может помочь при некоторых формах дальтонизма, но цена и отсутствие большого разнообразия препятствуют развитию прогресса в России.

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

    Амбула


    По английски units это units, а по сербски = енот. Желающим написать, что слова "амбула" нет, я его дарю.


    Благодать


    Спорьте = не спорьте, в большинстве, обычные люди  хотят себя чувствовать хорошо = стремятся к благодати: есть, двигаться, обладать… программировать.

    Читать дальше →
  • Создание загрузочной флешки c HirensBootCD в mac os

    Предисловие: в моем случае нужен был загрузочный usb накопитель c "HirensBootCD", но потратил день я так и не нашел нормальной статьи как его сделать из под mac os, а также все они были основаны на установки образа с помощью "Unetbootin и Eather".


    В итоге все заканчивается тем что usb накопитель не грузится. Почему так ?


    Возьмем "Unetbootin" он просто напросто не создает загрузочную область на usb накопителе по крайне мере в mac os, а "Eather" не умеет создавать загрузочную область если ее нет изначально в образе iso, но зато установочные образы live linux подобные успешно грузятся.


    И так начнем.

    Читать дальше →
  • Размер домашней библиотеки имеет значение

    Привет, Хабр! Представляю вашему вниманию перевод статьи Growing Up Surrounded by Books Could Have Powerful, Lasting Effect on the Mind

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

    Исследования уже показали, что книги могут помочь улучшить работу мозга, уменьшить стресс и даже сделать нас более чуткими. Теперь команда во главе с Джоанной Сикорой из Австралийского национального университета изучает преимущества взросления в книжной среде. Как сообщает Alison Flood из Guardian, обширное новое исследование предполагает, что дома с обширными библиотеками могут давать детям навыки, которые сохраняются во взрослой жизни.
    Читать дальше →
  • Метод получения статус кодов при работе с Selenium

    Добрый день.

    Недавно столкнулся с проблемой при проведении UI тестов: Selenium не имеет функции получения статус кода страницы. Как оказалось в дальнейшем, разработчики Selenium специально не предусмотрели данную возможность т. к. это противоречит концепции симуляции работы пользователя (подразумевается что пользователь не способен посмотреть статус код ответа).
    Читать дальше →
  • Руководство по достижению роста. Перевод книги The Growth Handbook

    Данная статья является выдержкой из перевода книги The Growth Handbook от Intercom. Перевод осуществлен продуктовой командой CallUpper (сервис для увеличения количества лидов с сайта) для русскоговорящих друзей-продуктологов. Кому интересно, книга доступна для бесплатного скачивания на сайте.

    Итак…
    Читать дальше →
  • Не бойтесь начинать заново

    Введение


    В данной публикации речь пойдет о личном опыте разработки одного из проектов.

    Хочется отметить в первую очередь что я не позиционирую себя как какой-то super-senior developer.

    Все, что я здесь описал, пришло через боль и слезы разработки данного проекта. Для многих это статья покажется ни о чем.

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

    Все проблемы при проектировании основаны на том, что нет ни концепции, ни технического задания, отсутствие полной видимости проекта со старта разработки.
    Читать дальше →
  • Технарям — зачем уметь писать и с чего начать

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

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

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

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

    P.S.: Я не претендую на истину. В интернете полно книг и блогов о редактуре и работе с текстом. Большинство — для редакторов и авторов. Можно читать их, а можно мою выжимку — постараюсь вытащить то, что нужно технарям.
    Читать дальше →