Пока учил python написал небольшой скрипт, а позже добавил GUI на pyqt4 к нему. Да, идея не особо оригинальная, но скрипт легко переделать под другие ресурсы (скачивание подкастов, фотографий и т.д.).

Краткое описание:
Создает папку music, в которую будет копировать файлы
Заходит на сайт и переходит на vkontakte.ru/audio
Копирует авторов, названия треков и url mp3 файлов
Сохраняет в папку music файлы вида: автор — название трека.mp3
Создает плейлист m3u (перечисление файлов)
Добавляются только новые треки, старые не удаляются

Для запуска скрипта должен быть установлен Python 2.x.x, для скрипта с GUI еще PyQt4. Для редактирования формы Qt Designer, ну и pyuic4 (у юбунтоводов все это есть в synaptic)


Скрипт без GUI

Функция LoginVk

Переменной url присваивается адрес скрипта авторизации, соответственно переменная form_data содержит данные для авторизации. Функция использует CookieJar() для входа и перехода по ссылкам с использованием cookie. Если скрипт не может соединиться с сайтом то функция возвращает 1.
Вконтакте использует кодировку windows-1251. Функция decode('cp1251') переводит в юникод полученную страницу.

def LoginVk(email,password):
print 'Connect to Vk...'
url = "http://login.vk.com?"
form_data = {'act' : 'login', 'q' : '1', 'al_frame' : '1',
'expire' : '', 'captcha_sid' : '', 'captcha_key' : '','from_host' : 'vkontakte.ru',
'email' : email, 'pass' : password}

jar = cookielib.CookieJar() #cookie storage
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) #opener whith cookie
form_data = urllib.urlencode(form_data) # encode url data

check=0
try:
resp = opener.open(url, form_data) # login
except:
check=1
try:
resp = opener.open('http://vkontakte.ru/audio') #open audio page
except:
check=1

if check:
response=1
else:
response=resp.read() #copy response
resp.close() #close site
response = response.decode('cp1251') # decode windows-1251
print 'Done'
return response


Функция DownloaderMp3

Переменной file_name присваивается имя с которым будет сохранен файл. Условие if os.path.isfile(file_name) проверяет существование этого файла, если существует то файл не закачивается. Переменная meta получает информацию о скачиваемом файле. Файл качается блоками по 8192 байт.

def DownloaderMp3(url,artist,song):
file_name = artist+' - '+song+'.mp3'
print "Downloading: %s" % (file_name)
file_name = 'music/'+file_name
if os.path.isfile(file_name):
print 'file exists'
else:
u = urllib2.urlopen(url)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Bytes: %s" % (file_size)

file_size_dl = 0
block_sz = 8192
while True:
buffer = u.read(block_sz)
if not buffer:
break

file_size_dl += block_sz
f.write(buffer)
#status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
#status = status + chr(8)*(len(status)+1)
#print status,
f.close()
print 'Done'


Функция main

Единственное что нужно изменить в скрипте LoginVk('you@mail.com','youpassword'), вставить сюда свой email и пароль. С помощью regexp забираем со страницы исполнителя, название трека и url mp3 файла. Блок clearing song_list очищает название трека от ссылки на текст (к некоторым трекам добавлены тексты песен). Далее проверяем существует папка music и создаем ее если нет. В цикле while закачиваем файлы, одновременно добавляя их в плейлист.

def main():
page=LoginVk('you@mail.com','youpassword')#login and password
if page==1 :
print'connection problem'
else:
artist_list = re.findall(r'; return false">(.*)',page) #take name of artist
del artist_list[-1] # delete '+audio[5]+'
song_list = re.findall(r' - (.*) ',page) #take name of song
del song_list[-1] # delete '+lyricsLink+'
mp3_list = re.findall(r'value="(http://.*mp3),\d*"',page) #take url mp3 file

###########clearing song_list#########
i=0
for item in song_list:
if re.match('.*', item):
clear = re.findall(r'">(.*)',item)
song_list[i]=clear[0]
i+=1
###################################

if not os.path.exists('music/'):
os.mkdir("music", 0770)

playlist_name = 'music/vkplaylist.m3u' #name playlist
f = open(playlist_name, 'w') #create playlist

i=0
while i DownloaderMp3(mp3_list[i],artist_list[i],song_list[i]) #Download mp3
line_list = artist_list[i]+' - '+song_list[i]+'.mp3\n' #one line in playlist file
f.write(line_list.encode("utf8")) #save line in playlist file
i+=1
f.close() #Close playlist file

print 'Finish'
Магнитные жидкости (МЖ) представляют собой коллоидные системы однодоменных магнитных частиц (дисперсная фаза), диспергированных в жидкости-носителе (дисперсионная среда). В магнитном поле магнитные жидкости ведут себя необычным образом. Так, при наложении внешнего поля наночастицы дисперсной фазы выстраиваются вдоль силовых линий, образуя своеобразные иглы, напоминающие колючки ежа. Подобное поведение магнитных жидкостей можно использовать для визуализации распределения магнитных сил в трехмерном пространстве.



В зависимости от массовой доли дисперсной фазы магнитные жидкости будут обладать разной намагниченностью насыщения. Чем больше намагниченность насыщения МЖ, тем более эффектно ее поведение при наложении внешнего магнитного поля. Наибольшая намагниченность магнитной жидкости, при которой она сохраняет свою текучесть, составляет 100 кА/м. В 1 см3 такой магнитной жидкости содержится около 5∙10(17) частиц со средним диаметром 10 нм. При наложении постоянного или переменного магнитного поля на такую магнитную жидкость появляются иглы высотой до трех сантиметров. Появляются аналогии с «Вавилонскими башнями». Несложно подсчитать, что от основания пика до его вершины выстраивается около 3∙10(6) частиц. Если уподобить каждую твердую частицу кирпичу толщиной 10 см, то получилась бы башня высотой 300 километров – Вавилонская башня.



Адгезия – необходимое условие для использования магнитных жидкостей в различных устройствах. Однако для демонстрационных целей желательно, чтобы магнитная жидкость не зависала на стенках. Если смачивание свести к минимуму, то, используя постоянные магниты, можно получить весьма причудливые фигуры.
Ни для кого не секрет, что борьба с пиратством превратилась в весьма выгодный бизнес. Потому что победить пиратство (или хотя бы свести его до приемлемого уровня) невозможно! Как можно победить ВСЕ население, потребляющее пиратскую продукцию? При том, что борцы с пиратством сами не брезгуют такой продукцией. Платить за то, что можно получить легко и бесплатно — противоречит здравому смыслу, а значит борьба с пиратством обречена на провал. И все модели, основанные на пожертвованиях — тоже.

Один из аргументов копирастов — забота об авторах, им-де нечего станет кушать. Я согласен с этим аргументом. Профессиональные писатели и музыканты обречены, обречены самой сутью технологического прогресса. И это вовсе не так ужасно, как может показаться. Рассмотрим это поподробнее. Итак, если все авторы художественной литературы вдруг завтра перестанут писать и займутся другими делами. Заглянем на либрусек или флибусту, что мы там видим? Объем библиотеки составляет около 20000 произведений, около 5 Гб в формате fb2!!! Ёпрст, да этого не прочитать за всю жизнь! И это при всем при том, что люди не перестанут писать, даже если за это перестанут платить деньги — у многих это внутренняя потребность, хобби. Аналогично и с музыкой. Итак, что мы имеем? А имеем мы то, что от того, что люди перестанут платить за копии музыкальных и литературных произведений, от этого мало что изменится — актуального контента хватит еще надолго, и производство нового не остановится, разве что замедлит темп. Конечно, и профессиональные писатели, и музыканты останутся — журналистику и концертную деятельность никто не отменит. Но продажа эфемерных копий более невозможна. Даже эпл с его айтюнсом, продает фактически не музыку, а услугу по ее доставке на все свои устройства.
Конечно, останутся исключения. Музыканты и авторы, чьи произведения настолько талантливы, что никого не оставят равнодушными. Им вряд-ли будет грозить нищета и забвение. Но таких крайне мало, и это не изменит общей картины. Коммерческие писатели и музыканты — обреченная профессия. Бурлаки на Волге, которых полностью вытеснили пароходы.


Все вышеперечисленное не относится к сфере ПО и киноиндустрии, их это коснется в гораздо меньшей мере. Программисты никогда не напишут полный комплект программ, которые полностью же устроят всех. По той простой причине, что потребности постоянно эволюционируют, появляется новое оборудование и прочее. А значит, спрос на их услуги не изменится. Коммерческие программные продукты вроде фотошопа и виндовса — тоже. Опять же не секрет, что большинство их прибыли от продаж идет из корпоративного сектора. (Прибыль от судебных исков за пиратство — предмет для отдельной статьи)
Касательно кино — пока есть кинотеатры, смерть киноиндустрии не грозит. Плюс новомодное стерео-кино набирает обороты, и в домах пока появится не скоро. Конечно, продажи ДВД и БД-дисков сойдут на нет, хотя далеко не сразу.

Итак, что же нас ждет? Здравый смысл показывает, что прогресс (и как следствие, пиратство) медленно, но верно убьет коммерческую художественную литературу и музыку, и слегка потеснит ПО и киноиндустрию. Естественно, что литературные и музыкальные издательства будут этому сопротивляться, поэтому настанет это светлое время не скоро — примерно через 10 лет. Если только деньги снова не одержат победу над здравым смыслом.
Всем привет!
Перед тем как начать топик по теме я сделаю маленькое предисловие, что бы было понятно как относиться к автору и какими мыслями он живет.

Мой путь в мир IT начался еще в школе в старших классах, уже тогда я знал что хочу связать свою профессию с Великим и Ужасным миром технологий. По окончании школы поступил в колледж на специальность с длинным и малоинформативным названием что я даже затрудняюсь вспомнить, но тоже связанной с компьютерами. Вообще в то время был пик спроса на такого рода специальности. Во время первого года учебы, у мне была предложена работа в информационном отделе колледжа, от которой я не смог отказаться так как это мне сулило много бонусов в учебе и в финансовом плане (хотя платили мало). После 3,5 года учебы, передо мной стоял выбор пойти в армию на 2 года или пойти учится в институт, устав от бесконечной нервотрепки на учебе и работе я решил взять себе отпуск и пошел в армию, тогда мне шел 21 год.

В армии солдатам что бы как то заработать деньги (себе на «приличный ужин» — батон, доширак, пакетик кофе и майонез) приходилось воровать, строить гаражи офицерам и т.д. а мне частенько доводилось собирать компьютеры из старых комплектующих валяющихся на технической позиции части. До сих пор помню эту гору техники которую привезли на утилизацию, чего там тока не было: мониторы огромных размеров, серверные стойки, жесткие диски по 1-3 гб. и т.д. Честно говоря в армии предвзятое негативное мнение о тех кто как то связан с компьютерами: можно сказать что их считают «неженками», и что бы это исправить сержантский состав старается больше направлять их на физическую работу, в наряды и т.д. По окончании службы у меня была возможность устроится в один из Подмосковных офисов разработки «антивируса Касперского», но из-за проблем с пропиской было решено вернулся домой.

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


Вот так выглядело мое рабочее место

На протяжении 3-х лет работы я развивал свои познания в технике, программном обеспечении (часть моей работы состояла в создании, обработке видео и аудио материала) и в малой доле составлением программ (парадокс, должность «программист»).

Около полугода назад я первый раз зашел на Хабр, и вот с тех пор являюсь постоянным читателем. В настоящее время я работаю в фирме в которой одним из направлений деятельности является разработка интернет решений на платформе 1С-Битрикс. Я успел уже принять участие в разработке нескольких разносторонних проектов: геоинформационный проект «Локатор ГИС», а так же лично собрал типовое решение для фан-сайтов игры «World of tanks».

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

В моей первой статье пойдет речь о том как можно расширить функционал компонентов средствами api Битрикс.

Задача: Как вставить во всплывающем окне редактирования компонента свою опцию.


Ответ:

Для начала нужно открыть в редакторе файл компонента component.php и в конец его вставить следующий код.

Формируем массив с параметрами для открытия всплывающего окна.
«URL» — хранится путь до файла, который будет открыт при нажатии на нашу опцию. Сюда же вставляются передаваемые параметры. Передача осуществляется методом POST.
$menu_edit_url = $APPLICATION->GetPopupLink(array(
"URL" => $componentPath."/edit.images.menu.php?lang=".LANGUAGE_ID.
"&site=".SITE_ID."&back_url=".urlencode($_SERVER["REQUEST_URI"])."&path=".urlencode($path))
);


Далее формируем массив с данными для отображения нашей опции.
$arIcons[] = Array(
"URL" => 'javascript:'.$menu_edit_url,
"ICON" => "bx-context-toolbar-edit-icon",
"TITLE" => GetMessage("ADD_ICON_TITLE"),
"DEFAULT" => true,
);

//выводим нашу опцию на экран
$this->AddIncludeAreaIcons($arIcons);


Теперь в файле который мы вызываем edit.images.menu.php нужно вставить следующий код:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php");

CUtil::JSPostUnescape();

$obJSPopup = new CJSPopup('',
array(
'TITLE' => "Моя опция",
'ARGS' => "lang=".urlencode($_GET["lang"])."&site=".urlencode($_GET["site"])."&back_url=".urlencode($_GET["back_url"])."&path=".urlencode($_GET["path"]),
)
);

//показать заголовок окна
$obJSPopup->ShowTitlebar();

//показать иконку описания, так же ниже можно вывести текст описания
$obJSPopup->StartDescription('bx-core-edit-menu');
Описание

//начать вывод основного контента окна, так же сюда можно вставлять описание стилей и код javascript
$obJSPopup->StartContent();
Содержание окна

//вывести внизу кнопки "сохранить" и "отмена", при нажатии на кнопки данные передаются методом POST в это же окно
$obJSPopup->ShowStandardButtons();

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");


Вот и все, путем несложных действий мы добились желаемого результата)
В данном примере использован код взятый с файла компонента /bitrix/menu/component.php и главного модуля /modules/main/public/menu_edit.php. При желании Вы можете самостоятельно их изучить.

Всем спасибо…
Летом 2009 Бакибаев Нуржан, преподаватель моего университета, решил организовать бизнес-инкубатор, дабы студенты имели «возможность» прочувствовать на собственных детских спинках что такое создавать продукт.

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

Пропорционально нашим мечтам Бакибаев бросил нас на растерзание одному футуристическому проекту. Мы естественно загорелись, услышав фразы «секретно», «в Казахстане только три конкурента», «космические возможности», «актуальность на рынке». Осознание того, что как таковой ни одной технологией мы не владеем, быстро снизило температуру на парочку градусов. Изучить? Не проблема!

Изучить надо было Silverlight (на тот момент была уже 2-версия) так, как предполагалось использование технологии DeepZoom,. Около недели мы потратили на всякие скрин касты, документации, но ничего не могли понять- мы ведь никогда до этого не сталкивались с ООП, а тут С# — полный вынос мозга после Паскаля и С++. Один из нас в школьные годы участвовал в олимпиадах про программированию, позже в университете я и он сформировали команду для участия на ACM, в университете записались на курс «ICPC ACM олимпиадное программирование », доходили только до полуфинала в Ташкенте, потому можно сказать, что наши знания в программировании были скудными, немного алгоритмов и все.

Увидев наши мучения-учения, Нуржан посоветовал изучать Silverlight сразу в бою, предложил написать игру ПаоПао для разминки. Все же помнят старую игрушки, в которую рубились офисные люди.

Работа закипела, процедурное по объектно-ориентированному, я использовал лишь один класс, другой создал сам того не понимая, так в туториале было написано.
С горем пополам за 2 недели мы написали убогое подобие игры. Вот ссылочка. На этом и остановились, разъехались по домам. Мы забили на проект инкубатора, даже не начав его.

На 2-ом курсе во мне проснулось желание доделать ПаоПао, к тому времени я уже «прослушал» курс «Объектно-ориентированное программирование — C#». Но знаний все еще не хватало, читал книжки, смотрел скринкасты Techdays, в моей голове навсегда останется «Здравствуйте, меня зовут Михаил Черномордиков». Узнав новую (для себя новую) фичу, я спешил ее использовать в игре. Появился на свет целый ряд версий «PaoPaoWinter», «PaoPaoSpring», «PaoPaoSpring2» и так далее.

Подходил к концу 2 год курс, на июнь месяц намечалась практика в университете. Нам назначили руководителя, она дала неоригинальное задание — придумать и написать в команде какой нибудь проект. Это была эпоха PHP на нашем потоке, все его знали, но никто не знал, что в действительности не знает его. Мне не хотелось писать проект на этом языке (уже тогда во мне зарождалась любовь к строгой типизации, Intellisense). Предложил другу написать сайт мини-игр, одна то игра у нас есть. За две недели практики я переписал заново ПаоПао до нормального состояния, доделал все уровни, улучшил прорисовку. Проект сдали на 5.

В августе того года мне захотелось опубликовать игру ВКонтакте. Пришлось изучать ВКонтакте API. На тот момент Silverlight приложение ВКонтакте могло жить только как IFrame-приложение. Напрямую из Silverlight приложения запросы к API можно было делать только используя JSONP так, так вся проблема была в отсутствии нужного crossdomain.xml на api.vkontakte.ru. Только вышла сторонняя библиотека Silverlight vkontakte API. Тогда я не разобрался, как ее использовать, постоянно появлялись ошибки. Решил обращаться к API посредством PHP, запросив все нужное до загрузки приложения, раскидал мне данные (друзья, профайл пользователя, настройки приложения) по разным DIV-кам на странице, потом из Silverlight-приложения вытаскивал содержимое этих DIV-ок. Выглядит глупо, но работало. Дальше еще глупее. Мне необходимо было сохранять рекорды и ввести общий рейтинг и рейтинг друзей. Единственным вариантом было использование собственной MySql базы для рекордов. Место на сервере вместе с одной базой мне выделили преподаватели. Из самого приложения я не смог обратиться к базе, пришлось вызывать javascript-функцию, которая асинхронно делала запрос к другой php-страничке на моем сервере, сохраняя рекорд игрока. Я тогда не понимал, что это не безопасно. Но все же запустил приложение PaoPao, думал, что к октябрю наберу 1000 участников.
Ага. Прошел год, а число участников все еще 600 — пропал. Чего и следовало ожидал, приложение было ужасным, иногда рекорды не сохранялись, проблемы с версткой, я не запрашивал устанавливать игру. Но все равно я следил за кем, кто играет, как часто, вел свою статистику. Кому-то это игра пришлась по душе, играли по 20 раз за день.

На 3 курсе я серьезно взялся за изучение .NETa, перечитал множество книжек, пробовал себя в ASP.NET, потом увлекся на полгода ASP.NET MVC… метался из технологии в технологию. В апреле был HACKDay, снова пришлось взяться за Silverlight, написали игру «Чего хотят курицы», версия игры на момент презентации, нужно быстро разгадывать анаграммы, заняли 3-е место. В тот момент мне снова захотелось переписать ПаоПао, решил отложить на лето.

Наступило лето. Взялся за изучение ВКонтакте API, за пример подражания взял приложение «Балда», через файрбаг смотрел все запросы приложения к API. Нечаянно нашел баг, можно на время увеличить свои очки в игре, с введением OAuth, появился новый упрощенный метод запросов к API. Зная access_token, выполняем запросы от имени клиента. «Балда» хранит очки используя метод putVariable, заходим на страницу приложения, сморим код страницы, ищем access_token, и выполняем запрос через адресную строку браузера. Я как дикарь сразу поставил себе рекорд 58000, потом стало стыдно. Целый день потратил на то, чтобы вернуть все на место, никак не мог убрать себя из ТОП10.

Изучив немножко API, решил взяться за приложение. В этот использовал новую стороннюю библиотеку. Crossdomain.xm был добавлен на api.vkontakte.ru на радость всем. Новая библиотека делала напрямую запросы к API. Решено было хранить рекорды на сервере ВКонтакте, список друзей, установивших приложения, получал первым запросом, потом парсил URL страницы. А рекорды друзей доставал, используя метод execute, в таком виде
code=return {"96899965":API.getVariable({"user_id":96899965, "key":key}),"105575458":API.getVariable({"user_id":105575458, "key":key}),"126313781":API.getVariable({"user_id":126313781, "key":key}),"6773085":API.getVariable({"user_id":6773085, "key":key})};.

Оказалось что больше 25 запросов к API в методе execute выполнять нельзя, пришлось порциями рекорды друзей вытаскивать. До сих пор не знаю правильно это или нет. Переписал все, попросил друга улучшить алгоритм поиска пути между картинками, сам записал звуки, часть украл конечно. Придумал парочку новых уровней, добавил паузу, дал возможность сохранить игру.

ПаоПао 2.0 вот новая версия игры.
Решил больше не переписывать, пора взяться за «куриц».
решил написать об украинском флагмане банковского дела — ПриватБанке. Надеюсь кто-нибудь из разработчиков или руководства этого банка читает Хабр и постарается хотя-бы задуматься над вопросами, затронутыми в статье.

К ПриватБанку я отношусь достаточно хорошо, тем более что некоторые вещи у ПриватБанка действительно хороши, например, обналичка чеков Google в короткий срок, Приват24 когда работает, но все же, в этой бочке меда есть полбочки ложка дегтя.

1. Бумажная волокита

В банке у меня открыто 2 депозита, кредитная и зарплатная карты. Для открытия нового депозита кроме подписания договора мне обязательно нужно заполнить бланк-анкету, без которого «я не могу пробить новый депозит». И не важно, что этот бланк заполняется мною несколько раз в году — нужно заполнить и в этот раз.

Предложение: ограничиться одноразовым заполнением анкеты. В дальнейшем сотруднику банка нужно только проверить актуальность информации в анкете (прописка, фамилия, идентификационный код и т.п.). Это упростит работу сотрудникам, ускорит работу с клиентами и уменьшит документооборот.

2. Сложности с открытием кредитной карты

Что нужно, чтоб открыть кредитную карту и снять с нее деньги? Заполнить несколько документов, получить карту, подождать одобрения кредитного лимита банком и можно пользоваться деньгами. Это в идеале. В ПриватБанке это совсем не так.

После заполнения документов, нескольких подписей, копирования паспорта/кода следует сделать семейный снимок с полученной картой. После этого — активировать карту, отослав SMS на короткий номер. Дождавшись прихода ответа можно считать, что карта активирована. Но снять деньги нельзя — на карте установлен пин-код 0000 — его нужно пойти сменить в банкомате. Большинство обычных пользователей кредитных карт просто пугаются подобных операций, поэтому сотруднику банка приходится выходить из отделения и вместе со счастливым обладателем кредитки в банкомате менять пин-код на новый (а очередь в это время только растет).

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

3. Чеки Google именные чеки

ПриватБанк реализует очень быструю программу инкассо именного чека физическим лицам — всего за 3 дня после получения чека банком. Действительно отлична услуга, если бы не одно но — чек нужно обязательно присылать через УкрПошту (это так же грустно, как и Почта России, а может быть еще грустнее — были случаи, когда заказное письмо из одного дома в соседний шло две недели).

Предложение: после загрузки копий чека в интерфейс Приват24 разрешите пользователям сдать чек в отделение банка, в таком случае клиент будет уверен в сохранности чека (по крайней мере, будет иметь на руках бумагу о том, что чек принят банком). Это повысит доверие к операции (сейчас слабое звено в этой цепочке — УкрПошта).

4. Приват24

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

Предложение: Не проводите тестирование и изменение кода Приват24 хотя бы во время максимальной нагрузки на сервис. Верните колонку «баланс» — она важнее, чем дважды дублированная колонка суммы платежа.

5. Сохраним лес

Это просто отличная идея – напоминать клиентам о окружающей среде, сохранении лесов, жаль, что данное сообщение не появляется при печати платных выписок.


Предложение 1: сделайте все подобные сообщения более контрастными, поднимите активные кнопки выше (хотя бы на вторую снизу позицию). Чтоб сфотографировать этот экран ходил к банкомату 3 дня – реально на солнце вообще ничего не видно.

Предложение 2: для карт «электронная копилка» хотя бы предложите просмотреть информацию на экране. Не пойму, зачем сразу печатать чек? Можно ведь после идентификации карты написать сумму на счету и спросить клиента, нужен ли ему чек. Работы на несколько минут, а экономии на бумаге – много (и лес сохраним и деньги).

Есть еще пожелания, как сделать ПриватБанк лучше – пишите, возможно, общими усилиями удастся что-либо изменить.
Аккаунт — виртуальный я.

Уязвимые для атак места
Создание аккаунта
Вход в аккаунт
Сохранение статуса
Восстановление аккаунта

Виды атак на аккаунты (по возрастанию сложности)
Подбор ответа на секретный вопрос
Автоматическая регистрация аккаунтов
Восстановление пароля по электронной почте
Восстановление пароля через сотовый телефон
Перебор пароля по базе, брутфорс
Полный перебор пароля, брутфорс
Поддельный сайт, фишинг
Подмена ip в hosts на поддельный сайт, фишинг
Перехват нажатых клавиш, keylogger, троян
Похищение cookie, троян
Сохранение пароля браузером, троян
Воровство паролей, вирус
Межсайтовый скриптинг, XSS
Перехват трафика, сниффер
SQL-инъекция, код
Взлом MySQL, сервер
Взлом UNIX, сервер
Социальная инженерия


Как все устроено, реализация

Жесткие условия работы с аккаунтом обеспечат безопасность и комфорт.

Создание аккаунта

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

Вход в аккаунт

При вводе пароля последние 4 символа вводятся с виртуальной клавиатуры. Для передачи пароля используется SSL протокол. Используется собственная база данных (только для хранения паролей SID), пароли кодируются по собственному алгоритму и имеют стандартный размер 512 байт.
Так же будет использована печать, на подобии той что использует Yahoo, только с привязкой к логину, а не к компьютеру через куки.

Сохранение статуса

Идентификатор сессии сохраняется в Cookie с проверкой User Agent и ip.

Восстановление пароля

Через пригласившего.

И конечно же самый опасный метод атаки на аккаунт — социальная инженерия, 0 полезных идей.

Где то там, далеко...

Вечер. Человек садится перед компьютером, и говорит ему: «Привет!».
Машина сканирует голос, камера снимает сетчатку глаза, кнопка на мышке сканирует отпечаток пальца и передается, по протоколу который не возможно взломать, на сервер.
Грустными глазами смотрит на это автор статьи, которому скучно жить.
Недавно столкнулся со следующей проблемой. Имеется:
маршрутизатор, раздающий интернет по Wi-Fi, находящийся двумя этажами выше,
нетбук, работающий под управлением Ubuntu 10.04 LTS с настроенным Wi-Fi и свободным сетевым разъемом,
стационарный компьютер со свободным сетевым разъемом с недавно установленной на него той же самой Ubuntu.

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

Я привык к тому, что в Linux все делается просто и быстро, но через консоль и поэтому был приятно удивлен тому, что с поставленной задачей запросто справляется Network Manager.

Соединяем разъемы компьютеров. Открываем Network Manager. Интерфейс нетбука, подключенный к интернету — wlan0, раздающий на нетбуке и единственный у стационарного компьютера — eth0. Появится форма Сетевые соединения с выбранной вкладкой Проводные.



Нажмем Изменить..., и появится форма Изменение Auto eth0 (может называться по-другому). На ней выберем вкладку Параметры IPv4.



Единственное, что нужно сделать для того, чтобы расшарить интернет — это выбрать метод Общий с другими компьютерами и нажать Применить.

То же самое сделал на стационарном компьютере.

И все, интернет на скорую руку готов, google.com открывается на обеих машинах! IP адреса интерфейсов eth0 будет получены автоматически с помощью DHCP, настраивать который в Ubuntu 10.04 «из коробки» не пришлось.
Операторы сотовой связи борются за выживание всеми доступными (да и не доступными тоже, чего греза таить) способами. Одним из них является выпуск собственных мобильных телефонов. В основном это телефоны малого и среднего бюджетного класса, но в последнее время наметилась тенденция выпуска более качественных моделей и даже смартфонов.


Оператор мобильной связи «МТС Украина», сообщила о выпуске первого мобильного телефона, выпущенного под собственным брендом МТС. Такая новинка получила название МТС 236. Производителем телефона является корпорация ZTE.

«ВымпелКом» продает сегодня под брендом «Билайн» две модели бюджетных телефонов «Билайн А100» и «Билайн С100», смартфон «Билайн Е300» и планшетный компьютер «Билайн М2». Премьера этой линейки брендированных устройств состоялась в декабре прошлого года.

«МегаФон» предлагает своим абонентам телефоны и смартфоны, модемы с разными скоростными возможностями, в том числе до 21 Мбит/с, нетбуки, Wi-Fi-3G-роутеры, MMS- и видеокамеры, MMS-фоторамки и т.д. Большинство этих устройств производит одна из крупнейших китайских компаний в сфере телекоммуникаций Huawei Technologies, нетбуки – компания «Lenovo» (бывший IBM). Наиболее доступным из брендированных телефонов «МегаФон» является модель Huawei G2200 – простой и удобный телефон, предназначенный для звонков и отправки SMS.

МТС вывела на рынок 11 телефонов под собственным брендом, а также ко-брендированные аппараты МТС-Nokia 2710 и Nokia X3 Touch and Type. В линейке брендированных телефонов есть бюджетные модели (МТС 236), устройства для бизнес-пользователей (МТС Business 840), 3G-телефоны (МТС 733, 736, 835, МТС Business 840), модели с сенсорным экраном (МТС Trendy Touch 547, МТС Touch 540). В ноябре 2010 года в линейке телефонов МТС появился первый смартфон МТС 916 Android, а в декабре – первый планшетный компьютер МТС. Для выпуска брендированного оборудования МТС сотрудничает с различными производителями: Nokia, Alcatel, ZTE, Huawei.

Также ходили слухи о том, что Европейские операторы сотовой связи могут разработать собственную мобильную ОС, что может благотворно сказаться на общем рынке мобильных технологий. Здоровая конкуренция никогда не вредила.

В Китае пошли еще дальше и готовят к выпуску новую ОС WoPhone на основе ядра Linux. ОС найдёт применение прежде всего в смартфонах и планшетных компьютерах. Устройства на базе WoPhone уже готовят такие известные производители, как Samsung, Motorola Mobility и HTC, а также китайские ZTE и Huawei Technologies.

Я намеренно не упоминаю о корпорациях Vodafone Group и Orange, крупнейших европейских операторах мобильной связи, давно выпускающих под своим брендом мобилки. Думаю их все и так знают )
Плохо это или хорошо, не мне судит, но в выпуске операторами собственных телефонов, смартфонов, операционных систем и так далее есть множество положительных факторов, основным их которых является конкуренция. Которая так или иначе приведет к улучшению качества предоставляемых услуг. Я надеюсь :)
Приветствую вас.
Когда я заканчивал последний год обучения в школе, точнее отрабатывал решение тестов по ЕГЭ, я уже выбрал сферу в которой хотел получить профессию. Да, это IT. Выбрал как-то само собой, вообще не мучился. Конечно же подал документы в технический университет. И вот, заполняя анкету, нужно было выставить приоритеты по направлениям. Первой в списке я и поставил программную инженерию. Осознанно. Хотя мои представления об этой специальности не были до конца полны на тот момент. Ну собственно как выбрал, так туда и попал…

Первый семестр


Естественно учеба в университете была в новинку, много впечатлений и т.д. Направление «Программная инженерия» появилась в университете впервые. По нему готовят бакалавров, т.е 4 года обучения, затем можно пойти в магистратуру. Группа собралась из 14 человек (кстати, по завершению курса осталось всего 10)

В первом семестре были достаточно стандартные дисциплины.
А именно:
– Иностранный язык (ну, тут очень стандартно)
– Математический анализ (классический предмет)
– Алгебра и геометрия (матрицы и векторы)
– Отечественная история (от начала и до новейшей за один семестр, ага)
– Информатика (консоль windows и OpenOffice)
– Физкультура (опять стандартно)
– Введение в специальность
– Алгоритмизация математических задач .

О двух последних подробнее.
Введение в специальность представляло собою курс лекций, на которых речь шла об программировании в довольно-таки простой и понятной форме.
Алгоритмизация математических задач, это был курс практических занятий, на которых мы подробно разбирали блок-схемы, псевдокод, и как бы программировали на как бы языке «Кумир». Ну, собственно изучали всяческие алгоритмы.

По завершении семестра сдавали экзамены по Алгебра и геометрии, Информатике и Отечественной истории.

Второй семестр


О, а вот тут уже интересно.
Итак, перечислю дисциплины:
– Безопасность жизнедеятельности (куда без нее)
– Математический анализ (опять он)
– Иностранный язык (продолжаем изучение)
– Физкультура (аналогично)
– Дискретная математика (множества, графы и Булевы функции)
– Теория решения изобретательских задач
– Программирование на языке высокого уровня
– Основы программной инженерии

Три последних предмета представляют наибольший интерес.
Теория решения изобретательских задач – очень интересная дисциплина. Она меняет стиль мышления. Занятная концепция.
Программирование на языке высокого уровня, тут мы приступили к изучению великого и ужасного С++. Курс лекций параллельно с практическими занятиями. Ну, занятия – как занятия, за семестр 26 лабораторных работ. Некоторые темы лабораторных: Циклические вычислительные процессы, Обработка числовых последовательностей с использованием вектора, Матрицы, Массивы, Строки, Функции библиотеки для работы со строками и символами, Реализация стека и очереди, Указатели на функции, Рекурсивные функции, и другие. В общем за семестр изучили азы, достаточно так хорошо изучили.
Основы программной инженерии – вводный такой курс. Начиная от истории программирования, да разбора стандартов. Плюс еще касательно самого программирования – параллельное изучение среды BlackBox. Ну и реализация некоторых тех же лабораторных работ по Программированию на языке высокого уровня.

Экзамены сдавали следующие: Математический анализ, Дискретная математика, Основы программной инженерии и Программирование на языке высокого уровня.

Впечатления


Курс выдался интересным и главное – познавательным. Так как направление новое, может оказаться, что учебный план будет сырым, но очень радует энтузиазм преподавателей. Хотя, это конечно первый курс. Основное обучение по данному направлению будет на третьем и четвертом. Как говорится дальше — больше.

Сейчас, кстати, проходит учебная практика. Пишем программы и сопровождаем их документацией. Это как бы подготовка к двум курсовым работам на следующий курс. Такая же практика будет проводиться и после четвертого семестра. После третьего курса – уже производственная практика.

Ну, вот я и поведал вам об организации учебного процесса в моем университете