-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
Const strMask="258258258258258258"
mNumber = Clng(Left(mParam1,2))*100000+Clng(Right(mParam1,5))*10+Clng(mParam2)
mResStr = Right("000000000"+Cstr(mNumber),9)
For c=1 To 9
mRes1 = Cint(Mid(mResStr, c, 1))
mRes2 = Int(Rnd()*10)
strPreResult=Cstr(mRes1)+Cstr(mRes2)
mCheckSum = mCheckSum+mRes1*Cint(Mid(strMask, (c-1)*2+1, 1))
mCheckSum = mCheckSum+mRes2*Cint(Mid(strMask, (c)*2, 1))
Print strPreResult, mCheckSum
strResult=strResult+strPreResult
Next c
strResult = Left(strResult,9)+Right("00"+Cstr((mCheckSum Mod 95)Mod 100),2)+Right(strResult,8)
Генератор случайных чисел.
Почему везде такой не используется?
lsd,
03 Ноября 2017
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
$probabilities=array();
$get_items=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' ORDER BY `probability` DESC;");
while($item=mysql_fetch_assoc($get_items)){
$probabilities[$item['probability']]=0;
}
$dices=$probabilities;
for($pi=100;$pi>=0;$pi--){
foreach($probabilities as $probability=>$pstate){
if(rand(1, 2)==2){
if($pi<=$probability){
$dices[$probability]=$dices[$probability]+1;
}
}
}
}
arsort($dices, SORT_NUMERIC);
$probability=reset(array_keys($dices));
$get_prize=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' AND `probability`='".$probability."' ORDER BY RAND() LIMIT 1;");
Написал с нуля на заказ движок для очередного детского говноказино (розыгрыш пикселей для игр в "Steam").
Заказчик умолял сделать возможность управления вероятностью выпадения того или иного предмета (в процентах), что я и сделал. Вышеприведённый алгоритм как раз отвечает за выбор приза в соответствии с прописанными в настройках вероятностями. Сейчас кажется, что решение не самое "изящное".
Есть, что заметить по поводу алгоритма?
AnalPerOral,
02 Ноября 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
if(@isset($_GET['id'])){
$myconns=@mysql_connect(\"127.0.0.1\",\"user_noprivs\",\"unbr34k4bё3!\") or
die(\"sorry can't connect\");
@mysql_select_db(\"cms\") or die(\"sorry can't select DB\");
$sql_query = @mysql_query(
\"select content from content_table where id=\".$_GET['id']) or die(\"Sorry
wrong
SQL Query\");
// oops SQL Injection-^
while($tmp = @mysql_fetch_row($sql_query))
echo $tmp[0]; //echoes the result as HTML code
}else{
echo \"Welcome to My Bank
\".Login.\"\";
}
Оригинал: ru.wikipedia.org/wiki/SiXSS
Оригинал оригинала: securitylab.ru/analytics/216380.php?el_id=216380&VOTE_ID=104&view _result=Y
Смысл не в смысле кода, а в том, как можно было вообще умудрится так скопировать текст, что бы везде было экранирование
d_fomenok,
02 Ноября 2017
-
−7
- 1
Про убогость ООП подхода.
Итак, вот допустим наследование. Есть всякие там тупые примеры ООП, типа "котик и собачка наследуется от четырехногих" и проч., где подобный бред вполне работает. Но давайте попробуем рассмотреть более интересные ситуации.
Допустим что мы пишем некую игру. В игре есть некое оружие, например там есть огнестрел и дубинки. И мы делаем ружье, которое одновременно и огнестрел и дубинка, т.е. ружьем можно и как палкой уебать, и пальнуть как из револьвера. У родительского класса "огнестрел" есть свойства, типа дальности выстрела, точности, используемых боеприпасов, уровень прочности(износ), вес, наносимый урон при попадании. У дубинки есть свойства длины дубинки, уровень прочности(износ), вес, наносимый урон при ударе. Вес для ружья нам нужен только один, т.е. нет смысла делать два "веса" одному предмету. И огнестрел и дубинка наследуется от родительского класса "объект инвентаря", в общем тут ромбовидное наследование, которое в разных языках решается разными способами. Ну ок, допустим что мы там каким-то образом указали компилятору некоего языка X, что наследовать свойство "вес" надо лишь один единственный раз, как и прочие хрени, которые являются общими для родительского класса "объект инвентаря". Теперь надо решить с прочностью. Не все "объекты инвентаря" в этой игре имеют свойство прочности, есть например какие-то расходные материалы, типа патронов, для которых понятие прочности неприменимо. Использование ружья как дубинки изнашивает его не таким же самым образом, как использование ружья как огнестрела, но при этом слишком большой износ ружья-как-дубинки может настолько повредить его, что как огнестрел его уже и не поиспользовать из-за погнутого ствола. Но использование ружья как огнестрел никак на износ ружья-как-дубинки не влияет, типа это механический износ спускового механизма, износ ствола при стрельбе...
j123123,
02 Ноября 2017
-
+3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
if cur == 'EUR':
alldata['total'] = alldata['total'] * Decimal(58)
alldata['cost'] = alldata['cost'] * Decimal(58)
elif cur == 'USD':
alldata['total'] = alldata['total'] * Decimal(62)
alldata['cost'] = alldata['cost'] * Decimal(62)
elif cur == 'GBP':
alldata['total'] = alldata['total'] * Decimal(71)
alldata['cost'] = alldata['cost'] * Decimal(71)
elif cur == 'UAH':
alldata['total'] = alldata['total'] * Decimal(2)
alldata['cost'] = alldata['cost'] * Decimal(2)
ПроÑтой конвертер валют Ñвоими руками!
💩-💩 и в продакшен!!!
farmspam,
02 Ноября 2017
-
+2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
public do(action: 'un' | 're'): void {
const result = (<any>this._appApi.app.documentManager.current)[action + 'do']();
if (!result.success) this._toastService.error(result.errorMessage, `Ошибка ${action}do`);
}
<button (click)="do('un')" title="Отменить"><i class="material-icons md-36">undo</i></button>
<button (click)="do('re')" title="Повторить"><i class="material-icons md-36">redo</i></button>
mazhuravlev,
01 Ноября 2017
-
+1
- 1
Кегдан вернулся, давайте радоваться вместе!
d_fomenok,
01 Ноября 2017
-
−1
irb(main):002:0> self
=> main
irb(main):003:0> self.self
=> main
irb(main):004:0> # уииииииииииииииииииииииииииииииии
irb(main):005:0* self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self
=> main
Stallman,
01 Ноября 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
internal class Log
{
public static void WriteLine(string methodName, UpdateFile file, Exception e, LogType type = LogType.Success)
{
using (FileStream fileStream = new FileStream(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\patch.log", FileMode.OpenOrCreate))
{
using (StreamReader streamReader = new StreamReader(fileStream))
{
using (StreamWriter streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine(string.Format("Launcher | {0} | {1} | {2} | {3} | {4}", new object[]
{
type,
methodName,
file.FullPath,
e,
DateTime.Now
}), streamReader.ReadToEnd().Length);
}
}
}
}
...
Как получить размер файла? Правильно, надо прочитать его в память и взять размер данных из памяти :facepalm:
Зачем получать размер файла, даже не спрашивайте ))
Источник: hxxp://promo.riseofrunes.com/InstLauncher.zip (C#, декомпилятор).
luxtau,
31 Октября 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
void DevToolsHttpHandler::OnJsonRequest(
int connection_id,
const net::HttpServerRequestInfo& info) {
// Trim /json
std::string path = info.path.substr(5);
// Trim fragment and query
std::string query;
size_t query_pos = path.find("?");
if (query_pos != std::string::npos) {
query = path.substr(query_pos + 1);
path = path.substr(0, query_pos);
}
size_t fragment_pos = path.find("#");
if (fragment_pos != std::string::npos)
path = path.substr(0, fragment_pos);
std::string command;
std::string target_id;
if (!ParseJsonPath(path, &command, &target_id)) {
SendJson(connection_id,
net::HTTP_NOT_FOUND,
NULL,
"Malformed query: " + info.path);
return;
}
...
100500 строк типичного ЦПП бреда
}
https://cs.chromium.org/chromium/src/content/browser/devtools/devtools_http_handler.cc?l=487
Суровые разработчики гуглобраузера настолько суровы, что УРЛ парсят вручную, не используя утилитные функции.
А вообще, в коде который относится к инструментам разработчика в гуглобраузере все прекрасно, чего стоит только вот это говно: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/scripts/build/generate_protocol_externs.py
wvxvw,
31 Октября 2017