• Студент в ИТ: учиться нельзя работать

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

    Мне никогда не сиделось на месте, и к окончанию второго курса я успела побывать в роли официанта, администратора, пораздавать предвыборные газеты и поварить пельмешки на дегустацию в супермаркете (до сих пор считаю, что это была первая и лучшая работа). Но в скором времени я поняла, что пора включать мозг, а не только обаяние, и принялась искать работу по специальности бизнес-аналитика.
    Читать дальше →
  • Integer Cube Root in Verilog

    Introduction


    We have created a synthesizable verilog code for calculating an integer cube root of an integer number via binary search algorithm. This code had been tested on Cyclone IV FPGA board. Here you can read about implementation and understand how things works.

    Github link: Cube root
    Читать дальше →
  • Опыт создания игры для Android в одиночку с нуля и как ее зафичерили на Google Play

    Привет! Меня зовут Ибрагим, я — начинающий инди-разработчик. У меня всегда было желание заняться программированием, но меня отпугивала сложность и неопределенность выбора (что именно изучать и делать). И лишь 2 года назад я все-таки преодолел этот психологический барьер, смог высвободить достаточно времени, и решил уже основательно подойти к задаче. Я был решительно настроен найти и освоить профессию, от которой я бы получал кайф.

    Сужать круг поиска, чем именно заниматься, было тяжело. Знакомых в этой области не было, поэтому решил отталкиваться от каких-то общих соображений. Так как в приоритете было в первую очередь найти что-то интересное, выбор пал на геймдев. Понравилась идея для начала сделать простенькую 2D-игру под Android и выложить на Google Play.
    Читать дальше →
  • Как Telegram-бот поборол дизайнерскую прокрастинацию и помог увеличить доход digital-агентства­

    Основатель digital-агентства Роман Квартальнов делится простым решением, которое помогло сделать производственные процессы прозрачными, дало возможность в любой момент времени оценить себестоимость проекта и компании целиком, а также экономить около 1 000 000 рублей на сборе отчетов с сотрудников.

    Знаете ли вы себестоимость работы вашей компании? Можете за 3 минуты получить доступ к информации о выполненной работе за вчера? А за неделю?

    Четыре года назад я открыл свою компанию. На старте у нас была небольшая команда. Очевидно, что чем меньше людей, тем лучше у них получается работать слаженно, быть единым организмом. К концу первого года мы начали активно масштабироваться и столкнулись с проблемами роста. В определенный момент мы просто потеряли контроль над процессами внутри компании и начали принимать решения хаотично. Есть такой термин – «хаотичное управление», его можно трактовать так: руководитель не имеет возможности прогнозировать риски, постоянно тушит пожары и не разбирается почему они происходят. У такого подхода есть 2 пути развития:

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

    2. Осознать, что пожаротушение развивается спиралевидно, т.е. время идет, задачи растут, ресурсы уменьшаются. В этом случае ваша цель — поднапрячься и выйти за рамки, встать над проблемами и постараться найти системные решения.

    Читать дальше →
  • Мерещится: ждать ли «криптовалюту» ко второму чтению «О цифровых активах»?

    «Не случайно мы встретились с вами здесь 7 ноября, в канун Революции!, — выдала на конференции по блокчейн в Санкт-Петербурге Элина Сидоренко, руководитель рабочей группы по оценкам рисков оборота криптовалюты Госдумы, — Самое время совершить переворот относительно стандартов работы на крипто рынке и стать примером для всех остальных стран». Как именно совершать переворот — спикер не уточнила. Но предупредила, блокчейн — хорошо, а вот децентрализация может довести до абсурда — появления сразу нескольких жен у участников крипто-сообщества в самых разных городах мира. Что называется: на пальцах о технологичном.
    Читать дальше →
  • Оптимизация скриптов с Webpack SplitChunksPlugin

    В этой статье я бы хотел поделиться своим опытом по разбиению бандлов для многостраничного сайта с помощью Webpack 4. Cначала создадим для каждой страницы свою точку входа. Рассмотрим на примере 4 страниц:


    const path = require("path");
    
    const PATHS = {
      src: path.resolve(process.cwd(), "src"),
      dist: path.resolve(process.cwd(), "dist")
    };
    
    module.exports = {
      entry: {
        common: `${PATHS.src}/js/common`,
        index: `${PATHS.src}/js/index`,
        contacts: `${PATHS.src}/js/contacts`,
        about: `${PATHS.src}/js/about`,
      }
    }

    При сборке для каждой страницы будет создан свой бандл. В точку входа common я вынес общие скрипты для всех страниц. Чтобы подключить наши бандлы на страницы воспользуемся плагином Webpack'a HtmlWebpackPlugin.


    Рассмотрим на примере:


      module.exports = {
      ...
      plugins: [
        new HtmlWebpackPlugin({
          filename: `${PATHS.dist}/index.html`,
          template: `${PATHS.dist}/index.html`,
          chunks: ["index", "common"]
        })
        ...
      ]
      ...
    };
    Читать дальше →
  • Как девочки помогли мне подружится с Django

    В данной статье я бы хотел поделиться опытом изучения языка программирования Python в целом и фреймворка Django в частности (с нуля, или почти с нуля).


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


    Чуть больше года назад я загорелся желанием изучить Python. После быстрого знакомства с синтаксисом (благо он мне показался дружелюбным) остро встал вопрос о реализации чего-то что можно было бы использовать в повседневной жизни, хотя бы в теории.


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


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

    Читать дальше →
  • Настройка IPTV от Ростелеком на роутерах MikroTik

    В свое время когда я купил роутер MikroTik, передо мной кроме базовой настройки инета встала задача обеспечить работу IPTV, до того момента у меня был установленный Ростелекомом D-link. Сама базовая настройка инета на микротике заняла у меня примерно 10 минут, а вот с IPTV пришлось повозиться. Все мануалы прочитанные мной тогда не учитывали многих моментов, до которых я дошел расковыряв настройки многострадального D-link-а и без которых работать в данной схеме ТВ нормально не будет. В этой статье я хочу обозначить полученную мной универсальную инструкцию в данной ситуации.
    Читать дальше →
  • Про социальные лифты. Конкурс «Лидеры России»

    Данная заметка является последствием прочтения недавней статьи на Хабре: “Карьерные стероиды. Лифты”. Спасибо автору. Прекрасная мотивация. Решил и я попробовать один из лифтов. Тот самый конкурс «Лидеры России» (конкурс управленцев).

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

    Читать дальше →
  • Настройка связки php-fpm + nginx под WSL

    Я — виндузятник и всячески увиливаю от окончательного перехода на Linux на своём PC не смотря на все его преимущества. Поэтому последние пару лет для создания локальных площадок под проекты использовал Docker for Windows. Не сказать что штука сверхстабильная, но существенных проблем не вызывала, пока на одном проекте на Laravel площадка не стала вести себя странно: часть запросов (и всегда разная часть) возвращались с ошибкой. Скрипт не мог открыть файл кэша.

    Бесполезно потратив изрядное количество времени на поиск причины решил в данном случае отказаться от Docker и развернуть площадку под WSL в ручном режиме.
    Читать дальше →
  • SoapUI, Postman и Katalon Studio: Обзор 3 лучших инструментов для тестирования API

    За последние пять лет, по данным Google Trends, значительно вырос интерес к тестированию API. Такая тенденция отражает сдвиг парадигмы в сторону web и мобильных приложений, а также разделение серверных служб и пользовательских интерфейсов.

    Чтобы помочь вам разобраться, какие же все-таки инструменты лучше всего подходят для автоматизации тестирования API, в этой статье для вас будет представлены обзор и сравнение трех популярных инструментов для тестирования API: SoapUI, Postman и Katalon Studio. SoapUI и Postman специализируются исключительно на тестировании API, в то время как, Katalon Studio предоставляет полный набор инструментов для тестирования API, Web и мобильных приложений.

    Katalon Studio


    Katalon Studio — это интегрированная среда для создания и выполнения тестирования при работе с API, Web и мобильных приложениями. Имеет богатый набор инструментов для тестирования и поддерживает множество платформ, включая Windows, Mac OS и Linux. Интегрируя движки от Selenium и Appium со всеми необходимыми компонентами, встроенными ключевыми словами и шаблонами, Katalon Studio предоставляет уникальную среду разработки как для тестировщиков, так и для разработчиков, занимающихся тестированием API и веб-автоматизации. Вот некоторые примечательные особенности инструмента:

    • Обработка API, Web и мобильных тестов на разных платформах
    • Возможность для тестировщики и разработчиков легко делиться и совместно работать над тестами
    • Сотни встроенных ключевых слов для создания тестов
    • Поддержка AssertJ для создания гибких проверок с использованием BDD стиля
    • Интеграция с другими инструментами ALM и интеграционного тестирования CI / DevOps

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

    1. Блокчейн — не то же самое, что эпоха интернета в середине 90х

    Хотя между состоянием интернета в середине 90х и блокчейном на сегодняшний день определённо есть сходства, отличия гораздо резче. Во-первых, интернет был создан в основном для связи. Именно человеческая потребность в связи обеспечила возможность централизации данных за последнее десятилетие.

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

    Цель блокчейна — противостоять текущей проблеме централизации данных. Таким образом, блокчейн, скорее, эволюция интернета, а конкретно — инфраструктуры данных, чем новый интернет. Его цель — создать децентрализованную систему данных, которую одному человеку взломать или использовать в своих целях не под силу.
    Читать дальше →
  • Настройка APC Smart UPS 1000 в Ubuntu server 14.04 LTS и установка модуля Webmin

    Началось все с того, что у меня сгорел служивший верой и правдой много лет Back-UPS 500VA. Не беда, подумал я и заменил его на APC Smart UPS 1000, что для моего сервера оказалось гораздо лучше. Сразу скажу, изначально сервер работал на форточках и проблем с бесперебойником не было. После замены ИБП и окончательно-бесповоротном переходе на Ubuntu я задался вопросом: собственно, как мониторить состояние сети электропитания и состояние бесперебойника? Погуглив некоторое время, я наткнулся на несколько инструкций по подключению бесперебойников к никсовым машинам, но почему-то они все были про Back UPS и USB. В частности, меня натолкнуло на написание этой статьи аналогичная статься на Хабре «Начальная настройка ИБП APC в Linux с точки зрения чайника».

    Но у меня же старенький тысячник с ком-портом и про USB он и слыхом не слыхивал.
    Читать дальше →
  • Навигация в 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, потому что зачем для Москвы использовать гугл карты, если есть наши. Сейчас расскажу, как все прошло.


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

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