• Часть 4. Карьера программиста. Junior. Заход во фриланс

      Продолжение рассказа «Карьера программиста».

      Смеркалось. И прямо, и косвенно. Я с большим усердием искал работу программистом, но не было никаких вариантов.

      В моем городе было 2-3 объявления на 1С-разработчика плюс, редкий случай, когда требовались преподаватели курсов программирования. Был 2006-ой год. Я начинал учебу на 4-ом курсе университета, но родители и девушка недвусмысленно мне намекали, чтобы я искал работу. Да я и сам хотел. Поэтому пройдя пару собеседований на должность препода курсов и не снискав там удачи, я уже было ринулся осваивать «1С: Бухгалтерию». С багажом в десятки прочитанных книг и сотней написанных программ на С++/Delphi и Java — я от безнадеги начал учить 1С.

      Но к моему счастью, кабельный интернет уже «завезли» в наш город, и можно было попытать счастья дав объявление о поиске работы на сайтах. Имея почту на mail.ru и нередко туда заходя, я нашел для себя раздел объявления и написал там про весь свой богатый опыт в области разработки ПО. Я уже писал в прошлой части, что первые десять ответов на мое объявление, были в духе — «напиши Гейтсу». А вот 11-ым, был парень, который развернул мою судьбу на 180 градусов, так же, как в свое время это произошло на первом занятии на курсах программирования.

      Мне в ящик упало письмо, примерно такого содержания:
      Читать дальше →
    • Блеск и нищета: как цифровая революция сделала музыкантов беднее

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

        Но, к сожалению, статус «звезды» как таковой не является источником дохода. Музыканты, даже известные, порой сталкиваются с финансовыми трудностями на протяжении всей карьеры.

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

        Читать дальше →
      • Чётные числа Фибоначчи

        Навеяно комментарием под постом Фибоначчи на собеседовании. Пользователь pavellyzhin упомянул следующую задачу на собеседовании (комментарий):
        Больше года назад откликнулся на вакансию «php-программист», прислали ТЗ и там было задание с Фибоначчи: выбрать все четные числа Фибоначчи в диапазоне от 1 до 10000. Решил с помощью цикла(for). Еще там нужно было SQL-запрос составить на выборку ближайших дней рождений пользователей, что-то сверстать, точно не помню и какую-то функцию написать. Все сделал, отправил. Прислали ответ: «по итогам тестового задания Вы не приняты». Что конкретно им не понравилось так и не написали. Вот сейчас сижу и думаю, наверное все-таки из-за Фибоначчи пролетел… :)
        В данном посте я собираюсь показать как можно было решить эту задачу эффектно, а может даже и эффективно, но это не точно. Заодно продемонстрирую парочку из тысяч доказанных про числа Фибоначчи фактов.
        Читать дальше →
      • Отсеиваем простые из миллиарда чисел быстрее, чем в Википедии

          (Источник рисунка )

          Общеизвестно, что Решето Эратосфена (РЭ) один из древнейших алгоритмов, появившийся задолго до изобретения компьютеров. Поэтому можно подумать, что за века этот алгоритм изучен вдоль и поперек и добавить к нему ничего невозможно. Если посмотреть Википедию – там море ссылок на авторитетные источники, в которых запросто утонуть. Поэтому удивился, когда на днях случайно обнаружил, что вариант, который в Википедии преподносится как оптимальный, можно заметно оптимизировать.
          Читать дальше →
        • Почему города сопротивляются внедрению Amazon Go, первых магазинов без касс



            Amazon надоело доминировать только на онлайн-рынке. После открытия своего первого уникального магазина без касс в Сиэтле в начале прошлого года, эти супермаркеты IT-гиганта, следящие за вашими покупками с помощью AI и камер, начали появляться во многих крупных городах Америки. В планах фирмы – захватить вообще весь офлайн-ритейл, в ближайшие годы открыв еще как минимум 3000 этих автоматических супермаркетов в США. Но далеко не всем нравится такое движение в будущее. Многие города и даже целые штаты почему-то пытаются запретить появление Amazon Go на своей территории.

            Читать дальше →
          • Чему инди-разработчики могут научиться у инди-писателей

            • Translation
            image

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

            Но представьте рынок, на котором такие рекомендации неприменимы. На нём нет таких вещей, как Steam Launch Visibility Round или рекомендации в App Store. Что, если нет прессы, с радостью пишущей обзоры? И что, если вместо 7667 игр, выпущенных в Steam в 2017 году, в тот же год выпущено больше 100 000 новых книг? А общее количество книг на рынке превышает 4 000 000 наименований?
            Читать дальше →
          • 20+ ресурсов, чтобы начать фрилансить

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


              Читать дальше →
            • Масштабируем блокчейн сохраняя децентрализацию с Fairlayer

                Как многие уже заметили, комиссии в биткоине последнее время стабильно держатся в районе 10-20 баксов за простой перевод.

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

                Логично, что увеличив блок мы сможем вместить больше людей а значит отложить проблему? С одной стороны — да — так поступил Bitcoin Cash вся суть которого сводится к увеличению блоксайза до 8Мб.

                С другой стороны — нет. Об этом, и о разработанном блокчейне Fairlayer который элегантно решает эту проблему — под катом.
                Читать дальше →
              • Мой любимый алгоритм: нахождение медианы за линейное время

                • Translation
                image

                Нахождение медианы списка может казаться тривиальной задачей, но её выполнение за линейное время требует серьёзного подхода. В этом посте я расскажу об одном из самых любимых мной алгоритмов — нахождении медианы списка за детерминированное линейное время с помощью медианы медиан. Хотя доказательство того, что этот алгоритм выполняется за линейное время, довольно сложно, сам пост будет понятен и читателям с начальным уровнем знаний об анализе алгоритмов.
                Читать дальше →
              • Обзор доходности Hashflare. Мой опыт за 6 месяцев

                image

                В этой статье я хочу поделиться с вами своим опытом работы с сервисом облачного майнинга Hashflare.
                 
                Не буду описывать прелести и недостатки самого сервиса, в интернете и так уже написано немало статей-обзоров про него. Наверняка если вы попали на этот пост — о сервисе вы уже имеете какое-то представление и скорее находитесь в поиске реальных цифр о нем. Что ж, их есть у меня.

                Сервисом пользуюсь с июня 2017г, все это время веду табличку с финансовыми результатами по нему. В этом посте и пойдет речь об этой табличке, постараюсь выделить основные аспекты и показать какова реальная доходность с Hashflare.
                Читать дальше →
              • Освещение растений белыми светодиодами — проверочная работа

                Эта статья написана под впечатлением от другой статьи на GT, о чем говорит похожее название. Дело в том, что этой темой я интересуюсь лет двенадцать и потому статья iva2000 вызвала довольно живой отклик в моем сознании. Результаты и выводы меня почти убедили, но остались моменты, с которыми я не согласен. Решил всё пересчитать и так как результат получился довольно объемный, я решил написать его в виде отдельной статьи, а не комментария.

                Прочитав заголовок и вступление, я был настроен критически. Еще бы! Я сам производил расчеты, куча людей производит и использует специальные фитолампы (не только светодиодные — посмотрите на люминесцентные светильники в любом цветочном магазине!), а тут некто заявляет, мол, всё это туфта, белые светодиоды не хуже. Но ознакомившись до конца, я свое мнение изменил и понял что в этом мнении есть существенная доля истины, но надо разбираться… Всем кто не читал эту статью — убедительная просьба ознакомиться для лучшего понимания, т.к. для сокращения объема и исключения дублирования информации я буду только ссылаться на данные указанной статьи, но не повторять их. Остальные же — давайте продолжим!
                Читать дальше →
              • Веб-приложение на Node и Vue, часть 5: завершение работы над проектом

                • Translation
                Перед вами перевод пятой части руководства по разработке веб-решений на базе Node.js, Vue.js и MongoDB. В первой, второй, третьей и четвёртой частях мы рассказывали о поэтапном создании клиентской и серверной частей приложения Budget Manager. Те, кому не терпится увидеть в действии то, что в итоге получилось у автора этого материала, могут заглянуть сюда. Кроме того, вот GitHub-репозиторий проекта. Если вы — из тех, кто ценит строгую типизацию, то здесь и здесь находятся результаты переноса Budget Manager на TypeScript.



                Сегодня работа над этим учебным проектом завершится. А именно, в данном материале пойдёт речь о разработке страниц по добавлению в систему записей о новых клиентах и финансовых документах, а также о создании механизмов для редактирования этих данных. Здесь же мы рассмотрим некоторые улучшения API и доведём Budget Manager до рабочего состояния.
                Читать дальше →
                • +17
                • 10.3k
                • 1
              • Проблемы эгоистов: дорожные пробки и парадокс Браеса

                • Translation

                Строительство более широких дорог может ухудшить ситуацию с дорожным движением. Обычно этот контринтуитивный и контрпродуктивный результат объясняют следующим образом: чем больше дороги, тем более крупные торговые центры они привлекают, что в свою очередь привлекает больше автомобилей. Но это ещё не вся история. В 1960-х Дитрих Браес обнаружил теоретическую конфигурацию дорог, в которой строительство новой соединительной дороги может замедлить движение каждого, даже если количество машин остаётся постоянным. И наоборот, закрытие одной дороги в сети Браеса позволит всем добираться домой быстрее. Такое явление настолько странно, что заслуживает собственного определения — «Парадокс Браеса».

                Несколько лет назад Джоел Коэн сказал мне, что парадокс Браеса может стать хорошей темой для моей колонки в «Computing Science». Я засомневался. Опубликовано уже немало обсуждений этого парадокса, в том числе потрясающие статьи самого Коэна, а также книга Тима Рафгардена (обзор которой я написал для American Scientist). Я не считал, что смогу добавить что-то новое к дискуссии.

                Однако недавно я начал рассматривать задачу визуализации парадокса Браеса — представлении его таким образом, чтобы мы могли наблюдать отдельные автомобили, едущие через дорожную сеть, а не просто вычислять средние скорости и время в пути. Возможность поэкспериментировать с моделью — понажимать рычаги и кнопки, попробовать разные алгоритмы маршрутизации — может привести к более чёткому пониманию того, почему хорошо информированные и имеющие собственный интерес водители могут выбирать маршрут, который в результате тормозит всех.
                Читать дальше →
              • Разработка HTML5 игры под Android с нуля и до релиза

                  Вместо вступления


                  Потратив несколько суток подряд (без перерыва на сон) на изучение поддержки HTML5 всеми любимыми Android-гаджетами, решил, что данной теме стоит уделить внимание. В статье постараюсь раскрыть по шагам все этапы (конечно же базовые/ключевые/основные) создания HTML5 Игрового приложения для Android от идеи до релиза самого APK файла. Возможно, ничего нового я и не открою маститым разработчикам, но для новичков постараюсь описать все как можно проще, со скриншотами и пояснениями.

                  image

                  Желающих узнать подробнее приглашаю под кат.
                  Читать дальше →
                • Решение, которое нужно принять, чтобы не жалеть о жизни через 30 лет

                  • Translation


                  «Определение ада: «Тот человек, которым вы стали, в свой последний день на земле встретится с человеком, которым вы могли бы стать».
                  — Автор неизвестен


                  Читать дальше →
                • История создания домашнего облака. Часть 1. Настройка среды Debian для повседневного использования

                  • Tutorial
                  Когда-то давно, в 2011 году, я пришёл на хабр со статьёй «Debian Server для новичка», которая представляла из себя систематизацию различной информации и представление её в актуальном и работоспособном виде. Данная статья так же позиционируется как справочный материал для новичка или обычного пользователя Linux, этакий мой небольшой вклад в популяризацию Linux. По сути, всё о чём я буду писать – это некая развёрнутая инструкция по установке и настройке домашнего облачного сервиса Nextcloud с нуля.



                  Созданная виртуальная машина с Nextcloud отработала с марта 2017 года практически без сбоев и осенью 2017 года я задумался о статье. У меня осталось много записей и комментариев в части решения различных проблем и нюансов, я долго вынашивал идею всё же привести всё это в порядок и опубликовать и новогодние праздники 2018 года мне в этом помогли. Надо сказать, что статья запоздала как минимум на полгода, но, думаю, что установить и настроить актуальные версии Debian и Nextcloud по аналогии с нижеприведённой информацией не составит большого труда, хотя, как известно, дьявол кроется как раз в деталях.
                  Ниже читатель познакомится с предпосылками создания своего облака и получит работающие инструкции по стартовой настройке Debian, лёгкому тюнингу среды Gnome3, компиляции, сборке и установке пакетов для Debian, установке и настройке сервисов Apache, SQL и PHP и начала работы с ними, генерации и подключения самоподписного сертификата SSL для виртуального хоста Apache, установка и настройка Nextcloud. Я не стал оформлять эту статью как технический мануал или туториал с длинной вереницей команд, а решил попробовать написать статью как рассказ, но без ущерба технической составляющей. Опытный пользователи Linux вряд ли тут найдут что-то новое, но, возможно, смогут прочитать его как тематическую историю в минутку своего свободного времени.
                  Читать дальше →
                • «Простое» программирование на python


                    functools (это такая свалка для всяких ненужных мне вещей :-).
                    — Гвидо ван Россум

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


                    В статье заимствуются примеры и/или концепции из библиотеки funcy. Во-первых, она клевая, во-вторых, вы сразу же сможете начать ее использовать. И да, нам понадобится ФП.

                    Читать дальше →
                  • Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 1. Инструментарий

                    • Translation
                    image

                    Мой инструментарий социального архитектора состоит из 20 инструментов, каждый из которых соответствует какому-либо аспекту сообщества или группы. Их можно использовать двумя способами.


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


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


                    • Четкая миссия – заявленная причина существования группы.
                    • Свободное участие – насколько легко люди могут присоединиться к группе.
                    • Прозрачность – насколько открыто и публично принимаются решения.
                    • Бесплатные участники – как много можно платить людям за участие.
                    • Свобода работы с материалами (ремиксабельность) – насколько свободно участники могут использовать работу друг друга.
                    • Четкость протокола – насколько хорошо прописаны правила.
                    • Компетентность власти – насколько хорошо следят за соблюдением правил.
                    • Нон-трайбализм – насколько далеко распространяются права группы над своими участниками.
                    • Самоорганизация – насколько свободно могут участники определять свои задачи.
                    • Толерантность – как группа разбирается с конфликтами.
                    • Измеримый успех – как хорошо группа может отслеживать свой прогресс.
                    • Высокое награждение – как группа вознаграждает своих участников.
                    • Децентрализация – насколько широко распределены участники группы.
                    • Свободная рабочая среда – насколько легко создавать новые проекты.
                    • Стандартная структура – насколько общая структура стабильна и предсказуема.
                    • Плавность обучения – насколько легко начать и продолжить учиться.
                    • Позитивность – насколько группа движима позитивными целями.
                    • Чувство юмора – насколько серьезно группа себя воспринимает.
                    • Минимализм – сколько лишней работы делает группа.
                    • Разумное финансирование – как группа борется за выживание в экономическом плане.

                    Спасибо Сергею Даньшину за помощь с переводом.

                    Читать дальше →
                    • +22
                    • 17.7k
                    • 7
                  • Как захватить/защитить open-source проект

                    • Translation
                    image

                    На «Ars Technica» есть интересная статья о том, как Google понемногу закрывает Android. Это классическая игра Capture the Flag, которая ведется против open-source сообщества. Я собираюсь объяснить, как этот захват работает, и как его предотвратить.

                    Почему Capture the Flag?


                    Как говорит «Ars Technica»: «Легко отдать что-нибудь, когда ты на последнем месте с нулевой долей рынка, как это было с Android в начале. Когда же ты на первом месте, немного сложнее быть таким открытым и доброжелательным».

                    Android, если уж честно, вероятно, самая крупная инвестиция Google. Вы можете поспорить о том, имеют ли они право превращать открытую систему в закрытую, и вы будете правы. Однако это то же самое, что спорить о том, имеет ли право центральный банк печатать слишком много денежных знаков и создавать девальвацию. Конечно, на это он уполномочен. Но в то же время у этого существует цена, которую заплатят другие люди. Вопрос не в правомерности, а в приемлемости той цены, которую заплатит общество. А если она неприемлема, тогда как это предотвратить?
                    Читать дальше →
                  • Интернет вещей — маркетинг или реальная угроза

                      Пятница, Хабр! Это — доклад Артёма ximaera Гавриченкова, технического директора Qrator Labs с конференции «Хакер, вендор, клиент», прошедшей 21 апреля в Москве. За видео в конце публикации спасибо Кириллу Ермакову.

                      Снова здравствуйте.

                      С чего бы начать? Вы удивитесь — с глобального потепления.


                      Читать дальше →
                      • +16
                      • 6.8k
                      • 8