Deploy Orchard CMS 1.x with Octopus and TeamCity

Orchard.Web.nuspec

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Orchard.Web</id>
    <version>1.10.1.0</version>
    <authors>musuk</authors>
    <owners>musuk</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <licenseUrl>http://example.com/</licenseUrl>
    <projectUrl>http://example.com/</projectUrl>
    <description>The Orchard.Web deployment package, built on 06.07.2017</description>
    <releaseNotes></releaseNotes>
    <tags>OctopusDeploy</tags>
  </metadata>
  <files>
    <file src="*.*" target="" exclude="*.csproj"/>
    <file src="bin\**" target="bin" />
    <file src="Config\**" target="Config" />
    <file src="Core\**" target="Core" exclude="Core\**\*.cs"/>
    <file src="Media\**" target="Media" />
    <file src="themes\**" target="themes" exclude="themes\**\*.cs;themes\**;\node_modules\**;themes\**\Content\modules\**;themes\**\obj\**;themes\**\bin\*.pdb;themes\**\bin\*.xml;themes\**\bin\System.*.dll;themes\bin\*.*;" />
    <file src="modules\**" target="modules" exclude="modules\**\*.cs;modules\**\*.csproj;modules\**\obj\**;modules\**\bin\*.pdb;modules\**\bin\NHibernate.dll;modules\**\bin\*.xml;modules\**\bin\System.*.dll;modules\**\bin\Newtonsoft.Json.dll;modules\**\bin\*.dep;modules\**\bin\*.config;modules\**\bin\FluentNHibernate.dll" />
    <file src="App_Data\Sites\Default\Settings.txt" target="App_Data\Sites\Default\Settings.txt" />
  </files>
</package>
Оставить комментарий
* * *

Raspberry PI timelapse

cam.sh

#!/bin/bash

fswebcam --config /home/pi/fswebcam.config

fswebcam.config

device /dev/video0
input 0
skip 20
resolution 640x480
top-banner
log /home/pi/fswebcam.log
jpeg 98
save /home/pi/webcam/capture."%Y%m%d%H%M%S".jpg

Culture: en

Оставить комментарий
* * *

Template for JQuery plugin

It seams, that modern JS-world has gone far away from jQuery to Angular, Vue and React. But jQuery still widely used and a lot of modern sites have jQuery dependency. So writing jQuery plugin in 2017 may not be such a bad idea.

Culture: en

Оставить комментарий
* * *

Open VPN error configuration file routines:STR_COPY:variable has no value:conf_def.c

Problem happens becase ENV:KEY_ALTNAMES not defiend.

You need to add KEY_ALTNAMES to ./vars file:

export KEY_ALTNAMES="something"

And run source ./vars after that.

Culture: en

Оставить комментарий
* * *

Setup Motion on Raspberry Pi

Install motion on raspberry pi:

sudo apt-get install motion -y

Check if motion demon enabled in /etc/default/motion. It value should be set to "yes".

# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

Check following properies in /etc/motion/motion.config file:

daemon on
webcam_localhost off #to enable remote access to Raspberry

Check /var/log/syslog for possible motion errors.
It can be:

[ERR] [EVT] event_ffmpeg_newfile: ffopen_open error creating (new) file [/var/lib/motion/...

Motion uses /var/lib/motion to store video files and images. So it needs write access for this folder.

chmod 0777 /var/lib/motion

Enable broadcast only

If you need only broadcast without saving any data on disk, you need to change following options:

ffmpeg_output_movies off
output_pictures off

Culture: en

Оставить комментарий
* * *

Orchard CMS: Media Library, Media и загрузка файлов

//create folder
 var uploadFolder = "upload";
_mediaLibraryService.CreateFolder(contentItem.ContentType, uploadFolder);


//upload file

var stream = File.Open(file.FullName, FileMode.Open, FileAccess.Read);
var mediaPart = _mediaLibraryService.ImportMedia(stream, destDirPath.Replace("\\", "/"), file.Name, "");
_contentManager.Create(mediaPart);
_contentManager.Publish(media.ContentItem);
Оставить комментарий
* * *

Flying Fish – MH Sensor Series - двоичный датчик освещённости

Попало мне в руки странное устройство с надписью Flying Fish – MH Sensor Series - это датчик освещённости. На нём установлен компаратор ML393, датчик освщённости и два светодиода. На плате установлен регулятор, которым можно установить уровень освещённости, при котором схема будет выдавать 0, иначе 1 (+5V).

AO Аналоговое значение датчика
DO 1 (+5М) - если темно, 0 - если светло
GND Земля
VCC+ Питание+5V

Оставить комментарий
* * *

Мысли о микрокомпьютерах

... построить дом, посадить дерево, помигать светодиодами.

Однажды в 11 классе я сделал проект для участия в конкурсе программистов. Это был прибор, который измерял напряжение и отправлял его цифровое значение на компьютер, а там отдельное приложение рисовало красивый график. Основная сложность состояла именно в подключении самодельного устройства к компьютеру. У COM-порта, USB и PS/2 довольно мутные протоколы, так что самым доступным способом оказался LPT-порт принтера. Да и с тем всё непросто: входных пинов всего 5, и, чтобы запихать 12 бит данных, мне пришлось городить схему из мультиплексоров, которые отправляли на LPT-порт сначала первые 4 байта, потом вторые, а потом третьи. Вряд ли я смог бы сделать такую схему сам, если б не помощь отца.

Culture: en

Оставить комментарий
* * *
* * *

ES6 Generators и Promises в node.js на практике

Эта статья Quickstart по работе с асинхронными операциями в node.js. Эпоха callback'ов прошла, наступила эра генераторов и промисов. Генераторы делают промисы более удобными. А тот факт, что node.js начал поддерживать генераторы и ещё некоторые фичи es6 из коробки, даёт нам возможность применять их на практике в продакшене.

Оставить комментарий
* * *

Подключаем Raspberry Pi к VPN

Чтобы подключить Raspberry PI к VPN ставим набор утилит pptp-linux:

apt-get install pptp-linux

Эта команда установит несколько утилит: pon — для запуска VPN-подключения, poff — для отключения

В папке /etc/ppp/peers создаём файл c прозивольным названием, например tunelname с настройками подключения. У меня файл имеет такое содержание:

pty "pptp vpnhost.com --nolaunchpppd"
name vpnuser
password vpnuserpassword
remotename PPTP
require-mppe-128
require-mschap-v2
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
noauth
persist
maxfail 0
defaultroute
replacedefaultroute
usepeerdns

Здесь vpnhost.com — адрес VPN-сервера, vpnuser и vpnuserpassword — это логин и пароль для доступа к VPN.

Чтобы при запуске Raspberry автоматически подключался к VPN нужно добавить следующие настройки в /etc/network/interfaces:

auto tunnel
iface tunnel inet ppp
     provider tunelname

Оставить комментарий
* * *

Orchard CMS: Checklist для проверки сайта перед публикацией

  1. Выставить галку Securable на все Content Type. Это позволит включить анонимный доступ к этим типам.
    /Admin/ContentTypes
  2. Отключить анонимный доступ ко всем ContentItem'ам по умолчанию.
    /Admin/Roles &racquo; Anonymous &racquo; Contents Feature &racquo; View all content
Оставить комментарий
* * *

Wifi роутер на Raspberry Pi 2/3

Внешний вид роутера на Raspberry pi с адаптерами Asus N14 и NoName Wifi adapter

Роутер должен не только раздавать интернет не только из Ethernet-порта, но и из одного WiFi-адаптера на другой. Это бывает очень полезно в путешествиях. Например, в гостинице легко оказаться в номере, куда местная точка доступа плохо добивает. А мощный WiFi-адаптер поймает даже слабый сигнал и раздаст его на все имеющиеся планшеты и телефоны. Это также может помочь сэкономить деньги там, где плата за интернет берётся с каждого устройства отдельно.

Culture: ru

Оставить комментарий
* * *

Raspberry PI SD card backup

Get drives info:

fdisk -l

Create backup:

dd bs=4M if=/dev/sdb | pv | gzip > /home/musuk/raspberry/1.gz
  • /dev/sdb — path for sd card device.
  • dd — tool to read/write stream from device.
  • bs=4M — read buffer size.
  • pv — tool to show read status.

Restore backup:

gzip -dc /home/musuk/raspberry/1.gz | pv | dd bs=4M of=/dev/sdb
  • gzip -dc — decompress parameter.
Оставить комментарий
* * *

Raspberry PI 2 developer playground setup

Setup some stuff at start

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip
sudo apt-get install mc

Show raspbery pi configuration window:

sudo raspi-config

RDP

apt-get install xrdp

AUDIO

sudo apt-get install alsa-utils
sudo apt-get install mpg123
sudo modprobe snd_bcm2835

Setup audio output device

Can be configured by raspi-conf

HDMI output:

sudo modprobe snd_bcm2835
sudo amixer cset numid=3 2
Audio Jack output:
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 1
Autodetect output:
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 0

Audio for 3.5 jack pinout: http://www.raspberrypi-spy.co.uk/2014/07/raspberry-pi-model-b-3-5mm-audiovideo-jack/ sudo amixer cset numid=3 1

GPIO

http://wiringpi.com/download-and-install/

git clone git://git.drogon.net/wiringPi
./build

Led Blink:

gpio -g mode 17 out
gpio -g write 17 1
gpio -g write 17 0

Install Node JS

http://node-arm.herokuapp.com/

wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
# Check installation
node -v

Use rpi-gpio package to access gpio from node. https://github.com/rakeshpai/pi-gpio

npm install rpi-gpio

FTP

sudo apt-get install proftpd

Run proftpd in standalone mode only.

Fast ftp for casual access

pip install pyftpdlib
python -m pyftpdlib
Оставить комментарий
* * *