• Сбор требований для чайников и технарей

    Вступление


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

    Опыт создания клиент-серверного приложения для автоматизации регистрации доменных имен на сайте хостинг провайдера.


    Часть первая: структура проекта.


    Один из клиентов попросил о помощи в проекте для автоматизации регистрации бесплатных доменных имен на сайте провайдера в автоматическом режиме.


    Я ознакомился с сайтом и обнаружил там много JavaScript и было принято решение использовать симуляцию пользовательской активности на сайте с помощью таких инструментов, как Сhromium и Lazarus-IDE на стороне сервера, с установленным там Linux Debian.


    Я приступил к тестированию своего решения.


    image

    Читать дальше →
  • Как почувствовать себя калькулятором. Создание своего первого мобильного приложения от идеи до публикации

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

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

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

    Увидев Unity, я понял, что вот он мой спаситель и именно вместе с ним я покорю вершины Play Market. И я начал взахлеб изучать материл связанный с Unity и языком C#, все больше убеждаясь, что я нашел своего спасителя.
    А время все шло, а я не решался полностью перейти на Unity. Я все никак не мог придумать, а, чтобы такого на нем сделать? Но вот наступил день, когда все закрутилось и завертелось.
    Читать дальше →
  • Головоломка под названием «0x712» (GIF-анимация с белыми точками на чёрном фоне)

    Около месяца назад я придумал и опубликовал на Reddit головоломку, которую, вероятнее всего, до сих пор никто не разгадал (иначе я, скорее всего, узнал бы об этом):


    0x712

    Чтобы сохранять интерес, просьба не давать подсказки к разгадыванию в комментариях. Если кто-то разгадает, я сообщу о самом факте разгадывания в комментариях, но не более того.
  • Почему веб-разработка на Go приятнее чем на PHP

    Для кого я пишу? Для тех кто пишет на php (возможно также python, ruby) и слышал про Go, но ещё не решился его изучить детальнее. Я приведу доводы почему стоит изучать этот язык программирования и почему за ним будущее в веб-разработке.
    Читать дальше →
  • Почему некоторые языки программирования живут, а другие умирают?

    Привет, Хабр! Представляю вашему вниманию перевод статьи «Why Do Some Programming Languages Live and Others Die?».

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

    Он собирается заменить языком под названием Go почтенные языки С и С++, обеспечив более быстрые средства для создания очень больших платформ программного обеспечения в центрах обработки данных. Также языком Dart он собирается заменить JavaScript, улучшив способ построения программного обеспечения, которое запускается в наших веб-браузерах.

    Но не имеет значения, насколько эти новые языки впечатляющи, вы удивитесь, как много времени им потребовалось, чтобы действительно завоевать популярность – если это вообще произошло. В конце концов, новые языки программирования появляются всё время. Но очень редко каким удаётся заполучить широкую публику.
    Читать дальше →
  • Как создать инди-игру на Android и IOS



    Представим себе, что у вас возникла мысль создать игру, хотя вы никакого отношения к разработке программного обеспечения не имеете. Вы можете быть прыщавым студентом или ленивым геймером, но, не будем вдаваться в подробности кто вы и откуда эта мысль возникла. Возможно, вам на голову упало яблоко или в вас ударила молния! Главное, что у вас появилась цель создать игру и вы хотели бы пройти долгий путь от идеи до выпуска.

    Читать дальше →
  • Логирование всех POST и GET запросов



    Простой способ вести логи средствами php. Статья рассчитана для новичков в программировании.
    Бывают ситуации, когда необходимо посмотреть входящие запросы ко всем файлам CMS, либо к файлам в отдельно взятой директории. При большом числе посетителей сайта, анализ файлов access.log становится затруднительным.

    Представленный ниже пример отлично справляется с этой задачей. Данный способ ведения логов рекомендуется использовать «здесь и сейчас», непосредственно на время отладки. В отличие от стандартного способа, предлагаемого любым нормальным хостинг-провайдером, в данном примере не предусмотрена очистка логов, а по сему его стоит использовать кратковременно, во избежание разрастания файлов post.log и get.log. Данный модуль позволяет записывать лог всех POST и GET запросов к php файлам в выбранной папке (включая вложенные папки).
    Читать дальше →
  • Ошибки начинающего project-менеджера на личном опыте

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

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

    Читать дальше →
  • Catboost для самых маленьких

    18 июля 2017 года компания Яндекс выложила в открытый доступ свою новую разработку – Catboost. И всё с ним хорошо и документация имеется, инструмент простой и понятный, как оказалось.

    Предыстория
    Через некоторое время после выхода Catboost автору нужно было выбрать тему выпускной квалификационной работы. Руководитель ВКР предложил несколько тем на выбор и среди них была «Классификация музыкальных записей по жанрам». Интересная тема, с научным уклоном, да и средства реализации уже имеются.

    Время шло и нужно было уже начинать работу над ВКР. Была собрана информация по теме, скачаны отрывки музыкальных записей различных жанров, намечен алгоритм. Однако, изучение Catboost было осложнено тем, что автор не имел опыта работы с машинным обучением, а все статьи с примерами и документация были рассчитаны на определённый уровень знаний и опыта по теме (да, маленький. Но начать – всегда самое сложное).

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

    В итоге, нужная информация была найдена чёрт знает где и вновь её отыскать довольно проблематично.
    Читать дальше →
  • Как провести ICO и не потерять доверие

    Кто не слышал про ICO? В двух словах, это сбор инвестиций с помощью криптовалют, так называемый “краудсейл”. Таких кампаний становится всё больше: в прошлом году их количество удвоилось, а в этом уже было проведено столько же, сколько в 2017. Проекты набирают миллионы долларов, но и теряют немало! До сих пор на слуху прошлогодние потери проекта CoinDash в результате взлома: около 10.000.000 $. При это часто самих основателей проектов подозревают в нелегальном выводе денег таким образом.

    Согласно исследованию Ernst & Young, более 10% всех инвестиций в ICO просто теряются: в результате хакерских атак, в результате фишинговой и скамминговой активности. Как так выходит? Общая специфика проведения краудсейла такова: langing page с информацией, публичные персоны-организаторы, личный кабинет инвестора, заранее известные сроки проведения. Это играет на руку злоумышленникам, они вырабатывают сложные схемы и атакуют ICO. Разберем всё по порядку.


    Читать дальше →
  • Стоит ли участвовать в российских IT-мероприятиях

    Однажды я рассказал, как съездил с докладом на TAdviser SummIT 2018, и что из этого вышло в плане нетворкинга и проверки бизнесовых гипотез для разработчика софта (кому интересно — дам ссылку, а то вдруг сочтут рекламой). Обещал сравнение саммита с двухдневным сколковским Startup Village — выполняю.

    image
    Читать дальше →
  • Создание игры Ping-Pong на C# и .NET

    Вступление


    Привет, Хабр! В среде .NET есть компонент Graphics. Он позволяет рисовать в .NET форме.
    Сегодня я расскажу о создании игры Пинг-Понг на C#.

    Для начала немного истории о самой игре. Игра был сделана компанией Atari в 1972 году.
    Цель игрока отбивать мяч и не промахнуться.

    image
    Читать дальше →
  • ClosedXML чтение и запись Excel файлов

    На работе потребовалось сделать маленький проект на asp.net MVC и в нем необходимо обрабатывать Excel файлы и отдавать информацию в этом же формате. Причем нужно бесплатное решение. На хабре нашел пример с OpenXML, но мне данное решение показалось сложным.

    В итоге посмотрел различные варианты (от csv файла до генерации xml) и больше всего приглянулся вариант с ClosedXML.

    Далее приведу простое решение, которое считает файл в контроллере и сформирует ответ с применением стилей. Дабы не перегружать пример не буду создавать модель данных и т.п.
    Читать дальше →
  • Как настроить подсветку Brackets в Sublime Text 3

    Введение



    Здравствуйте. Этот мини гайд для тех, кто хочет настроить подсветку Brackets (скобочек), как, например, в notepad++, при этом не используя сторонних плагинов.

    image

    Для этого нам понадобится сам Sublime Text 3, программа-архиватор, официальная документация.
    Читать дальше →
  • Установка Elastix 2.Х

    Здравствуйте, дорогие хабровчане. На днях мне поставили задачу перенести нашу IP-телефонию с классического серверного Asterisk-a с его CLI на более упрощённый вариант для пользователя с web-интерфейсом. Ключевой момент в том, что использовать решили старую добрую GNU версию Elastix 2.Х, которая ничем ограничена.

    В результате решения данной задачи столкнулись с проблемой любого заброшенного ПО: не рабочие образы, которые в принципе не устанавливали систему; нерабочие репозитории, файлы которых снесли на зеркало, а зеркала на другое зеркало.
    Читать дальше →
  • Экономика продукта. Анализ выручки

    В прошлой статье [https://habr.com/sandbox/121807/] я рассказал о начале анализа продукта с его валовой прибыли. Продолжим подход "top-down" и разложим на составляющие выручку.
    Общая картина теперь будет такой:


    Читать дальше →
  • Фреймворки — больше минусов чем плюсов

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

    Сразу оговорюсь, что с автором я полностью согласен и всего лишь хотел бы добавить свои «три копейки». Сначала думал сделать это прямо в комментах под статьей, но быстро понял, что «копейки» получаются довольно объемные. Так и родился этот текст.
    Читать дальше →
  • Excel vs Таблицы Google

    Пример из практики. Понадобилось разобрать вот такие строки из 0 и 1, что на фото 1 в ячейке A2.

    image

    Это кусочки BMP, что, впрочем, неважно.

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

    Для данного примера нужно было получить на выходе 1 2 1 2 7.

    Можно было начать с распределения символов по столбцам, использовав штатную Экселевскую приблуду Данные/Текст по столбцам. Однако, это требует ручной установки 31 разделителя, что, конечно же, влом. Хотелось, чтобы было так: загрузил на лист кучку байт и сразу получил результат.

    Поэтому пришлось нагородить набор костыликов.

    В ячейке B2 избавился от лишних нулей формулой СЖПРОБЕЛЫ. Предварительно пришлось нули заменить на пробелы формулой ПОДСТАВИТЬ, а после сжатия вернуть их на место этой же формулой.

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

    В D2 — формула (видна на фото 2).

    image

    Находит позицию первого нуля. В E2 — второго и т.д. Как видим, в сжатой последовательности (B2) первый ноль — в позиции 2, второй — в 5-й, третий — в 7-й и 4-й ноль — в 10-й. В последовательности всего 4 нуля, и поэтому в H2 отобразилась бы ошибка #ЗНАЧ, если бы не обработка этой ошибки формулой ЕСЛИОШИБКА. Она заменяет #ЗНАЧ на 99. «Почему 99?» — вы можете спросить. Это число нам понадобится в дальнейших расчетах, терпение.
    Читать дальше →