Рубрики
Android

Ссылки по разработке под Android

http://play.google.com/apps/publish — консоль разработчика

Updating your widget for Android 12

Google Play — работаем легально 
Как лучше всего выводить деньги из Гугл плей и Admob
Покупки в Android приложении

Как перестать бояться Proguard и начать жить

Material Design

Уроки
http://developer.alexanderklimov.ru/android/
http://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
http://www.fandroid.info

Примеры
github.com

— поиск —
http://atrios.ru/добавить-поле-поиска-в-actionbar/
http://developer.android.com/intl/ru/guide/topics/search/search-dialog.html

работа с внешним хранилищем
ListView with multiple choice

Navigation-Drawer
Auto Hide Toolbar

Таблица символов Юникода

Получение простых данных из других android приложений

Еще про coordinator layout

Google Drive API
https://console.developers.google.com/
Quick start (not android)
Quick start for Android
Ссылки
Интеграция Google Drive API в приложение Android

http://habrahabr.ru/post/167343 — RichText в Android
http://developer.android.com/intl/ru/training/multiscreen/index.html — developer.android.com на русском
http://habrahabr.ru/post/175825/ — Ресурсы, о которых должен знать каждый Android-разработчик
Шифрация данных

Рубрики
WordPress

WordPress ссылки

Руководство для начинающих по WordPress REST API

Рубрики
WordPress

Темизация WordPress

Дочерние темы — кодекс wordpress

Дочерняя темя twentytwelve

Порядок действий

  1. Созадть каталог wp-content/themes/mytheme
  2. Создать в нем файл style.css в котором надо прописать заголовок
    /*
    Theme Name:     Twenty Fifteen Child
    Template:       twentyfifteen
    */
    @import url('../twentyfifteen/style.css');

Дальше можно вносить необходимые изменения в свой файл style.css и на этом остановиться.

Но если надо добавить какой-то функционал то точно так-же надо создать файл с таким же имененм и в него уже вносить дополнения. Копировать в него содержимое файла родительской темы не нужно.

Например необходимо назначить favicon.png для сайта. Для этого надо положить иконку, к примеру, в корень сайта и создать файл fynctions.php в каталоге темы и в него вписать

<?php
function favicon_link() {
  echo '<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />' . "n";
}
add_action('wp_head', 'favicon_link');
?>
Рубрики
Linux

Установка XAMP в Linux Mint 17.2

FAQ

Установка заключается в скачивании дистрибутива по ссылке и его в запуске инсталлятора, который установит его в в каталог /opt/lampp

Команды

sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop
sudo /opt/lampp/manager-linux-x64.run
sudo /opt/lampp/lampp backup

Надо отметить, что восстановление из бэкапа, сделанного штатным средством lamp backup у меня не прошло. Стало ругаться, на испорченный архив. Может архив и вправду как-то испортился — интересно как?
А вот распаковка из архива — другое дело. Отлично все получилось, так что пропали только совсем недавние изменения.

Рубрики
Linux

Разметка диска под Linux для использования отдельного раздела под /home

/dev/sda1 — 24 Мб, раздел для UEFI,
/dev/sda2 — / ~15Гб корень, системный раздел;
/dev/sda3 — swap ~4Гб, по размеру оперативной памяти, раздел подкачки;
/dev/sda4 — /home — все оставшееся место, пользовательский раздел.

при установке монтировать sda4 на /userdata (без форматирования)
после установки
1. удалить (или забекапить) все скрытые каталоги
2. скопировать всё из /home/diman -> в /userdata/diman
3. в файле /etc/fstab заменить userdata на /home
4. перегрузиться

теперь /home находится на /dev/sda4

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

Рубрики
Каркасный дом

Расстояние между жилыми строениями

СП 53.13330.2011 — для садоводческих объединений

А Б В
А Каменный 6 м 8 м 10 м
Б Каменный с деревянными перекрытиями 8 м 10 м 12 м
В Деревянный 10 м 12 м 15 м
Рубрики
Веб-приложения Каркасный дом

Калькулятор балок перекрытия пола

[raw]

Ширина балки:

мм.
Высота балки:

мм.
Длина балки:

см.
Шаг между балками:

см.

result

Рекомендуемая нагрузка: 400 кг/кв.м.
Рекомендуемая нагрузка: 150-350 кг/кв.м. для чердака и межэтажных перекрытий

Другой правильный калькулятор


[/raw]

Рубрики
Веб-приложения

Генератор произносимых паролей

[raw]

Длина пароля:

Использовать цифровые аналоги букв (1=i, 2=z, 0=o, 6=b, 9=g, 5=s)

    result


[/raw]

Рубрики
PowerShell

Политики запуска PowerShell

то бы можно было запускать скрипты надо разрешить их запускать

Get-ExecutionPolicy — что бы посмотреть текущее значение

Set-ExecutionPolicy политика — установить  // запускать надо от имени администратора

Существует четыре типа политики:

  • Restricted — возможно выполнение отдельных команд, сценарии запрещены;
  • AllSigned — разрешено выполнение подписанных сценариев, перед запуском запрашивается подтверждение;
  • RemoteSigned – похож на предыдущий, не запрашивается выполнение сценариев, подписанных надежным издателем, не требуется подпись для локальных сценариев;
  • Unrestricted – можно запускать неподписанные сценарии.
Рубрики
PowerShell

SysLog на PowerShell

Источник

Для приема логов на сервере Wndows 2008 от маршрутизатора нашел вот такой замечательные скрипт, который работает у меня уже несколько лет.


# SysLog.ps1
#
# A basic SysLog server. Behaviour should be fairly consistent with
# RFC 3164 (http://www.ietf.org/rfc/rfc3164.txt).
 
# Network Configuration
 
$SysLogPort = 514                  # Default SysLog Port
$Buffer = New-Object Byte[] 1024   # Maximum SysLog message size
 
# Server Configuration
 
$EnableMessageValidation = $True   # Enable check of the PRI and Header
$EnableRelay = $True               # Enable relay to $RelayTargetIP
$EnableLocalLogging = $True        # Enable local logging of received messages
$EnableConsoleLogging = $False     # Enable logging to the console
$EnableHostNameLookup = $True      # Lookup hostname for connecting IP
$EnableHostNamesOnly = $True       # Uses Host Name only instead of FQDNs
 
$RelayTargetIP = "10.0.0.1"        # Must be an IP Address
$LogFolder = "C:SysLogLogFiles"  # Path must exist
 
# Global variables used to store day and date-stamp for log roll-over
 
$Day = (Get-Date).Day
$DateStamp = (Get-Date).ToString("yyyy.MM.dd")
 
# Relay Initialisation
 
If ($EnableRelay)
{
  $RelayTarget = [Net.IPAddress]::Parse($RelayTargetIP)
  $RelayTargetEndPoint = New-Object Net.IPEndPoint($RelayTarget, $SysLogPort)
}
 
# A launcher for the process
#
# Caller: Manual / Script
 
Function Start-SysLog
{
  $Socket = CreateSocket
  StartReceive $Socket
}
 
# Create and bind to the socket
#
# Caller: Start-SysLog
 
Function CreateSocket
{
  $Socket = New-Object Net.Sockets.Socket(
    [Net.Sockets.AddressFamily]::Internetwork,
    [Net.Sockets.SocketType]::Dgram,
    [Net.Sockets.ProtocolType]::Udp)
 
  $ServerIPEndPoint = New-Object Net.IPEndPoint(
    [Net.IPAddress]::Any,
    $SysLogPort)
 
  $Socket.Bind($ServerIPEndPoint)
 
  Return $Socket
}
 
# Recieve a single message
#
# Caller: Start-SysLog
 
Function StartReceive([Net.Sockets.Socket]$Socket)
{
  # Placeholder to store source of incoming packet
  $SenderIPEndPoint = New-Object Net.IPEndPoint([Net.IPAddress]::Any, 0)
  $SenderEndPoint = [Net.EndPoint]$SenderIPEndPoint
 
  $ServerRunning = $True
  While ($ServerRunning -eq $True)
  {
    $BytesReceived = $Socket.ReceiveFrom($Buffer, [Ref]$SenderEndPoint)
    $Message = $Buffer[0..$($BytesReceived - 1)]
 
    $Message = ValidateMessage $Message $SenderEndPoint.Address.IPAddressToString
 
    If ($EnableRelay)
    {
      RelayMessage $Socket $Message
    }
  }
}
 
# Relay the message to an upstream SysLog server. Either basic forwarding,
# or full validation.
#
# Caller: StartReceive
 
Function RelayMessage([Net.Sockets.Socket]$Socket, [Byte[]]$Message)
{
  [Void]$Socket.SendTo($Message, $RelayTargetEndPoint)
}
 
# Check the validity of the message (if option is enabled). Adjust message
# according to recommendations in RFC 3164.
#
# Caller: StartReceive
 
Function ValidateMessage([Byte[]]$Message, [String]$HostName)
{
  If ($EnableMessageValidation)
  {
    $MessageString = [Text.Encoding]::ASCII.GetString($Message)
 
    If (IsValidPRI($MessageString))
    {
      If (!(IsValidDateTime($MessageString)))
      {
        $PRI = [Int]($MessageString -Replace "<|>.*")
        $HostName = GetHostName $HostName
        $MessageString = "<$PRI>$(NewDateTimeString) $HostName $MessageString"
        $Message = EncodeMessage $MessageString
      }
    }
    Else
    {
      $HostName = GetHostName $HostName
      $MessageString = "$(NewDateTimeString) $HostName $MessageString"
      $Message = EncodeMessage $MessageString
    }
  }
  If ($EnableLocalLogging -Or $EnableConsoleLogging)
  {
    If ($MessageString -eq $Null)
    {
      $MessageString = [Text.Encoding]::ASCII.GetString($Message)
    }
    If ($EnableLocalLogging) { WriteToLog $MessageString $HostName }
    If ($EnableConsoleLogging) { Write-Host $MessageString }
  }
  Return $Message
}
 
# Validate the PRI (Priority Field - Facility and Severity)
# No parsing is performed. No network prioritisation is implemented
#
# Caller: ValidateMessage
 
Function IsValidPRI([String]$MessageString)
{
  If ($MessageString.SubString(0, 1) -ne "<") { Return $False } If (!$MessageString.SubString(2, 3).Contains(">"))
  {
    Return $False
  }
 
  $PRI = [Int]($MessageString -Replace "<|>.*")
  # PRI = (Facility * 8) + Severity. Maximum and minimum values from RFC 3164
  If ($PRI -lt 1 -Or $PRI -gt 191)
  {
    Return $False
  }
  Return $True
}
 
# Validate the TimeStamp formatting
#
# Caller: ValidateMessage
 
Function IsValidDateTime([String]$MessageString)
{
  $IsValid = $False
  If ($MessageString -Match "(?<=>)w{3}ss?d{1,2}s(dd:){2}dd(?=s)")
  {
    $Date = New-Object DateTime
    ForEach ($Format in @("MMM  d hh:mm:ss", "MMM dd hh:mm:ss"))
    {
      $Date = New-Object DateTime
      $IsValid = [DateTime]::TryParseExact(
        $Matches[0],
        $Format,
        [Globalization.CultureInfo]::InvariantCulture,
        [Globalization.DateTimeStyles]::AssumeUniversal,
        [Ref]$Date)
      If ($IsValid) { Return $True }
    }
  }
  Return $False
}
 
# Create a new DateTime String
#
# Caller: ValidateMessage
 
Function NewDateTimeString
{
  $Date = (Get-Date).ToUniversalTime()
  If ($Date.Day -lt 10)
  {
    Return $Date.ToString("MMM  d HH:mm:ss")
  }
  Return $Date.ToString("MMM dd HH:mm:ss")
}
 
# Attempt to lookup the HostName if an IP value was passed.
# [Net.Dns]::GetHostEntry fails to return if a Forward Lookup record
# does not exist. NsLookup as a simple alternative.
#
# Caller: ValidateMessage
 
Function GetHostName([String]$HostName)
{
  If (!$EnableHostNameLookup) { Return $HostName }
  If ([Net.IPAddress]::TryParse($HostName, [Ref]$Null))
  {
    $Temp = (nslookup -q=ptr $HostName | ?{ $_ -Like "*name = *" })
    $Temp = $Temp -Replace ".*name = "
    If ($Temp -ne [String]::Empty) { $HostName = $Temp }
  }
  If ($EnableHostNamesOnly)
  {
    Return $HostName.Split(".")[0]
  }
  Return $HostName
}
 
# Returns a Byte Array representation of the original message.
# If the length is greater than 1024 Bytes the array is truncated
# as stipulated under RFC 3164.
#
# Caller: ValidateMessage
 
Function EncodeMessage([String]$MessageString)
{
  $Message = [Text.Encoding]::ASCII.GetBytes($MessageString)
  If ($Message.Length -gt 1024)
  {
    Return $Message[0..1023]
  }
  Return $Message
}
 
# Maintain a per-host log file in the $LogFolder
# Script does not clean up old log files
#
# Caller: ValidateMessage
 
Function WriteToLog([String]$MessageString, [String]$HostName)
{
  # Simple time based roll-over check
  If ((Get-Date).Day -ne $Day)
  {
    $Day = (Get-Date).Day
    $DateStamp = (Get-Date).ToString("yyyy.MM.dd")
  }
 
  $LogFile = "$LogFolder$HostName-$DateStamp.log"
  $MessageString >> $LogFile
}
 
# Start the server
 
Start-SysLog