- 1
<input id="resetbutton" class="btn btn-info" type="reset" value="Reset" name="reset"></input>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+130
<input id="resetbutton" class="btn btn-info" type="reset" value="Reset" name="reset"></input>
Джун порадовал. Не хватает комментария "Шоб наверняка!"
+133
#ifndef _TOGGLE_H_
#define _TOGGLE_H_
#include <winbase.h>
#include "Python.h"
#define ID(X) "id(" #X ")"
#define SET_OBJ_POINTER(OBJ, NAME)\
OBJ = (PyObject *)PyLong_AsLong\
(PyRun_String(ID(NAME), Py_eval_input,\
PyEval_GetGlobals(), PyEval_GetLocals()))
//////////////////////////////////////////////////////
PyObject * __Py_None__;
PyObject * __Py_True__;
PyObject * __Py_False__;
PyObject * __Py_NotImplemented__;
#undef Py_None
#undef Py_True
#undef Py_False
#undef Py_NotImplemented
#define Py_None __Py_None__
#define Py_True __Py_True__
#define Py_False __Py_False__
#define Py_NotImplemented __Py_NotImplemented__
//////////////////////////////////////////////////////
static void initToggle(void) {
SET_OBJ_POINTER(Py_None, None);
SET_OBJ_POINTER(Py_True, True);
SET_OBJ_POINTER(Py_False, False);
SET_OBJ_POINTER(Py_NotImplemented, NotImplemented);
}
int WINAPI DllMain(HANDLE hinstDLL, DWORD dwReason, LPVOID lpvReserved) {
initToggle();
return 1;
}
#endif
Раскопал на старой флешке костыль, позволяющий компилить сишные модули для питона прям на кпк под WinMobile с помощью портанутой gcc. Была там бага - не видел собранный модуль Py_None, Py_True и т.д из python.dll. При помощи макроса SET_OBJ_POINTER приходилось вытаскивать указатели на них.
+129
<script>
// Browser Window Size and Position
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
// you may copy these functions but please keep the copyright notice as well
function pageWidth()
{ return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null; }
function pageHeight()
{ return window.innerHeight != null ? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null; }
function posLeft()
{ return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0; }
function posTop()
{ return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0; }
function posRight()
{ return posLeft() + pageWidth(); }
function posBottom()
{ return posTop() + pageHeight(); }
function SetWindowSize(s, h, w) {
var wid = pageWidth();
var hei = pageHeight();
var n_wid = Math.round(wid * w);
var n_hei = Math.round(hei * h);
s.SetWidth(n_wid);
s.SetHeight(n_hei);
}
function SetWindowW(s, w) {
var wid = pageWidth();
var n_wid = Math.round(wid * w);
s.SetWidth(n_wid);
}
</script>
<html>
...
<td>
<dx:ASPxButton ID="AddCopyTemplate" runat="server" Text="Создать копию"
AutoPostBack="False"
CssFilePath="~/App_Themes/Office2010Black/{0}/styles.css"
CssPostfix="Office2010Black"
SpriteCssFilePath="~/App_Themes/Office2010Black/{0}/sprite.css"
Wrap="True" >
<ClientSideEvents Click="function(s, e) {
AddCopyTemplate();
}" Init="function(s, e) {
Get_Sizes_wid(s,1075);
}" />
</dx:ASPxButton>
</td>
<td>
<dx:ASPxButton ID="AddTemplate" runat="server" Text="Создать"
AutoPostBack="False"
CssFilePath="~/App_Themes/Office2010Black/{0}/styles.css"
CssPostfix="Office2010Black"
SpriteCssFilePath="~/App_Themes/Office2010Black/{0}/sprite.css">
<ClientSideEvents Click="function(s, e) {
AddTemplateClick();
}" Init="function(s, e) {
Get_Sizes_wid(s,1075);
}" />
</dx:ASPxButton>
</td>
...
</html>
я даже не знаю, в какой раздел это постить, но пусть будет тут.
товарищ, пользовался горячелюбимыми контролами от DevExpress, которые работают херпойми как, но сейчас не об этом.
в секции ClientSideEvents есть скрипты, которые выполняются на клиенте при старте, так вот он и поставил туда вызов функции, которая выставляет размеры для элементов.
это одностраничное приложение на 1100 строк только одной размеки, где используется огромное количество различных элементов, панели, гриды, гнопки, модальные окна, и много всего прочего... и ни у одного из них не заданы вообще никакие размеры, все работает на этих JS функциях.
эти волшебные цифры, которые передаются в функцию рассчитаны на его монитор, и как только они отрываются на другом мониторе с другим разрешением, то эти две кнопки занимают примерно 80% экрана.
а самое главное, что модальные окна занимают примерно 80% высоты и ширины экрана, и сначала они рисуются по центру экрана, а потом увеличиваются функцией, из-за чего они уезжают за границы экрана
+133
if (access(path, aflag) && mkfifo(path, mode) {
exit(-1);
}
Весьма интуитивная запись условия
+14
string modify( const string & str )
{
if( str.size() == 0 ) return "00";
if( str.size() == 1 ) return "0" + str;
return string( str.end() - 2, str.end() );
}
string modify4( const string & str )
{
if( str.size() == 0 ) return "0000";
if( str.size() == 1 ) return "000" + str;
if( str.size() == 2 ) return "00" + str;
if( str.size() == 3 ) return "0" + str;
return string( str.end() - 4, str.end() );
}
string TimeISOFormat( time_t cur )
{
char buf[32];
struct tm * timeinfo;
timeinfo = localtime ( &cur );
strftime(buf, 32, "%y", timeinfo);
string year(buf);
strftime(buf, 32, "%m", timeinfo);
string month(buf);
strftime(buf, 32, "%d", timeinfo);
string day(buf);
strftime(buf, 32, "%H", timeinfo);
string hour(buf);
strftime(buf, 32, "%M", timeinfo);
string minute(buf);
strftime(buf, 32, "%S", timeinfo);
string second(buf);
return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
}
string CurrentTimeISOFormat()
{
time_t cur = CurrentTime();
char buf[32];
struct tm * timeinfo;
timeinfo = localtime ( &cur );
strftime(buf, 32, "%y", timeinfo);
string year(buf);
strftime(buf, 32, "%m", timeinfo);
string month(buf);
strftime(buf, 32, "%d", timeinfo);
string day(buf);
strftime(buf, 32, "%H", timeinfo);
string hour(buf);
strftime(buf, 32, "%M", timeinfo);
string minute(buf);
strftime(buf, 32, "%S", timeinfo);
string second(buf);
return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
}
time_t CurrentTime()
{
time_t rawtime = 0;
time(&rawtime);
return rawtime;
}
−404
[UIColor colorWithRed:0.3046875f green:0.72265625f blue:0.7421875f alpha:YES];
Долго подбирал цвета, наверно. Да, и alpha - это float, а не bool.
+83
initialization
//done this way so we can have a separate stack just for FPC under Unix systems
GStackClass :=
{$IFDEF USE_VCL_POSIX}
TIdStackVCLPosix
{$ELSE}
{$IFDEF UNIX}
{$IFDEF KYLIXCOMPAT}
TIdStackLibc
{$ENDIF}
{$IFDEF USE_BASEUNIX}
TIdStackUnix
{$ENDIF}
{$ENDIF}
{$IFDEF WINDOWS}
TIdStackWindows
{$ENDIF}
{$IFDEF DOTNET}
TIdStackDotNet
{$ENDIF}
{$ENDIF}
;
GStackCriticalSection := TIdCriticalSection.Create;
{$IFNDEF DOTNET}
{$IFDEF REGISTER_EXPECTED_MEMORY_LEAK}
IndyRegisterExpectedMemoryLeak(GStackCriticalSection);
{$ENDIF}
{$ENDIF}
finalization
// Dont Free. If shutdown is from another Init section, it can cause GPF when stack
// tries to access it. App will kill it off anyways, so just let it leak
{$IFDEF FREE_ON_FINAL}
FreeAndNil(GStackCriticalSection);
{$ENDIF}
end.
Выдержка из IdStack.pas. Без комментариев.
Предыcтория.
fastmm постоянно сообщал об утечках памяти в моих программах, использующих Indy: решил разобраться.
Оказалось, что ошибки возникали при использовании IdStack, по умолчанию этот модуль используют почти все компоненты из палитры.
+137
model.PID = row["PID"].ToString();
model.Rect = row["RECt"].ToString();
model.Pubt = row["PUBt"].ToString();
model.Ex = row["Ex"].ToString();
model.Prev_Vol = row["Prev_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Prev_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
model.Curr_Vol = row["Curr_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Curr_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
model.Mov_Vol = row["Mov_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Mov_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
decimal tonavgvol = Tools.ParseDecimalValue(row["Mov_Vol"].ToString());
decimal currentvol = Tools.ParseDecimalValue(row["Curr_Vol"].ToString());
if (row["Mov_Vol"].ToString() != "" && row["Curr_Vol"].ToString() != "" && tonavgvol != 0)
model.VolRat = (currentvol / tonavgvol).FormatAmount();
model.Open_Vol = row["Open_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Open_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
model.Close_Vol = row["Close_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Close_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
model.AllTicks = row["AllTicks"].ToString() != "" ? Tools.ParseDecimalValue(row["AllTicks"].ToString()).FormatAmountWithoutDecimal() : "";
model.ATR = row["ATR14"].ToString() != "" ? Tools.ParseDecimalValue(row["ATR14"].ToString()).FormatAmountFourDecimals() : "";
decimal open = Tools.ParseDecimalValue(row["Open"].ToString());
decimal close = Tools.ParseDecimalValue(row["Close"].ToString());
if (row["Open"].ToString() != "" && row["Close"].ToString() != "" && open != 0)
model.PrevDay = (((close - open) / open) * 100).FormatPercent();
model.PrevClose = row["PrevClose"].ToString() != "" ? Tools.ParseDecimalValue(row["PrevClose"].ToString()).FormatAmount() : "";
model.DayOpen = row["DayOpen"].ToString() != "" ? Tools.ParseDecimalValue(row["DayOpen"].ToString()).FormatAmount() : "";
decimal prevclose = Tools.ParseDecimalValue(row["PrevClose"].ToString());
decimal dayopen = Tools.ParseDecimalValue(row["DayOpen"].ToString());
if (row["DayOpen"].ToString() != "" && row["PrevClose"].ToString() != "" && prevclose != 0)
model.OpenGap = (((dayopen - prevclose) / prevclose) * 100).FormatPercent();
model.SPYLast = row["TONSPLast"].ToString() != "" ? Tools.ParseDecimalValue(row["TONSPLast"].ToString()).FormatAmount() : "";
model.TONOpen = row["TONOpen"].ToString() != "" ? Tools.ParseDecimalValue(row["TONOpen"].ToString()).FormatAmount() : "";
model.TONHigh = row["TONHigh"].ToString() != "" ? Tools.ParseDecimalValue(row["TONHigh"].ToString()).FormatAmount() : "";
model.TONLow = row["TONLow"].ToString() != "" ? Tools.ParseDecimalValue(row["TONLow"].ToString()).FormatAmount() : "";
model.TONLast = row["TONLast"].ToString() != "" ? Tools.ParseDecimalValue(row["TONLast"].ToString()).FormatAmount() : "";
model.EODHigh = row["EODHigh"].ToString() != "" ? Tools.ParseDecimalValue(row["EODHigh"].ToString()).FormatAmount() : "";
model.EODLow = row["EODLow"].ToString() != "" ? Tools.ParseDecimalValue(row["EODLow"].ToString()).FormatAmount() : "";
model.EODClose = row["EODClose"].ToString() != "" ? Tools.ParseDecimalValue(row["EODClose"].ToString()).FormatAmount() : "";
model.SPYClose = row["EODSPClose"].ToString() != "" ? Tools.ParseDecimalValue(row["EODSPClose"].ToString()).FormatAmount() : "";
model.PostVWAP = row["PostVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["PostVWAP"].ToString()).FormatAmount() : "";
model.PreVWAP = row["PreVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["PreVWAP"].ToString()).FormatAmount() : "";
model.MainVWAP = row["MainVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["MainVWAP"].ToString()).FormatAmount() : "";
model.AllVWAP = row["AllVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["AllVWAP"].ToString()).FormatAmount() : "";
model.EODVWAP = row["EODVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["EODVWAP"].ToString()).FormatAmount() : "";
decimal tonlast = Tools.ParseDecimalValue(row["TONLast"].ToString());
decimal eodhigh = Tools.ParseDecimalValue(row["EODHigh"].ToString());
decimal eodlow = Tools.ParseDecimalValue(row["EODLow"].ToString());
decimal tonhigh = Tools.ParseDecimalValue(row["TONHigh"].ToString());
decimal tonlow = Tools.ParseDecimalValue(row["TONLow"].ToString());
decimal eodclose = Tools.ParseDecimalValue(row["EODClose"].ToString());
decimal oedspclose = Tools.ParseDecimalValue(row["EODSPClose"].ToString());
decimal tonsplast = Tools.ParseDecimalValue(row["TONSPLast"].ToString());
// еще где-то 100-150 строчек в таком же духе
ADO.NET во все поля.
Бизнес-логика? Что это такое?
P.S. У класса model все свойства типа string, у всех decimal переменных потом тоже вызывается ToString().
+73
private static class Errors extends ArrayList<String> {
private static final long serialVersionUID = 1L;
}
private static class Notices extends ArrayList<String> {
private static final long serialVersionUID = 1L;
}
две большие разницы
+153
public function filters($collection)
{
$className = $collection->modelName();
$filters = null;
$config = $this->getConfig($className)->admin_panel;
if (!empty($config['filters'])) {
$filters = $config['filters'];
}
if (!$filters) {
return $collection->raw();
}
foreach ($filters as $field => $value) {
if (strpos($value, '||')) {
$or = explode('||', $value);
$where = "";
foreach ($or as $value) {
if (strpos($value, '::') !== false) {
$value = call_user_func(trim($value));
}
$where .= $field . '="' . $value . '" OR ';
}
$collection->where('(' . substr($where, 0, -4) . ')');
} else {
if (strpos($value, '::') !== false) {
$value = call_user_func(trim($value));
}
$collection->where($field, trim($value));
}
}
return $collectio->raw();
}
фильтруем коллекцию блять!