• Переписываем приложение под Blockchain

      Before and after


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


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


      В последнее время по роду деятельности мне довелось поработать с несколькими проектами связанными с криптовалютой и blockchain-технологиями. Познакомившись ближе с Ethereum и его идеологией децентрализованных приложений (ĐApp) я просто заболел этой идеей: никакой цензуры, никто не может прикрыть ваш бизнес, никто не может конфисковать ваши средства, невозможно просто взять и выключить сервер на котором работает ваше приложение. В определенный момент я пришёл к выводу, что именно в такой среде мой проект может иметь шансы на жизнь.


      Итак, взглянем на фронт работ.

      Читать дальше →
    • Osliki.Net – социальная доставка

        Osliki.Net

        Исходный код доступен на GitHub. Используется full-stack JavaScript инструментарий Node.js + Angular2 + MongoDB, сборка Gulp.js, тестирование Mocha, хостинг DigitalOcean, платежи PayPal API.

        Этапы процесса создания проекта запечатлены на LiveCoding.

        Суть проекта в том, что люди, которые часто путешествуют, могут доставлять другим практически любые вещи в своем багаже. Например вы живете в США и вам срочно нужны какие-либо лекарства или документы из России. На Осликах можно найти человека, который как раз едет из Москвы в Нью-Йорк. Он может помочь за деньги или бесплатно.

        Таким образом, пользователи могут выступать и в качестве клиентов, которым нужна доставка, и в качестве путешественников, которые могут доставлять что-либо. Путешественник имеет возможность выставлять счета на оплату клиенту, service fee, вместе с PayPal fee, составляет около 10%.

        Проект будет интересен в первую очередь:
        • людям, которые находятся далеко от дома (тоска по родной еде типа халвы, шоколада, кефира и т.д., необходимость в специфичных лекарствах)
        • тем кто хочет сэкономить на покупке товаров. Один подписчик на livecoding, например, утверждал что во Франции электроника дешевле чем в Британии :)
        • студентам, которые учатся вдали от дома, и сезонно перемещаются от места учебы до дома и обратно
        • дальнобойщикам, стюардессам, коммивояжерам вообщем всем тем, кто по роду деятельности часто путешествует и не прочь на этом дополнительно подзаработать.

        Читать дальше →
      • BaasCMS – бэкенд не нужен



          BaasCMS — это JavaScript CMS, использующая в качестве бэкенда популярных провайдеров BaaS. На данный момент поддерживается только Parse.com.

          Исходный код BaasCMS доступен на GitHub.

          BaasCMS Demo на GitHub Pages
          Тоже самое BaasCMS Demo на Tumblr

          Можно посмотреть Админ-панель для этого демо (изменения/добавление запрещены). В соответвующую форму на главной странице админки нужно вставить следующие ключи:

          • Application ID: nM7P7NnFA95CK1WrqWOf9wa3mskctaTOdk9vYflj
          • Javascript Key: 0zHfA9FG8L1xR699qmFXjxkZ1pDxgml0MWZMpqJG

          Читать дальше →
        • Node.js для начинающих

            NodeBeginner.ru — перевод на русский язык учебника по Node.js для начинающих «The Node Beginner Book» автора Manuel Kiessling.

            Учебник предназначен для разработчиков с опытом работы с каким-либо объектно-ориентированным языком, немного знакомых с JavaScript и полных новичков в Node.js. Оригинал ещё находится в процессе написания, законченно около 90%. Перевод будет соответственно обновляться.
          • Surtout — Ruby on Rails CMS

              Surtout — это бесплатная CMS с открытым исходным кодом, работающая на Ruby On Rails 3. На данный момент проект находится в стадии разработки, но уже сейчас на сайте проекта можно посмотреть демонстрационное видео:



              Читать дальше →
            • Интеграция вкусностей jQuery в другие сайты

                Есть у меня небольшой проект с user-generated content-ом. Встала задача сделать код кнопки с ссылкой на страничку пользователя, для интеграции в пользовательские блоги и сайты. Но делать скучные кнопки, как у большинства конкурентов, не хотелось. Хотелось, на равне с простыми кнопками и ссылками, сделать что-то особенное, jQuery-евское, с аяксом и анимацией :).

                Суть простая: пользователь размещает у себя на сайте скрипт, который динамически вставляет кнопку. При нажатии на кнопку всплывает окошко с подгружённой пользовательской страничкой с нашего ресурса.

                Проблемы очевидны:
                1. Необходимо определить, используется ли jQuery и нужный плагин на сайте пользователя. Если нет, то обоих динамически подгрузить. Делать отдельно коды для тех кто использует jQuery на своем сайте и для тех кто нет — не комильфо, а тем более подгружать при любом раскладе (могут возникнуть глюки, особенно у плагинов).
                2. Пережатый jQuery весит около 60 кБ, и в случае подкачки может не успеть полностью загрузиться и инициализироваться до исполнения кода.

                В качестве вкусности я использовал плагин fancybox. Он позволяет не только отображать фотографии с lightbox-эффектом, но и любой другой контент в iframe.

                Ниже представлен код.
                Читать дальше →
              • Синдикат стартапов

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

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

                  Достоинства:
                  • Торговать рекламой будет проще. То ли у Вас в ассортименте один стартап, то ли их пару десятков.
                  • Раскрутка взаимная, обмен ссылками, обмен баннерами.
                  • Власть :D.
                  • Что ещё?
                  Проблемы:
                  • Кто будет торговать рекламой?
                  • Официальный статус, налоги и т.д. и т.п.
                  • Что ещё?
                  Может уже что-то подобное есть? Интересно послушать мнения, предложения.
                • Профсоюз 2.0

                    Профсоюз очень полезное явление в обществе. При этом огромная армия веб программистов, дизайнеров, оптимизаторов и другого IT люда обделены всеми возможностями, который даёт профсоюз.

                    Чем может быть полезен профсоюз?
                    • Вы заболели и источник доходов резко иссяк. Больничный Вам платить никто небудет, потому что Вы на вольных хлебах. Являясь членом подобного профсоюза Вы можете получать помощь.
                    • Вы молодой стартапёр. Что если все члены профсоюза дружно поддержат Ваш проект рекламой на своих проектах?
                    • Возможности профсоюза в решении юридических и даже политических вопросов на много больше возможностей одного вебщика.
                    • В конце концов Вы когда-нибудь состаритесь. Профсоюз может решить Ваши насущные пенсионерские проблемы :)
                    На мой взгляд front-face профсоюза можно сделать в виде сайта. Любой может зарегистрироваться на нём, общаться, делать заявки, решать проблемы. У каждого пользователя будет, скажем, рейтинг доверия, чтобы отсеивать халявщиков.

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

                    Получиться этакий «Профсоюз 2.0». Главное это демократичность, открытость и авторитет профсоюза.

                    Интересно услышать Ваши мнения.
                  • Управление роботами через интернет

                      Идея создания сайта для управления роботами через интернет. То есть, сайт на который Вы можете зайти, зарегистрироваться и встать в очередь на управление выбраного Вами робота. Пока стоите в очереди можете общаться, ругаться, знакомится и тд. Можете заплатить за то, чтобы продвинуться в очереди, скажем на 50 человек вперёд, можете продать место в очереди или обменять его, например на инвайт на хабр :). Кроме того Вы можете смотреть онлайн видео «Глазами робота». То есть смотреть на то, как другие управляют.

                      Когда до Вас доходит очередь, наслаждаетесь управлением робота. Чтобы было интересно, роботов должно быть много (в разумных пределах) и разных. Есть знакомые с института, занимающиеся разработкой микророботов. Думаю им будет интересно. Знаю техникум, который занимается сборкой симпатичных несложных роботов. Так же, для поднятия интереса, роботы должны находится в интересных местах, например в каком-нибудь секретном музее или в чьей то квартире (типа «За стеклом» :)). Можно проводить акции, например «Управление роботом на красной площади!» или на Великой китайской стене. Единственно сложно будет в техническом плане.

                      Из готового нашёл десертацию одного парня по управлению роботами через интернет. Реализовано посредством 2 серверов, ActionScript и perl. Один сервер для управления, другой для FrontFace сайта. Для трансляции виде нужно будет, я думаю, прикрутить ещё побольше IP-камер. Есть ещё разработки Баумановского института, но они больше ориентированы на научную составляющую, чем на развлекательную.

                      Сайт будет интересн в первую очередь как диковинка. То есть первый вариант сайта, даже с одним полумёртвым роботом, вызовет большой интерес общественности. Одна статья на новостном сайте, а лучше по телевидению, и от народа придётся отмахиваться. Далее интерес можно поддерживать, как писалось выше, расширением ассортимента роботов, различными акциями, боями роботов, в конце концов (идей на этот счёт масса).

                      Проект ориентирован не только на Россию, но и на Запад (аналогов не нашёл).

                      Проблемы:
                      • Чтобы управлять роботом в реальном времени, нужна достаточно быстрая обратная связь посредством видео. То есть пользователю с модемом или пережатой безлимиткой на сайт путь заказан.
                      • Проект довольно высокотехнологичен и сложен. Подобные разработки уже ведуться, но неизвестно, поделиться ли кто-то своей работой?

                      Интересно Ваше мнение.
                    • Ваш микросайт в интернете


                        Хочу представить Вам новый проект MoiaVizitka.ru. Сайт небольшой и без изысков: Вы регистрируетесь (по просьбам знакомых убрал активацию по емайлу), заходите в конструктор и создаёте свою визитку с каким угодно дизайном. Есть вариант загрузить уже готовую картинку с визиткой, только текстовую информацию лучше делать в конструкторе, чтобы пользователь мог потом выделить текст и скопировать. Если ничего в голову не приходит, можно воспользоваться готовыми шаблонами.

                        После Ваша визитка будет доступна по простому адресу вида MoiaVizitka.ru/Login, который Вы никогда не забудете.
                        На странице с Вашей визиткой нет ничего кроме визитки и маленькой кнопочки для вывода меню (Пример: MoiaVizitka.ru/Artod и ещё MoiaVizitka.ru/Sovetnik).

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

                        Шаблонов пока немного, со временем станет больше. Пока делал шаблоны наткнулся на подборку интересных визиток. Особенно понравилась хакерская и программистская. Может кто-то вдохновится :)

                        Интересно послушать мнения, пожелания.
                      • Превью и Resize картинок на лету

                          Переделывал сайт заказчику на Netcat и с удивлением обнаружил, что кто-то ещё использует загрузку отдельных картинок для оригиналов и для превьюшек и как следствие отдельные столбцы в таблице БД. Куда ещё не шло создавать превьюшки на стороне сервера после загрузки оригинала.

                          Идея простая и не новая. C таким подходом я в первые столкнулся в UMI-CMS, а использовал в RubyOnRails. Смысл в том, что превью создаются только когда они нужны и какого угодно размера, а В БД храниться только название оригинала.

                          Если Вам необходимо вывести превью картинки вы вызываете функцию типа:
                          1. @thumbs = Photo.view_thumbs('originals_name_file.jpg', '100', 'auto')
                          где второй и третий параметр это нужный размер в пикселах (auto значит автоматическая подгонка под массштаб).

                          Метод view_thumbs проверяет в папке (например "/images/cache") наличие файла originals_name_file_100xauto.jpg. Если находит то возвращает строку «originals_name_file_100xauto.jpg», если не находит, то создаёт файл нужных размеров на лету и возвращает то же самое.

                          Достоинства подхода очевидны:
                          1. Не создаётся мусора в виде большого количества превьюшек на диске. Все превью храняться в одной папке «cache» и могут периодически удаляться для освобождения места.
                          2. Неограниченное количество превьюшек разных размеров. Достаточно только задать нужные параметры в методе.
                          Для cakePHP есть хелпер images.php который можно выдернуть из Bakesale (автоматической подгонки нет). Ниже представлен метод на RubyOnRails реализующий данный подход.
                          Читать дальше →
                        • Пустая вкладка в Mozilla

                            Разработчики Firefox обеспокоились «пустотой» и не функциональностью пустой вкладки в своём браузере. Концепт будущего пустого таба представлен на Mozilla Labs



                            Там же можно скачать тестовое расширение, которое работает только в Firefox 3.1

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

                            Идея с кнопочкой, которая определяет, что вам надо по буферу обмена хорошая. Но всё таки, имхо, лучше FastDial ничего нет, потому как пользователь должен сам решать, что ему делать с пустой вкладкой и какие ссылки туда включать. Было бы хорошо сделать пустой таб в виде конструктора-агрегатора. У каждого конечно свои предпочтения и привычки. Интересно послушать мнения.
                          • W3C Range for Internet Explorer

                              В javascript есть замечательный объект Range, который входит в стандарт DOM, определённый консорциумом всемирной паутины. В IE7 обещали включить поддержку Range, но это так и осталось на словах. Имеющийся в IE (и только в IE) объект TextRange не выдерживает никакой критики и не для чего серьёзного не пригоден (можно целую статью написать про маразм данного объекта).

                              Передо мной стояла задача написать WYSIWYG редактор генерирующий абсолютно валидный и абсолютно не избыточный html. Без Range было не обойтись. Из готового в инете нашёл только не рабочий скрипт некоего Jorgen Horstink, поэтому Range for IE пришлось писать с нуля.
                              Читать дальше →