Избранное трейдера VLTorgovie



1 Пользую 7 лет выделенный сервак в датацентре. Но тслаб отожрался до 20 гиг, требует 2ух моторного серебряного ксеона о 24ех ядрах и 48ми потоках. А стоит такое чудо ажно 250к в год ну и сам тслаб 40к в год. Т.е 10 за лет сервак прожирает новый авто. И сбоит этот сервак стабильно раз год.
2 На грудь прыгнула здоровенная жаба — платить такие деньжища. И решил попробовать смастерить подходящую замену серверу из говна и палок.
3 Мысль была в том, чтоб взять два компа. Поставить их в разных городах, чтоб исключить проблемы с электричеством, интернетом и техникой. Т.е оба компа сразу не сдохнут, электричество одновременно не отключится и интернет одновременно не пропадет. На обоих компах поставить тслаб, соеденить их через облако, и как только один компов дает сбой — отключать его, включать второй комп и поднимать резервную копию с облаков.
1. Закрыть оперу и открыть файл «C:\Users\(user)\AppData\Roaming\Opera Software\Opera Stable\Secure Preferences» можно через WordPad.
2. В самом конце документа заменить строку на следующее: «vpn»:{«blacklisted_locations»:[«cn»,«ua»],«last_established_location»:«UA»}}" (вроде бы это Украина). Сохранить документ.
3. Запустить оперу, зайти в настройки (Alt+P), в строке поиска настроек набрать «VPN» включить появившуюся опцию.
p.s. лучше так же отключить автообновление, как это сделать можно нагуглить
1. Александр Герчик показал стейтмент 46К (17.05.2017)
2. Лариса Морозова — как жить на дивиденды 46К (06.10.2015)
3. Интервью с TATARIN до того как 4 раза выиграл ЛЧИ 45К (6.10.2015)
4. Наталья Орлова (Smeshinka) и Виктор Тарасов 42К (19.05.2017)
5. Сергей Спирин про пассивные инвестиции 40К (06.02.2017)
6. Максим Орловский рассказал свою историю 34К (02.05.2017)
7. Silent Hamster про то как делать профит каждый день! 33К (03.05.2017)
Следующая конференция смартлаба состоится 26 июня в Санкт-Петербурге. Информация здесь.
#конфасмартлаба
Надоело логиниться в квик каждый день по 10 раз, всё время за логином-паролем лазить в файл и копипастить. Сделал скрипт, к-й это автоматизирует. Работает на javascript, так что от версии Windows зависеть не должно.
Сам скрипт кладётся в файл типа C:\Util\Js\Q.js или куда угодно, только не у всех на виду. На этот скрипт делается ярлык, он кладётся на рабочий стол куда-то в угол, и ему прописывается горячая клавиша типа Ctrl-Alt-X или любая другая буква. После этого вы запускаете квик, появляется окно логина, нажимаете Ctrl-Alt-X и через полсекунды оно срабатывает. Важно, что ярлык должен быть на рабочем столе, иначе горячая клавиша не работает.
Вообще вводить данные в другую программу можно двумя способами: copy&paste и эмуляция клавиш. Я в данном случае пошёл по второму пути, хотя и первый тоже реализуем и даже чем-то лучше, т.к. там не надо парится с языком. Из-за этого, если вы хотите использовать этот скрипт, нужно проверить ряд моментов и при необходимости внести исправления.
⦁ В варианте, к-й я выкладываю, логин/пароль должны быть прописаны прямо в скрипте, но можно и читать из файла. У меня дома рабочий вариант вообще ищет их в rtf-файле где много всяких данных. Если логин/пароль положить во внешний файл, то их можно конечно и закодировать.
⦁ Чтобы отработало правильно, надо чтобы текущий язык ввода (по сути язык ввода по умолчанию в системе) в квике был русский. Если это не так, то вначале надо поменять bEngSystem=true
⦁ У меня логин русский, а пароль английский, так что между ними производится переключение клавиатуры. Если у вас что угодно из этого не так, надо в нужных местах убрать или добавить переменную LangSwitch, к-я содержит клавиши «Alt-Shift». Если у вас опять же язык переключается по-другому, там надо прописать другие клавиши.
⦁ У меня вводится и логин и пароль. Если у вас вводится только пароль, то поменять тоже нужно и не сложно.
В общем, можно было бы написать более универсальную версию, чтобы определяеть, когда надо переключать языки автоматом, но мне не нужно, а кому надо разберутся. Или же можно переписать через copy&paste. Делать полностью автоматизированный логин, когда вообще ничего нажимать не нужно я не хочу, потому что тогда любой, кто получит доступ к вашему компьютеру сможет получить доступ и к вашим деньгам, просто кликнув на квике. Так хоть комбинацию клавиш знать надо.
bEngSystem=false; //язык системы по умолчанию
LangSwitch="%+!";
WshShell=WScript.CreateObject("WScript.Shell");
InitKeys();
KeysSeq=GetData();
if (KeysSeq) EnterData(KeysSeq);
//------------------------------------------------------------------------
function GetData(){
//(Возможно) читаем данные из файла и преобразуем в последовательность клавиш
//"!" означает паузу для специальных клавиш, к-е требуют время обработки
var DataFN, oStream, Data, Pos1, Pos2, Line;
if (0){ //данные в файле
DataFN='C:/...';
FSO=new ActiveXObject("Scripting.FileSystemObject");
oStream=FSO.OpenTextFile(DataFN, 1); Line=oStream.ReadAll(); oStream.Close();
}
else Line='имя:password';
//Tab должен быть и вначале, потому что при фокусировке квика текущее поле - список серверов
Line="{Tab}!"+Line.replace(/:/g, "{Tab}!"+LangSwitch);
//Переключение языка в самом начале если логин русский
if (bEngSystem) Line=LangSwitch+Line;
//конвертация русских символов
Line=Line.replace(/[А-Яа-я]/g, RusCB);
return Line;
}
function EnterData(KeysSeq){
var ret;
WScript.Sleep(300); //Пауза позволяет убрать руки от клавиатуры до того, как скрипт начал работать
ret=WshShell.AppActivate("Идентификация пользователя"); if (ret==0) return;
WScript.Sleep(100);
aSeq=KeysSeq.split('!');
for(var i=0; i<aSeq.length; i++){
Seq=aSeq[i];
if (Seq!=''){
WshShell.SendKeys(Seq); WScript.Sleep(100);
}
}
WshShell.SendKeys("{Enter}");
//WshShell.SendKeys("%+"); WScript.Sleep(100); //switch to Russian
//WshShell.SendKeys("{Tab}"); WScript.Sleep(100);
//WshShell.SendKeys("^V"); WScript.Sleep(100); //paste
}
function RusCB(s){
var n, ch, i;
if (s.length==1){
ch=s;
}
else{ //rtf
//код символа в Ansi
s=s.substr(2); n=parseInt(s, 16); ch=String.fromCharCode(n);
}
//Преобразовать в Utf и найти в русских клавишах
i=RusKeys.indexOf(Ansi2Utf(ch));
//Найти соотв. латинскую клавишу
return LatKeys.charAt(i);
}
//------------------------------------------------------------------------
function Ansi2UtfN(Code){
if (Code>=192 && Code<=255) Code+=848;
else if (Code==168) Code=1025; else if (Code==184) Code=1105;
return String.fromCharCode(Code);
}
function Utf2AnsiN(Code){
if (Code>=1040 && Code<=1103) Code-=848;
else if (Code==1025) Code=168; else if (Code==1105) Code=184;
return String.fromCharCode(Code);
}
function Ansi2Utf(Str, bRev){
var Buf='', Ch, Res='', c=0, L, n, f;
L=Str.length; f=(!bRev ? Ansi2UtfN : Utf2AnsiN);
for(n=0; n<L; n++){
Ch=Str.charCodeAt(n); Buf+=f(Ch); c++;
if (c>=100){Res+=Buf; Buf=''; c=0;}
}
return Res+Buf;
}
//------------------------------------------------------------------------
function alert(S){WScript.Echo(S);}
function InitKeys(){
//Проблема в том, что влияет текущий язык в той программе!
//Можно нажимать только английские клавиши. Если надо нажимать русские, надо вычислить какие им соответствуют английские
RusKeys="йцукенгшщзхъфывапролджэячсмитьбю"; LatKeys="qwertyuiop[]asdfghjkl;'zxcvbnm,.";
RusKeys=RusKeys+RusKeys.toUpperCase(); LatKeys=LatKeys+LatKeys.toUpperCase();
}