[Perl] Vk bot v0.1

Не дописан. У Perl почти на все есть модуль и вк не исключение ( модуль ). Да, можно было сделать и без модуля, но лень. Костылей много. К примеру, access_token изменяется только с каждым новым запуском, потому стартуем так — while(1) do <путь к скрипту>; done
Ну или такой костыль, если его исправить, будет кроссплатформенно
system(":> ~/.vmd.cookie");
system("sed -i '1d'~/Документы/sim/login");

Очищаем печеньки и удаляем первую строку из списка с аккаунтами.
До передаваемых параметров не дошла.
Типы возвращаемых данных или xml или json. Читать документацию к ним не было нималейшего желания, потому костыли на регвырах.
Собственно, что умеем —
лайкать, удалять лайк, писать коменты на стену\фото, вступать\покидать в группу, устанавливать статус, добавлять\удалять друзей из списка, опросы не доделаны.

Чтобы вызвать каку-либо функцию, ее надо вызвать из кода после
print $vk->uid,"\n"; #print id user # Можно и до.
исходник

Placeholder

Посещая различные ресурсы сети Интернет, каждый из нас практически постоянно сталкивается с полями, которые по умолчанию заполнены определенным текстом, например, образцом заполнения полей для ввода логина или пароля. Все поля, которые предварительно заполнены текстом-подсказкой, имеют светло-серый цвет. Если пользователь щелкает в этом поле, текст исчезает, и он может вводить текст. Данные поля очень удобны для пользователей: во-первых, они позволяют пользователю визуально различать заполненные и незаполненные поля, что делает работу с ресурсом более удобной — для этого используется цветовая гамма. Во-вторых, определяется формат ввода данных в выбранное поле, что обеспечивает быстроту работы с ресурсом — пользователь не тратит время на повторный ввод данных — ошибится форматом практически не возможно.
Реализовать данные поля возможно не только в верстке веб-ресурсов, существует и возможность реализации в Windows Phone 7. Код, реализующий данную функцию, представлен ниже. Наличие текста-подсказки определяется с помощью выставления атрибута TextBoxText.

xmlns:controls="clr-namespace:WatermarkTextBox"
...
<controls:WatermarkTextBox WatermarkText="Введите Ваш e-mail" />


public class WatermarkTextBox : TextBox
{
public string WatermarkText
{
get { return (String)this.GetValue(WatermarkTextProperty); }
set { this.SetValue(WatermarkTextProperty, value); }
}
public static readonly DependencyProperty WatermarkTextProperty =
DependencyProperty.Register("WatermarkText", typeof(String), typeof(WatermarkTextBox), new PropertyMetadata(String.Empty));

public SolidColorBrush WatermarkForeGroundColor = Application.Current.Resources["PhoneTextBoxReadOnlyBrush"] as SolidColorBrush;

public WatermarkTextBox()
{
Loaded += new RoutedEventHandler(WatermarkTextBox_Loaded);
}

void WatermarkTextBox_Loaded(object sender, RoutedEventArgs e)
{
this.Text = !String.IsNullOrEmpty(WatermarkText) ? WatermarkText : String.Empty;
this.Foreground = WatermarkForeGroundColor;
}

protected override void OnGotFocus(RoutedEventArgs e)
{
base.OnGotFocus(e);

if (WatermarkText == this.Text)
{
this.Text = String.Empty;
this.Foreground = Application.Current.Resources["PhoneTextBoxForegroundBrush"] as SolidColorBrush;
}
}

protected override void OnLostFocus(RoutedEventArgs e)
{
base.OnLostFocus(e);

if (String.IsNullOrEmpty(this.Text))
{
this.Text = !String.IsNullOrEmpty(WatermarkText) ? WatermarkText : String.Empty;
this.Foreground = WatermarkForeGroundColor;
}
}
}

Парсер Alexa Rank

Все владельцы ресурсов сети Интернет хотят, чтобы их сайты были в топе выдачи поисковых систем. Для этого выполняется поисковая оптимизация, раскручивается ресурс под целевые аудитории, выполняется презентацию информации, товаров и услуг. Реклама носит характер убеждения и направляется в сторону обширной аудитории возможных клиентов или посетителей ресурса. Чтобы определить направления, которые наиболее востребованы посетителями конкурентных ресурсов, стоит оценить рейтинг ресурса в поисковой системе относительно аналогичных сайтов. Для удобства оценки рейтинга и, соответственно, анализа выбранной конкурентом рекламной кампании я предлагаю использовать скрипт, который автоматизирует проверку рейтинга Alexa Rank.


#!/bin/bash
i=1
s=`cat url.txt |wc -l`
while [ $i -lt $s ]
do
name=`sed ''$i'!d' url.txt`
echo $name
curl http://www.alexa.com/siteinfo/$name | grep '&rank=' >> log.txt
sed 's/.*=\(.*\)$/\1/g' < log.txt > newlog.txt
echo `sed ''$i'!d' url.txt` '=' `sed ''$i'!d' newlog.txt` >> rank.txt
let "i = $i + 1"
sleep 15
done
rm log.txt
rm newlog.txt

Listpicker в Windows Phone 7

Windows Phone 7 — это современная мобильная операционная система от Microsoft. Особенностью данной ОС является наличие нового ядра Windows CE, новый уровень API и GUI. GUI Windows Phone 7 требует написание приложений на SilverLight/XNA. В данной статье я расскажу Вам о применении контрола Listpicker для создания максимально удобных приложений под Windows Phone 7.

ListPicker это один из контролов в Silverlight Toolkit для Windows Phone 7. Он предназначен для выбора какого-либо пункта из списка. Данный элемент очень похож на Combobox, но имеет значительно больше возможностей, чем ComboBox. Например, если необходимо отобразить список небольшой длины, то ListPicker покажет данные в виде Combobox-а (описывается свойством ItemTemplate и используется в тот момент, когда отображается один выбранный элемент из списка, т.е. контрол не активен), а если необходимо отобразить большее число позиции списка, то Listpicker покажет данные в виде ListBox-а (задается параметром FullModelItemTemplate и используется при выборе пользователя из всего списка, т.е. когда контрол ListPicker активен). Выбор формы отображения происходит автоматически. Именно поэтому, данный элемент управления очень удобно использовать. Преобразовать использованные в уже написанных приложениях ListBox-ы в ListPicker-ы очень легко — достаточно просто заменить название контрола в xaml файле с ListBox на ListPicker.

Создадим простое приложение на Microsoft Silverlight.
Для этого запускаем среду разработки и создаем новый проект Windows Phone Application Project.

Далее щелкните правой кнопкой мыши на References -> выберите Add Refrences -> и выберите Microsoft.Phone.Controls.Toolkit:

Затем, выбираем MainPage.xaml и происходит построение интерфейса пользователя, но для использования Microsoft.Phone.Controls.Toolkit необходимо после этого в нем объявлить

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

Теперь добавим несколько контролов на главную страницу: TextBlock, TextBox и ListPicker:

Для использования ListPicker мы должны определить ItemTemplate и FullModeItemTemplate:

<phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Name="lpkItemTemplate">
            <TextBlock Text="{Binding Country}" />
        </DataTemplate>
        <DataTemplate x:Name="lpkFullItemTemplate">
            <TextBlock Text="{Binding Country}" />
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>

Полный код XAML:

<phone:PhoneApplicationPage
    x:Class="ListPickerDemo.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">
    <phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Name="lpkItemTemplate">
            <TextBlock Text="{Binding Country}" />
        </DataTemplate>
        <DataTemplate x:Name="lpkFullItemTemplate">
           <TextBlock Text="{Binding Country}" />
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>
    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="ListPicker" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>
        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <TextBlock Text="Name" Margin="14,0,0,0"/>
            <TextBox Grid.Row="1" Name="txtName"/>
            <TextBlock Text="Ages " Grid.Row="2" Margin="14,0,0,0"/>
            <TextBox Name="txtAge" Grid.Row="3"/>
            <TextBlock Text="Country" Grid.Row="4" Margin="14,0,0,0" />
            <toolkit:ListPicker FullModeItemTemplate="{Binding lpkFullItemTemplate}"
                Grid.Row="5" ItemTemplate="{Binding lpkItemTemplate}"
                x:Name="lpkCountry"/>
            <Button Content="Submit" Grid.Row="5" Height="72" HorizontalAlignment="Left" Margin="284,87,0,0" Name="btnSubmit" Click="btnSubmit_Click"
             VerticalAlignment="Top" Width="160" />
        </Grid>
    </Grid>
</phone:PhoneApplicationPage>

Затем переходим к MainPage.xaml.cs и задаем массив строк в качестве примера данных, а также добавляем для ListPicker свойства ItemSource:

C # код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
namespace ListPickerDemo
{
    public partial class MainPage : PhoneApplicationPage
    {
        String[] Country = { "Viet Nam","Japan",
                              "China","USA",
                              "Poland","Brazil",
                         "Singapore","Philipin","Malaysia"};
        public MainPage()
        {
            InitializeComponent();
            this.lpkCountry.ItemsSource = Country;
        }
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            String _Content = String.Format("Name: {0} \nAges: {1}\nCountry: {2}", txtName.Text,txtAge.Text,lpkCountry.SelectedItem);
            MessageBox.Show(_Content);
        }
    }
}

Теперь мы запускаем приложение для просмотра результата:

Если у вас небольшое число стран:

И если у вас длинный список стран (будет работать FullModeItemTamplate):

И после подтверждения формы:

Данный контрол очень удобен для использования практически во всех приложениях: для создания рубрицированного каталога книг электронной библиотеки, библиотеки аудиоплеера, для удобства заполнения форм регистрации и так далее. Применение ListPicker-а, несомненно, делает интерфейс приложения более удобным для пользователя и снижает время, затрачиваемое на выбор параметров. Простота применения и модификации позволяют использовать данный контрод программисту любого уровня — от новичка до профессионала.

Imagine cup 2012 и я

Для начала вкратце расскажу, для тех кто не в теме, что же это такое.

Imagine Cup – одно из крупнейших в мире студенческих соревнований, которое проводится Майкрософт при поддержке других высокотехнологичных компаний.

Основной конкурс Imagine Cup – это конкурс программных проектов, в котором команды студентов и аспирантов придумывают, как технологии могут решить сложные проблемы современности, и демонстрируют прототипы проектов жюри в ходе нескольких этапов отбора. По результатам конкурса лучшая команда из России представляет страну на международном финале.

Зачем это надо? 

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

А теперь, о том, к чему это я..

Сегодня мне пришло письмо с уведомлением, что моя команда прошла в региональный финал Imagine cup 2012  в  Software Design.  Команда называется Healthy Generation, из названия уже можно примерно представлять о чём  проект. Я тут не буду рассказывать о чём он, просто потому, что я ленивая и не хочу так много печатать, а заявку на участие копировать смысла нет, ибо очень много текста и мало вероятно кто будет читать.

Придумать идею и решение её при помощи технологий Microsoft не так то просто оказалось, как казалось с самого начала.  Хотя выбранная мною проблема довольно актуальна и пожалуй всем известна.  24 марта на м. Крылатская будет проходить региональный финал, в котором примет участие моя команда. Если вы хотите придти поболеть за мою команду, а заодно и послушать кто и что придумал, то регистрируйтесь по ссылке.

 

Подкаст от антивир Касп.

Слушать.

Просматривая свою твиттер ленту, моё внимание сосредоточилось на записе с текстом, не буду говорить от кого, дабы не позорить:»Сергей Новиков из «Лаборатории Касперского» утверждает что Windows 7 гораздо безопаснее MacOS X и прочих Unix/Linux. <и ссылка на подкаст> «. Мне, как пользователю Linux, и человеку весьма повернутому на ИБ, стали интересны аргументы. Да-да, вдруг случилось то, что я пропустила.
Не могу не поделиться со своими читателями таким позитивным подкастом. Самая жара начинается с 15 минуты и сколько-то там секунд, забыла уже.
Поражает как такие люди могут работать в сфере ИБ. И весьма поразил аргумент про MacOS, что она не безопасна, ибо ПО с торентов. Про app store сие товарищ и не слышал. Конечно понятно, что это реклама их антивируса, но нельзя же до такого доходить.
Смешно до слёз.
Совет придумать один пароль и дописывать к нему название ресурса на котором он используется это пздц, иначе это никак не назвать.

Siege

Siege – это утилита для тестирования нагрузки  веб-серверов. Она может имитировать некоторое количество пользователей,  из-за чего может упасть веб-сервер. Упасть скорее про любителей хостинга на домашнем пк. Некий такой виндовый любитель с i7 процессором упал за 23 сек, при 200 потоках



Использование добольно простое

siege -C<количество потоков> -t<время, например 1h> <sitename>

Логи

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