-
−3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
// if too many vertices, start a new mesh;
if (vertices.length > 65000) {
// finalize the old mesh
mesh.triangles = triangles;
mesh.vertices = vertices;
mesh.colors = colors;
mesh.computeWireframe();
mesh.computeNormals();
if (mesh.vertices.length) {
meshes.push(mesh);
}
не добавляем пустые меши, нафиг они нам
makc3d,
23 Марта 2016
-
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
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
<?php
header('Content-Type: text/plain;'); //Мы будем выводить простой текст
set_time_limit(0); //Скрипт должен работать постоянно
ob_implicit_flush(); //Все echo должны сразу же отправляться клиенту
$address = 'localhost'; //Адрес работы сервера
$port = 1985; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
//AF_INET - семейство протоколов
//SOCK_STREAM - тип сокета
//SOL_TCP - протокол
echo "Ошибка создания сокета";
}
else {
echo "Сокет создан\n";
}
//Связываем дескриптор сокета с указанным адресом и портом
if (($ret = socket_bind($sock, $address, $port)) < 0) {
echo "Ошибка связи сокета с адресом и портом";
}
else {
echo "Сокет успешно связан с адресом и портом\n";
}
//Начинаем прослушивание сокета (максимум 5 одновременных соединений)
if (($ret = socket_listen($sock, 5)) < 0) {
echo "Ошибка при попытке прослушивания сокета";
}
else {
echo "Ждём подключение клиента\n";
}
do {
//Принимаем соединение с сокетом
if (($msgsock = socket_accept($sock)) < 0) {
echo "Ошибка при старте соединений с сокетом";
} else {
echo "Сокет готов к приёму сообщений\n";
}
$msg = "Hello!"; //Сообщение клиенту
echo "Сообщение от сервера: $msg";
socket_write($msgsock, $msg, strlen($msg)); //Запись в сокет
//Бесконечный цикл ожидания клиентов
do {
echo 'Сообщение от клиента: ';
if (false === ($buf = socket_read($msgsock, 1024))) {
echo "Ошибка при чтении сообщения от клиента"; }
else {
echo $buf."\n"; //Сообщение от клиента
}
//Если клиент передал exit, то отключаем соединение
if ($buf == 'exit') {
socket_close($msgsock);
break 2;
}
if (!is_numeric($buf)) echo "Сообщение от сервера: передано НЕ число\n";
else {
$buf = $buf * $buf;
echo "Сообщение от сервера: ($buf)\n";
}
socket_write($msgsock, $buf, strlen($buf));
} while (true);
} while (true);
//Останавливаем работу с сокетом
if (isset($sock)) {
socket_close($sock);
echo "Сокет успешно закрыт";
}
?>
HiNeX,
23 Марта 2016
-
−2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
// POST /login
exports.login = function login(req, res) {
var email = req.body.email;
var password = req.body.password;
security.rateLimitRequest( 'reset', req, function( err ) {
if ( err )
return res.status( 400 ).send( err );
db.Account.find({email: email, password: password}, function(err, account) {
if ( err )
return res.status( 400 ).send( err );
account.getAccountStatistics(account, function(err, account) {
if ( err )
return res.status( 400 ).send( err );
account.incrementAccountLoginCount(account, function(err) {
if ( err )
return res.status( 400 ).send( err );
res.send(account);
});
});
});
});
});
У меня радость во все поля:
// POST /login
exports.login = function *login() {
var email = req.body.email;
var password = req.body.password;
try
{
// Throws an error if rate limit exceeded
yield security.rateLimitRequest( 'reset', req );
// Query MongoDB for account
var account = yield db.Account.find({email: email, password: password});
account.statistics = yield account.getAccountStatistics(account);
// Increment login count
yield account.incrementAccountLoginCount(account);
this.body = account;
}
catch( err ) {
// Return the error as JSON
return res.status( 400 ).send( err );
}
});
LispGovno,
23 Марта 2016
-
+10
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
#define class KOKOKO
#include <sys/shutdown.h>
#undef class
/* внутри sys/shutdown.h:
typedef struct
{
uint64_t start_time;
pid_t pid;
int8_t class;
uint8_t padding[3];
char *name;
} ProcessInfo_t;
*/
перезагружаем qnx neutrino из крестового кода
Xom94ok,
22 Марта 2016
-
0
- 1
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
JSF*ck - http://www.jsfuck.com/.
ЗЫ http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/ - санитация ввода в ж.
Dummy00001,
22 Марта 2016
-
−1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
(* basic power axiom
safe_comp_power x y =
case
(x = 0) and (y <> 0) -> 1
(x = 1) -> x
((x <> 0) and (y >= 0)) or ((x = 0) and (y > 0)) -> x * (safe_comp_power x (y - 1))
*)
logic safe_comp_pow : int, int -> int
axiom safe_comp_pow_int_A_1 : forall x : int. (x <> 0) -> safe_comp_pow(x, 0) = 1
axiom safe_comp_pow_int_A_2 : forall x : int. safe_comp_pow(x, 1) = x
axiom safe_comp_pow_int_A_3 : forall x,y : int. ((x <> 0) and (y >= 0)) or ((x = 0) and (y > 0)) -> safe_comp_pow(x, y) = x*(safe_comp_pow(x,y-1))
goal g_1 :
forall a,n : int.
a <> 0 -> n >= 0 ->
safe_comp_pow(a,n+1) = safe_comp_pow(a,n)*a
Язык для SMT солвера alt-ergo https://alt-ergo.ocamlpro.com/try.php . Аксиомы для возведения в степень. Возводить в отрицательную степень нельзя. Ноль в степени ноль - нельзя. Логика первого порядка. Должна быть справедлива для целых. Правда в одной аксиоме я допустил баг. Я его уже нашел. Можете тоже попробовать найти его
j123123,
22 Марта 2016
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
public function getWinnerEmail($id)
{
if (!is_numeric($id)) {
throw new BadRequestHttpException('Ошибка:' . __FUNCTION__ . ' ' . __LINE___);
}
//$project = Projects::findOne(['id' => $id]);
$project = (new \yii\db\Query())
->select(['id', 'win_user_id'])
->from(self::tableName())
->where(['id' => $id])
->one();
// if ($project['win_user_id'] == null) {
// return false;
// }
$result = User::findOne(['id' => $project['win_user_id']]);
if ($result != null) {
return ['id' => $result->id, 'email' => $result->email];
}
}
Метод модели "Project"
PHP-Framework yii2
NotFake,
22 Марта 2016
-
+5
- 1
- 2
- 3
- 4
- 5
(function extend(o, l) {
return Object.defineProperty(o, 'this', {
get: O => extend(O = (x, y) => y ? o(x, O(x, y - 1)) : l ^ 1)
});
})(this.this = (x, y) => x + y, 1);
Почти стрелочная нотация Кнута.
this.this(2,3) = 2 + 3
this.this.this(2,3) = 2 * 3
this.this.this.this(2,3) = 2 ↑ 3
this.this.this.this.this(2,3) = 2 ↑↑ 3 и т.д.
По следам http://govnokod.ru/19651#comment317168.
1024--,
22 Марта 2016
-
+1
- 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
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
public class ResultBase {
private ColumnCollections _columns;
private ArrayList _rows;
...
}
...
public class ColumnCollections : System.Collections.Specialized.NameObjectCollectionBase {}
...
public int Compare(object x, object y) {
if (x != null && y != null) {
object[] objX = x as object[];
object[] objY = y as object[];
if (objX != null && objY != null && objX.Length > 0 && objX.Length == objY.Length) {
switch (_ColumnType.FullName) {
case "System.Int16":
if (_Direction == DirectionType.ASC) {
return ((short)objX[_ColumnIndex]).CompareTo((short)objY[_ColumnIndex]);
} else {
return ((short)objY[_ColumnIndex]).CompareTo((short)objX[_ColumnIndex]);
}
case "System.Int32":
if (_Direction == DirectionType.ASC) {
return ((int)objX[_ColumnIndex]).CompareTo((int)objY[_ColumnIndex]);
} else {
return ((int)objY[_ColumnIndex]).CompareTo((int)objX[_ColumnIndex]);
}
case "System.Int64":
if (_Direction == DirectionType.ASC) {
return ((long)objX[_ColumnIndex]).CompareTo((long)objY[_ColumnIndex]);
} else {
return ((long)objY[_ColumnIndex]).CompareTo((long)objX[_ColumnIndex]);
}
case "System.Double":
if (_Direction == DirectionType.ASC) {
return ((double)objX[_ColumnIndex]).CompareTo((double)objY[_ColumnIndex]);
} else {
return ((double)objY[_ColumnIndex]).CompareTo((double)objX[_ColumnIndex]);
}
case "System.Decimal":
if (_Direction == DirectionType.ASC) {
return ((decimal)objX[_ColumnIndex]).CompareTo((decimal)objY[_ColumnIndex]);
} else {
return ((decimal)objY[_ColumnIndex]).CompareTo((decimal)objX[_ColumnIndex]);
}
case "System.Single":
if (_Direction == DirectionType.ASC) {
return ((float)objX[_ColumnIndex]).CompareTo((float)objY[_ColumnIndex]);
} else {
return ((float)objY[_ColumnIndex]).CompareTo((float)objX[_ColumnIndex]);
}
case "System.String":
String sX = (!Convert.IsDBNull(objX[_ColumnIndex])) ? (String)objX[_ColumnIndex] : String.Empty;
if (String.IsNullOrEmpty(sX)) {
sX = "";
}
String sY = (!Convert.IsDBNull(objY[_ColumnIndex])) ? (String)objY[_ColumnIndex] : String.Empty;
if (String.IsNullOrEmpty(sY)) {
sY = "";
}
if (_Direction == DirectionType.ASC) {
return sX.CompareTo(sY);
} else {
return sY.CompareTo(sX);
}
case "System.DateTime":
if (_Direction == DirectionType.ASC) {
return ((DateTime)objX[_ColumnIndex]).CompareTo((DateTime)objY[_ColumnIndex]);
} else {
return ((DateTime)objY[_ColumnIndex]).CompareTo((DateTime)objX[_ColumnIndex]);
}
case "System.Boolean":
if (_Direction == DirectionType.ASC) {
return ((Boolean)objX[_ColumnIndex]).CompareTo((Boolean)objY[_ColumnIndex]);
} else {
return ((Boolean)objY[_ColumnIndex]).CompareTo((Boolean)objX[_ColumnIndex]);
}
}
}
}
return 0;
}
достался мне в наследство код, который я года два поддерживал. никогда не вдавался в код той тулзы, которая из базы результаты возвращяла, пока не пришлось описать проект комментариями, чтобы отдать его клиенту.
компарер просто божественен...
я конечно точно не знаю, кто это писал, но за то знаю, кому пренадлежил авторство конкретной версии, но за то знаю, кто писал первую... и этот человек мне еще говорил, что мой экстеншен в 50 строк, который через рифлексию миллион строк из IDataReader за секунду в коллекцию объектов возвращял, уверял меня, что это медленное и корявое говно. нет, это медленное и корявое говно!
господи, за что?
Lokich,
21 Марта 2016
-
+1
- 1
https://habrahabr.ru/company/tm/blog/279759/
На Швабре можно постить гоатсе.
Vasiliy,
21 Марта 2016