• LabVIEW :: Часть 1

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

      Dataflow + G = LabVIEW


      цикл for в labview
      Некоторое время назад я сменил специализацию. Это был не просто переход к другому языку программирования или сосредоточение на иной области задач, но и весьма ощутимое изменение парадигмы, которой я придерживался. Год назад я окунулся в мир dataflow и визуального программирования. Наиболее ярким и мощным представителем этой ветви средств разработки является LabVIEW (National Instruments). К сожалению, информации на Хабре по этой теме практически нет, поэтому я и попытаюсь заполнить пробел.

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

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

      • Translation
      [Developer Hub Logo]С превеликой радостью объявляем, что мы только что запустили Add-on Developer Hub (beta) — всеобъемлющий сборник сведений, где разработчики дополнений могут выяснить, зачем они пожелали бы изготовить дополнение, и как делают дополнения, и управлять списками своих дополнений.

      Читать дальше →
    • Новые идеи по АПИ RabbitMQ AMQP для PHP

        Недавно опубликовал разработанное ранее PHP API для RabbitMQ «AMQP теперь и для РНР»

        При обсуждении было предложено сделать PHP API более объектной моделью,
        более близкой к модели, предложенной в Протоколе AMQP.

        Код немного усложнится, но объектная модель будет более красивой,

        Прежде чем перейти к кодированию, представляю на обсуждение новое API
        Читать дальше →
      • Выполнение фоновых процессов из PHP в Windows

          В *nix, запуска фоновых процессов, выполняется простым добавлением амперсанда (&) к команде. В Windows, это не так просто сделать из PHP.

          Если вы используете в PHP функции системных вызовов, как exec, system, passthru или shell_exec, то эти методы приводят к подвисанию программы, которая ждет завершения работы вызванного процесса.

          Описанные ниже методы предполагают, что вы используете PHP-CLI (работу с php из командной строки). Запуск PHP на веб-сервере требует правильной настройки конфигурации и прав доступа, такие как safe_mode, safe_mode_exec_dir и т.д.

          Для примера, мы хотим вызвать cmd из PHP, но чтобы программа продолжала выполнять действия.
          Приведенные ниже примеры не работают.
          exec(«cmd»);
          exec(«cmd >NUL»);
          exec(«cmd /c cmd»);
          exec(«start /b cmd»);
          exec(«runas cmd»);

          В каждом случае, PHP ждет пока cmd закроется.

          Существуют несколько обходных путей, упомянутых в комментариях к документации по PHP к функции exec()

          Краткое изложение этих методов, в порядке предпочтения:

          Начало процесса с использованием popen и pclose

          Этот код должен работать на Linux и Windows.
          $exe = «cmd.exe»;
          pclose(popen('start «bla» "'. $exe. '" '. escapeshellarg($args), 'r'));

          Начало фонового процесса с использованием объекта WScript.Shell

          Этот код работает только в Windows.
          $WshShell = new COM(«WScript.Shell»);
          // Запуск cmd в свернутом состоянии
          $oExec = $WshShell->Run(«cmd», 7, false);
          // Запуск cmd в фоновом режиме, иконка на панели задач не выводится
          $oExec = $WshShell->Run(«cmd /C dir /S %windir%», 0, false);

          Более подробнее о методе Run() читайте в msdn.

          Начало фонового процесса с использованием утилиты PsExec
          Этот метод требует установки бесплатной утилиты PsTools от Sysinternals
          exec(«psexec -d cmd.exe»);

          Автор этого текста root{Собака}imcms.ru можете отправит ему инвайт.
        • Алгоритм: избавляемся от паролей на разные ресурсы — используем почтовый ящик

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

            Универсальная система логина на сайте:
            • Пользователь заходит сайт и вводит свою почту.
            • Ему посылается письмо с секретным URLом.
            • По заходу на этот URL — он оказывается авторизованным, а письмо может удалить(может и оставить на будущее).

            Так выглядит общая схема :) Что имеем в итоге — авторизовались на ресурсе, не имея дополнительного логина и пароля — используется только почта. Ну и никаких дополнительных сервисов/библиотек не требуется — все достаточно просто.

            Теперь прикинем минусы данного подхода и как их можно обойти…
            Читать дальше →
          • Системы резервного копирования

              Несколько месяцев назад начал заниматься/разбираться в системах резервного копирования. Все полезные доки/ссылки я сохраняю у себя в заметках.
              Много чего накопилось, решил поделиться записями, полезными ссылками и личным опытом.
              Читать дальше →
            • Google Sites открыл API

                Команда разработчиков wiki-конструктора сайтов Google Sites объявила о выпуске новых API, которые войдут в стандартизированный набор Google Data API. С помощью этих интерфейсов контент Google Sites становится доступным для импорта, экспорта, редактирования и обновления, в том числе сторонними программами.

                В первую очередь это должно обрадовать корпоративных клиентов. Именно они должны вовсю начать использовать появившиеся возможности. Вот некоторые примеры.
                • Обновление Google Sites из CRM-систем.
                • Импорт файлов и контента из корпоративных систем вроде Microsoft SharePoint и Lotus Notes.
                • Экспорт страниц Google Sites для редактирования в офлайне, а потом повторный импорт обновлённого контента.
                • Экспорт сайтов целиком для бэкапа, с сохранением всей истории изменений.

                Список возможностей можно продолжать, потому что весь контент Google Sites становится доступным через стандартный протокол Google Data.
              • Потребительская Экспертная социальная сеть

                  Наше агентство мобильного маркетинга (СМС рассылки) постоянно сталкивается с отсутствием конструктивной связи между потребителями и поставщиками товаров и услуг. Возможно это какая то региональная особенность, но трудно очень простому обывателю совершать покупки не посещая места продаж непосредственно и далее риск приобретения некачественного товара или услуги и т.д. И поставщики не видят своего покупателя. Вот поэтому пытаюсь возможно кривовато представить на суд некой экспертной, потребительской сети где:
                  Пользователи на своих страницах могут выбирать и фиксировать любимые торговые марки и предпочтения для:
                  1. Прямго контакта с поставщиками товаров и услуг региона. Знакомства с ассортиментом и обзор комментариев. Получение информации от компаний.
                  2. Получение или генерация на странице электронной скидки штрих-кода на телефон. (друга история чем бесконечное количество пластиковых дисконтов).
                  3. Общение по различным темам, товарам, услугам и т.д. Обмен информацией.
                  4. Возможность оставить пожелания в коментах или блогах пожелания приобретения услуги и описание её качества.
                  5. Получать вознаграждение за идеи продаж, организацию акций и проектов, привлечение покупателей.

                  Поставщики.
                  1. Компании региона имеют страницы с кратким описанием и ссылкой на основной сайт с возможностью размещения на своей странице каталога продукции.
                  2. Посетители могут рекомендовать перечень товаров, которыми пользуются, наименование служит ссылку на каталоги.
                  3. Опросы. Рейтинги. Акции привлечения внимания, по средствам сарафанного радио.

                  Дополнительные программы для посетителей.
                  Экономика. Счетчик расходов средств и публикация некоторых статей, например «коммунальные расходы», для обсуждения вариантов экономии или улучшения качества.

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

                  Идеи. Любые идеи по улучшению качества предоставления товаров и услуг. Конкурсы-заявки с призовым фондом от компаний.
                  Будем благодарны за комментарии, потому как все технологии выше обозначенные давно существуют и работают, но огромное количество не продвинутых пользователей о них даже не догадывается.
                  Вопрос продвижения, это другой вопрос…
                • Потребительская Экспертная социальная сеть

                    Наше агентство мобильного маркетинга (СМС рассылки) постоянно сталкивается с отсутствием конструктивной связи между потребителями и поставщиками товаров и услуг. Возможно это какая то региональная особенность, но трудно очень простому обывателю совершать покупки не посещая места продаж непосредственно и далее риск приобретения некачественного товара или услуги и т.д. И поставщики не видят своего покупателя. Вот поэтому пытаюсь возможно кривовато представить на суд некой экспертной, потребительской сети где:
                    Пользователи на своих страницах могут выбирать и фиксировать любимые торговые марки и предпочтения для:
                    1. Прямго контакта с поставщиками товаров и услуг региона. Знакомства с ассортиментом и обзор комментариев. Получение информации от компаний.
                    2. Получение или генерация на странице электронной скидки штрих-кода на телефон. (друга история чем бесконечное количество пластиковых дисконтов).
                    3. Общение по различным темам, товарам, услугам и т.д. Обмен информацией.
                    4. Возможность оставить пожелания в коментах или блогах пожелания приобретения услуги и описание её качества.
                    5. Получать вознаграждение за идеи продаж, организацию акций и проектов, привлечение покупателей.

                    Поставщики.
                    1. Компании региона имеют страницы с кратким описанием и ссылкой на основной сайт с возможностью размещения на своей странице каталога продукции.
                    2. Посетители могут рекомендовать перечень товаров, которыми пользуются, наименование служит ссылку на каталоги.
                    3. Опросы. Рейтинги. Акции привлечения внимания, по средствам сарафанного радио.

                    Дополнительные программы для посетителей.
                    Экономика. Счетчик расходов средств и публикация некоторых статей, например «коммунальные расходы», для обсуждения вариантов экономии или улучшения качества.

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

                    Идеи. Любые идеи по улучшению качества предоставления товаров и услуг. Конкурсы-заявки с призовым фондом от компаний.
                    Будем благодарны за комментарии, потому как все технологии выше обозначенные давно существуют и работают, но огромное количество не продвинутых пользователей о них даже не догадывается.
                    Вопрос продвижения, это другой вопрос…
                  • Резервное копирование mysql-базы. мой путь =)

                      Задача стояла такая – часто бэкапить базу + экономить место на харде.
                      Прочитав одну статейку по созданию инкрементального бэкапа для дампов через diff понял что это всё бредятина какая-то.
                      Промелькнула мысль – а почему бы не заливать дамп базы в git? Ведь можно будет и откатиться на нужный коммит, и склонировать репозиторий для экспериментов, и вкушать все прелести данной системы. =)
                      Сразу определися – я делал всё под FreeBSD. Следовательно под Linux нужно будет подпилить напильничком.
                      Ну, начинёмс! Сначала ставим гит (если нет в системе)!
                      Предварительно обновив порты пишем cd /usr/ports/devel/git && make install clean
                      Git поставился. Выбираем место для папки с бэкапом базы и создаём папку mkdir /backup/bases/test
                      Далее cd /backup/bases/test и инициализируем там репозиторий командой git init
                      Я написал скрипт который дампит базу потаблично, добавляет файлы в репозиторий и создаёт коммит с датой бэкапа

                      #!/usr/local/bin/bash
                      backupurl=”/backup/bases/test”
                      for i in `/usr/local/bin/mysql -e “use test;show tables;” -uUSER -pPASS|tr -d “|”|grep -v “Tables_in_”`;do /usr/local/bin/mysqldump –quick –skip-extended-insert –dump-date=false –compact=true -uUSER -pPASS test $i >$backupurl/$i.sql;done
                      /usr/local/bin/mysqldump -uUSER -pPASS –no-data test > $backupurl/structure.sql #отдельно бэкапим структуру базы
                      cd $backupurl
                      /usr/local/bin/git add . #добавляем файлы
                      sleep 2
                      /usr/local/bin/git commit -am “backup `date +%d.%m.%y.%H.%M`” #коммит с чилом и временем


                      Запечатываем данный скрипт в файл, делаем его исполняемым и плюхаем в крон.
                      Далее после нескольких бэкапов заходим в папку с бэкапом базы и пишем git log – вам выведется история наших бэкапов.
                      Напоследок:

                      • Читайте документацию по гиту
                      • Поставьте в крон (в зависимости от объёмов базы… лично у меня раз в сутки) команду cd /backup/bases/test && git gc – это серьёзно сжимает репозиторий
                      • Для отката желательно склонить репозиторий и сделать откат через git reset HEAD^^
                      • Опция –skip-extended-insert ОБЯЗАТЕЛЬНА. она запрещает расширеные инсерты которые сводят на нет всю мою затею с гитом
                    • как способ изучения Английского

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

                        Поделюсь теми, на которые подписан я:

                        Читать дальше →
                      • Новый взгляд на JavaScript инъекции

                          Недавно столкнулся со следующей задачей — существует JavaScript объект actions с кучей методов, в каждом из которых должны быть определены следующие переменные:

                          var persik    = this,     
                                actions  = persik.actions,      
                                next     = ( persik.dom.возможноЕщёЧтоТо.имяЭтогоМетода.next)? 
                                    persik.dom.возможноЕщёЧтоТо.имяЭтогоМетода.next : function(){return false}; 
                          


                          Но определять их очень не хотелось, так как во-первых от этого заметно утяжелится код, а во-вторых объект actions создавался для будущих пользователей моего фреймворка Persik, и как предполагается, каждый сможет не только применять готовые методы actions, но и определять свои.
                          Читать дальше →
                        • Анонимный web-серфинг с Android

                          • Translation
                          image
                          Группа разработчиков Digital Technology Group (DTG) от Кембриджского Университета выпустила приложение для платформы Android, которое позволяет пользователям данной платформы анонимно путешествовать по сети, используя The Onion Router, который часто называют просто TOR. Это свободная программа, разработанная с целью предоставить пользователям возможность анонимного серфинга. Данная программа работает на основе технологии peer2peer, это значит, что используя соединение через распределенную сеть серверов, поддерживаемыми энтузиастами со всего мира, предотвращается возможность опеределения сайтами физического положения пользователя.
                          Читать дальше →
                        • 4 шага чтобы стать новым медиа

                          • Translation
                          Примечание переводчика: Что такое медиа-компания нового типа, я писал здесь и здесь. О том, как работает такая организация, писал здесь, здесь и здесь. Бизнес-модели для нее – здесь, здесь и здесь.
                          Данная статья описывает, как стать такой новой медиа-компанией, как перестроить работу своего СМИ на новый лад. Статью я перевожу не полностью, только важнейшие постулаты.

                          Читать дальше →
                          • –1
                          • 526
                          • 2
                        • Джефф Дин раскрывает тайны Google

                            Гугл никогда не сообщал, сколько серверов работает в его Дата-Центрах и как они работают. Но вот, на недавней конференции, Джефф Дин, один из инженеров, работающих в компании с 1999г, выступил с презентацией, в которой он рассказал, что разрабатывает систему автоматического распределения ресурсов, называемую Spanner.
                            Система позволяет динамически выделить ресурсы для обработки данных и способна задействовать от 1 до 10 миллионов серверов. При этом автоматические выбирается наиболее дешевый вариант выполнения, учитывающий трафик и электричество.

                            Я советую открыть презентацию (PDF), если вас интересуют масштабируемые системы, высокая нагрузка, кластеризация, Дата-Центры и паралельные вычисления.
                            Читать дальше →
                          • Настройка mysql для репликаций по ssl (Debian, Ubuntu)

                              Статья для тех, кому нужно настроить репликации типа master-slave на сервере mysql, используя защищенное соединение. Когда возникла необходимость, я столкнулся с недостаточностью информации на русском о настройке репликации и практически с полным отсутствием информации, как это сделать, используя ssl. В конце концов поднять репликации мне удалось. Хочу поделиться опытом и нарытыми ссылками.
                              Читать дальше →
                            • Написание базового wave-робота на python'e

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

                                И вот недавно мой аккаунт в сендбоксе превратился в аккаунт в лайвпревью, и я, разослав инвайты тем, до кого добрался, и ожидая, пока хоть кто-то из знакомых их получит, сел разбираться с роботским апи.
                                Читать дальше →
                              • Обзор платформ для RIA

                                  Чтобы разрабатывать RIA приложения, нам нужен простой и удобный способ для написания кода, который запускался бы в браузере и возможность делать запросы серверу. Давайте рассмотрим разные подходы для решения данной задачи. Это будет не детальный разбор и не сравнение всех фреймворков, тулкитов и т.д., а просто общий обзор.
                                  read more