- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
SeismicDriver* SeismicSelectionDG::seismicDriver()
{
Exf2dMW* mw = Exf2dMW::getMW(this);
_seismicDriver = mw->seismicDriver();
if ( !mw || !_seismicDriver)
return 0;
return _seismicDriver;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
SeismicDriver* SeismicSelectionDG::seismicDriver()
{
Exf2dMW* mw = Exf2dMW::getMW(this);
_seismicDriver = mw->seismicDriver();
if ( !mw || !_seismicDriver)
return 0;
return _seismicDriver;
}
Все тот же коллега китаец. Exf2dMW - класс главного окна приложения. Во-первых бесмыссленно проверять его на 0, потому что без него вообще бы ничего не работало, но и как видно проверяет его он все равно не там. Ну и проверка на 0 _seismicDrvier тоже лишняя. Итог никакие проверки не нужны да и вообще первую строку в методе можно перенести в конструктор а возвращать член класса _seismicDriver.
+163
<?
class Thread {
<...>
function Thread($proc_id) {
$this->db=new ezSQL_mssql(s_login, s_password, s_db_name_threads, s_host);
$this->proc_id=$proc_id;
$this->timeout=500;
$this->last_busy=0;
$this->notactive_num=0;
$query="INSERT INTO threads(proc_id, last_beat) VALUES('".$this->proc_id."','".(time()+60)."');";
$this->db->query($query);
}
static function Create($url,$proc_id) {
$t = new Thread($proc_id);
//### execute thread
//NB!!!
//BE CAREFUL WITH LOG PATHS, IF YOU MISS OR MISSPEL THE PATH, IT IS HARDLY POSSIBLE TO DEBUG
//IF YOU MISSPELL THE PATH YOU CAN FACE THE PROBLEM OF THREADS SIMPLY DO NOT START OR DO NOT LOG WITHOUT ANY NOTIFICATION
//USE YOUR OWN PATHS FOR PHP, LOGS AND COMMAND LINE COMMANDS AD PARAMETERS FOR YOUR SPECIFIC OS, WINDOWS EXAMPLE IS BELOW
//start /B will execute background process in windows, > symbol will store the output of current process into log file
//you can call threads from another server via http request etc.
pclose(popen("start /B \"$proc_id\" C:\php\php.exe D:\wwwroot\\newimport\elko\import_ignitor_thread.php > D:\globalimport\logs\\".$proc_id.".txt $proc_id","r"));
//give some time to start the thread
Sleeper(1000);
return $t;
}
//check is Thread active or not
//check active, busy, last beat etc.
//you can put here your own business logic how thread should be checked for statused etc.
function isActive () {
if($this->state==3){
return false;
}elseif ($this->last_busy==1){
return true;
}
$cur_time=time();
if($cur_time>$this->last_beat){
$result=$this->db->get_var("SELECT last_beat FROM threads WHERE proc_id=".$this->proc_id);
$this->state=$this->db->get_var("SELECT state FROM threads WHERE proc_id=".$this->proc_id);
if($cur_time<$result){
return true;
}
}else{
return true;
}
return true;
}
//check is Thread is busy or not, in order to give a new task/job
//it is similat to the previous procedure
function isBusy() {
//$this->tell("ping"); - this could be implemented in the future
$cur_time=time();
if($cur_time>$this->last_beat or $this->last_busy==0){
$result=$this->db->get_var("SELECT busy FROM threads WHERE proc_id=".$this->proc_id);
$this->last_busy=$result;
if($result==1){
return true;
}else{
return false;
}
}else{
return false;
}
}
//tells a command to the thread
function tell($thought, $params = NULL) {
$param=base64_encode(serialize($params));
$query="INSERT INTO cmd(proc_id, cmd, param) VALUES('".$this->proc_id."','".$thought."','".$param."');";
$this->db->query($query);
}
}
'многопоточность'
+157
<?php
function Sleeper($mSec)
{
// For dummies like me who spent 5 minutes
// wondering why socket_create wasn't defined
if(!function_exists('socket_create')){
die("Please enable extension php_sockets.dll");
}
// So the socket is only created once
static $socket=false;
if($socket===false){
$socket=array(socket_create(AF_INET,SOCK_RAW,0));
}
$pSock=$socket;
// Calc time
$uSex = $mSec * 1000;
// Do the waiting
socket_select($read=NULL,$write=NULL,$pSock,0,$uSex);
// OCD
return true;
}
что бы гк делал без этого чудесного языка..
−116
var strLabel:String = (_numCurrentUpload + 1) + "/" + _filesToUpload.length;
strLabel = (_numCurrentUpload + 1 <= _filesToUpload.length && numPerc > 0 && numPerc < 100) ? numPerc + "% - " + strLabel : strLabel;
strLabel = (_numCurrentUpload + 1 == _filesToUpload.length && numPerc == 100) ? "Upload Complete - " + strLabel : strLabel;
strLabel = (_filesToUpload.length == 0) ? "" : strLabel;
Вот так просто и незатейливо обновляется статус загруженного файла :)
+116
public class TObjects
{
public delegate T DeferredConstruction<out T>();
public static void Dispose<T>(ref T objectForDispose)
{
var typeOfObjectForDispose = typeof(T);
if (!typeOfObjectForDispose.IsClass)
DisposeIfIDisposable(ref objectForDispose, typeOfObjectForDispose);
else
if (!Equals(objectForDispose, null))
DisposeIfIDisposable(ref objectForDispose, typeOfObjectForDispose);
objectForDispose = default(T);
//objectForDispose = (T)(object)(null);
}
public static void Create<T>(ref T objectForCreate, DeferredConstruction<T> newObject)
{
Dispose(ref objectForCreate);
objectForCreate = newObject();
}
private static void DisposeIfIDisposable<T>(ref T objectForDispose, Type typeOfObjectForDispose)
{
bool canDisposable = (objectForDispose as IDisposable) != null;
if (canDisposable)
{
var dispose = typeOfObjectForDispose.GetMethod("Dispose");
dispose.Invoke(objectForDispose, new object[] { });
}
}
}
+161
<?php
if(empty($mw))
{
header ("Location: ..");
exit;
}
?>
<center><h4>АККАУНТ</H4><hr>
<...>
<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9]+$/))
return true;
else
return false;
}
function checkform(f)
{
if (f.account.value=="")
{
alert("Заполните все поля формы");
return false;
}
if (!isAlphaNumeric(f.account.value))
{
alert("Заполните все поля формы");
return false;
}
if (f.password.value=="")
{
alert("Не введен пароль");
return false;
}
if (!isAlphaNumeric(f.password.value))
{
alert("444444");
return false;
}
if (f.password2.value=="")
{
alert("Не введен повтор пароля");
return false;
}
if (f.password.value!=f.password2.value)
{
alert("Не совпадает пароль");
return false;
}
return true;
}
//]]></script>
<form method="post" action="index.php?id=reg_false" onsubmit="return checkform(this)">
<table>
<tr>
<td>Логин</td>
<td><input type="text" name="account" maxlength="15" /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password" maxlength="15" /></td>
</tr>
<tr>
<td>Повторить пароль</td>
<td><input type="password" name="password2" maxlength="15" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><br />
<input type="submit" name="submit" value="Регистрация" /></td>
</tr>
</table>
</form>
<?php
if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']))
{
if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<16 && strlen($_POST['account'])>3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'])
{
$check=mysql_query("select * from accounts where login='".$_POST['account']."'");
$check1=mysql_num_rows($check);
if($check1>0)
echo "<p clss='error'><b>Ошибка при регистрации: такой аккаунт уже сущетвует.</b></p>";
else
{
mysql_query("INSERT INTO accounts (login, password, access_level) VALUES ('" .
$_POST['account']."', '".base64_encode(pack('H*', sha1($_POST['password'])))."', 0)", $link);
mysql_close($link);
print '<p class="error"><b>Регистрация прошла успешно</b></p>';
}
}
else
print '<p class="error"><b> </b></p>'.mysql_error();
}
else
echo "Введенные вами данные не прошли проверку на безопасность. Пожалуйста, попробуйте зарегистрироваться с другим логином и паролем.";
+161
public function DateConvertDb($value=0){
if(strlen($value)<1){return false;}
$time = explode(' ',$value);
$date = $time[1];
$year = $time[2];
for($i=1;$i<13;$i++)
{
if($this->montharray[$i]==$time[0]){$month=$i;}
}
$date=str_replace(',',' ',$date);
$year=trim($year); $month=trim($month); $date=trim($date);
if($month<10){$month="0".$month;}
if($date<10){$date="0".$date;}
return $year."-".$month."-".$date;
}
Парсинг даты перед сохранением в БД.
+146
Notice: unserialize(): Error at offset 8180 of 8192 bytes in /home/***/govnokod/mzz/system/cache/cacheFile.php on line 81
-10
+145
if (!'8'=='=')
{
//код
}
+146
//Мега-изобретательный, сцуко, флаг!
public static bool DONT_UPDATE_INPUTMANAGER = FACEPALM;
...
//Флаг выпилил, быстра блджад!!1
if (DONT_UPDATE_INPUTMANAGER) DONT_UPDATE_INPUTMANAGER = false;
Достаточно недавний мой высер, сделанный на обезумевшую от непоняток голову. Трабла была в том, что при перехода из одного в меню в другое второе меню так же воспринимало эту кнопку и шагало дальше, хотя цикл вроде прошёл и InputManager уже сбросился. Пришлось сделать вот таким вот флагом (правда до сих пор не могу понять КАК я умудрился такой if написать...).
P.S: Похожая фигня и у MS, см. CurveEditor (create.msdn.com -> education catalog -> tools -> CurveEditor -> переменная disableUIEvents (причём int!!!)).