- 1
- 2
- 3
- 4
- 5
if(!empty($_POST['action']) && !empty($_POST['product_id']))
{
$product_id=$_POST['product_id']+0;
etc...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+154
if(!empty($_POST['action']) && !empty($_POST['product_id']))
{
$product_id=$_POST['product_id']+0;
etc...
}
Наткнулся вот!)
+155
function poisk_potomok_item ($id_otca, $glubina, $i_array)
{
global /*$style,*/ $kol_n, $sm, $fire;
if ($glubina==$max_vlog) return 1;
switch ($glubina)
{
case "1":
{
$base_style="menu2_level3";
break;
}
case "2":
{
$base_style="menu2_level4";
break;
}
case "3":
{
$base_style="menu2_level5";
break;
}
case "4":
{
$base_style="menu2_level6";
break;
}
case "5":
{
$base_style="menu2_level7";
break;
}
case "6":
{
$base_style="menu2_level8";
break;
}
case "7":
{
$base_style="menu2_level8";
break;
}
}
for ($j=1; $j<=$kol_n; $j++)
{
$mas5=explode(" ~ ", $i_array[$j]);
if ($mas5[1]==$id_otca and $mas5[2]=="1")
{
$style_pot="<table cellspacing=\"0\"><tr><td class=\"$base_style\"><a href=\"?r=item&gs=".$mas5[0]."\" class=\"menu2_2\">".$mas5[4]."</a></td></tr></table>";
for($kkkk=count($sm);$kkkk > 0; $kkkk--)
{
if ($mas5[0]==$sm[$kkkk])
{
if ($mas5[0]==$sm[1])
{
$style_pot="<table cellspacing=\"0\"><tr><td class=\"$base_style\"><span class=\"menu2_2a\">".$mas5[4]."</span></td></tr></table>";
$new_gl=$glubina+1;
$gi=poisk_potomok_item ($mas5[0],$new_gl, $i_array);
if ($gi != "") {$style_pot.=$fire.$gi.$fire;}
}
else
{
// $style_pot="<table cellspacing=\"0\"><tr><td class=\"$base_style\"><a href=\"?r=item&gs=".$mas5[0]."\" class=\"menu2_2\">".$mas5[4]."</a></td></tr></table>";
$style_pot="<table cellspacing=\"0\"><tr><td class=\"$base_style\"><span class=\"menu2_2a\">".$mas5[4]."</span></td></tr></table>";
$new_gl=$glubina+1;
$gi=poisk_potomok_item ($mas5[0],$new_gl, $i_array);
if ($gi != "") {$style_pot.=$fire.$gi.$fire;}
}
}
}
$style.=$style_pot;
}
}
return $style;
}
В одной из ведущих веб-студий Екатеринбурга, директор 5 лет назад был кодером)))
вот одно их его творений..
Обратите внимание на идентификаторы, такие как poisk_potomok_item, $id_otca, $glubina, $i_array.
Вообще, как человек, директор - норм чувак, но кажется мне придется пересмотреть свои взгляды...
Если человек называет функцию так: "poisk_potomok_item" - ему явно жить труднее остальных людей)))))
+124
import Control.Applicative
import Data.List
isSimple n | n > 0 = not $ or $ map (\n1 -> n `rem` n1 == 0) [2..n-1]
isNaturalAndSimple n = n > 0 && isSimple n
generateSource b e = map (flip replicate $ [b..e]) [2..]
splitAll = groupBy $ \_ _->False
splitedNumberRangesToNumberSequence l = foldl (liftA2 (++)) (head l) (tail l)
toNumberSequences = map $ splitedNumberRangesToNumberSequence . map splitAll
onlySimple = map $ filter $ isNaturalAndSimple . sum
main = print $ take 4 $ onlySimple $ toNumberSequences $ generateSource 2 3
+118
fib = 0 : 1 : zipWith (+) fib (tail fib)
main = print $ take 700 fib
+124
import Control.Monad
import Control.Arrow
import Data.List
solve' :: [String] -> [[String]]
solve' = nub . filter (
and . uncurry (
zipWith (
(.head) . (==) . last
)
) . (id &&& tail)
) . uncurry ($) . (
last . (((
map (
last . fst &&& uncurry (++) . (init . fst &&& snd)
) . tail . uncurry (zipWith (,)) . (inits &&& tails)
) >=> (uncurry map) .
((:) *** solve')
):
) . (uncurry takeWhile) . (
const . null &&& const [const [[]]]
) &&& id
)
main = print $ solve' ["123","321","123"]
−106
- (void)shutdownSoundManager {
@synchronized(self) {
if(sharedSoundManager != nil) {
[self dealloc];
}
}
}
Убийца синглетонов, блджд
−162
/*здесь было много кода*/
DECLARE @Strings TABLE /* in this temporary table we keep all strings, even the names of the elements, since they are 'escaped' in a different way, and may contain, unescaped, brackets denoting objects or lists. These are replaced in the JSON string by tokens representing the string */
(
String_ID INT IDENTITY(1, 1),
StringValue NVARCHAR(MAX)
)
SELECT--initialise the characters to convert hex to ascii
@characters='0123456789abcdefghijklmnopqrstuvwxyz',
/* firstly we process all strings. This is done because [{} and ] aren't escaped in strings, which complicates an iterative parse. */
@parent_ID=0;
WHILE 1=1 --forever until there is nothing more to do
BEGIN
SELECT
@start=PATINDEX('%[^a-zA-Z]["]%', @json collate SQL_Latin1_General_CP850_Bin);--next delimited string
IF @start=0 BREAK --no more so drop through the WHILE loop
IF SUBSTRING(@json, @start+1, 1)='"'
BEGIN --Delimited Name
SET @start=@Start+1;
SET @end=PATINDEX('%[^\]["]%', RIGHT(@json, LEN(@json+'|')-@start) collate SQL_Latin1_General_CP850_Bin);
END
IF @end=0 --no end delimiter to last string
BREAK --no more
SELECT @token=SUBSTRING(@json, @start+1, @end-1)
--now put in the escaped control characters
SELECT @token=REPLACE(@token, FROMString, TOString)
FROM
(SELECT
'\"' AS FromString, '"' AS ToString
UNION ALL SELECT '\\', '\'
UNION ALL SELECT '\/', '/'
UNION ALL SELECT '\b', CHAR(08)
UNION ALL SELECT '\f', CHAR(12)
UNION ALL SELECT '\n', CHAR(10)
UNION ALL SELECT '\r', CHAR(13)
UNION ALL SELECT '\t', CHAR(09)
) substitutions
SELECT @result=0, @escape=1
--Begin to take out any hex escape codes
WHILE @escape>0
BEGIN
SELECT @index=0,
--find the next hex escape sequence
@escape=PATINDEX('%\x[0-9a-f][0-9a-f][0-9a-f][0-9a-f]%', @token collate SQL_Latin1_General_CP850_Bin)
IF @escape>0 --if there is one
BEGIN
WHILE @index<4 --there are always four digits to a \x sequence
BEGIN
SELECT --determine its value
@result=@result+POWER(16, @index)
*(CHARINDEX(SUBSTRING(@token, @escape+2+3-@index, 1),
@characters)-1), @index=@index+1 ;
END
-- and replace the hex sequence by its unicode value
SELECT @token=STUFF(@token, @escape, 6, NCHAR(@result))
END
END
--now store the string away
INSERT INTO @Strings (StringValue) SELECT @token
-- and replace the string with a token
SELECT @JSON=STUFF(@json, @start, @end+1,
'@string'+CONVERT(NVARCHAR(5), @@identity))
END
парсинг json-строки sql скриптом. полная версия тут : https://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/
−98
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[NSThread sleepForTimeInterval:0.35];
[[NSThread mainThread] performBlock:^{
[titleLabel setHidden:NO];
}];
});
+67
public final class SomeActivity extends Activity {
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
if (id == DialogGenerator.SETTINGS_DIALOG) {
dialog = mDialogGenerator.createSettingsDialog();
} {
dialog = super.onCreateDialog(id);
}
return dialog;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
super.onPrepareDialog(id, dialog);
if (id == DialogGenerator.SETTINGS_DIALOG) {
mDialogGenerator.prepareSettingsDialog((AlertDialog) dialog, someBoolValue, someObjectValue);
}
}
}
public final class DialogGenerator {
public Dialog createSettingsDialog() {
int dialogId = SETTINGS_DIALOG;
int titleId = R.string.settingsTitle;
String[] itemsArray = getStringArray(R.array.settings);
ThreeTypeOptionsAdapter adapter = new ThreeTypeOptionsAdapter(mControllerAsActivity, itemsArray,
mCheckableOptions, mTwoTextOptions);
AlertDialogCallback dialogCallback = new AlertDialogCallback(mControllerAsDialogHost, dialogId);
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mControllerAsActivity);
dialogBuilder.setTitle(titleId);
// костыль
dialogBuilder.setSingleChoiceItems(itemsArray, 0, null);
// конец костыля
dialogBuilder.setAdapter(adapter, dialogCallback);
AlertDialog dialog = dialogBuilder.create();
setMainListenersOnDialog(dialog);
dialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
return dialog;
}
public void prepareSettingsDialog(AlertDialog dialog, boolean someBoolValue, String someStringValue) {
//костыль
ListView dialogList = dialog.getListView();
dialogList.clearChoices();
dialogList.setItemChecked(POSITION_FOR_BOOL, someBoolValue);
//конец костыля
ThreeTypeOptionsAdapter adapter = (ThreeTypeOptionsAdapter) dialogList.getAdapter();
adapter.setAdditionalValue(POSITION_FOR_STRING, someStringValue);
}
}
Задача: показать диалог, внутри которого есть 3 типа ячеек: выделяемые с чекбоксом справа, невыделяемые с дополнительной надписью справа, обычные невыделяемые.
Примерно так:
Use GPS checkbox
Selected country Russia
Launch some activity
В комментах к методам я описал костыль:
Здравствуйте, дорогие друзья. Сегодня мы с вами поговорим об уникальном виде животных, которых открыли только в конце XX века. Это, дорогие друзья, Ява-обезьяны. Давайте дружно откроем сырцы Андроид-СДК, а именно - класс com.android.internal.app.AlertController .AlertParams - и метод createListView(AlertController). Видите, одна обезьяна решила, что нам будет удобней, если диалог автоматом задисмиссится, когда мы щёлкнем по элементу списка в CHOICE_MODE_NONE, и OnClickListener будет не null? А теперь давайте перейдём в android.app.AlertDialog.Builder. Видите, там другая обезьяна решила, что для multi-choice списка нам не потребуется хитроумный адаптер? Поэтому, дорогие друзья, когда мы поставили кастомный адаптер (setAdapter()) и сопроводили его слушателем, то какой бы мы choice mode не ставили после AlertDialog.Builder.create(), диалог дисмиссился. Поэтому, дорогие друзья, пришлось пойти на хитрость и вначале установить single choice (чтобы флаг mIsSingleChoice стал true), а потом уже ставить адаптер.
+133
drwxrwxrwx 1 wvxvw None 0 02-17 16:59 .svn
-rw-rw-rw- 1 wvxvw None 22082 02-04 11:03 header.asp
-rw-rw-rw- 1 wvxvw None 14331 02-04 11:02 header.utf.asp
-rw-rw-rw- 1 wvxvw None 10333 02-04 11:01 header2.asp
-rw-rw-rw- 1 wvxvw None 10368 02-04 11:02 header2_test.asp
-rw-rw-rw- 1 wvxvw None 11825 02-04 11:02 header3.asp
-rw-rw-rw- 1 wvxvw None 11734 02-04 11:03 header3_liran.asp
-rw-rw-rw- 1 wvxvw None 11238 02-04 11:01 header3_old.asp
-rw-rw-rw- 1 wvxvw None 7403 02-04 11:02 header3_ssl.asp
-rw-rw-rw- 1 wvxvw None 9045 02-04 11:01 header3del.asp
-rw-rw-rw- 1 wvxvw None 39451 02-04 11:02 header4.asp
-rw-rw-rw- 1 wvxvw None 40224 02-04 11:02 header4_new.asp
-rw-rw-rw- 1 wvxvw None 13348 02-04 11:02 header4rus.asp
-rw-rw-rw- 1 wvxvw None 230 02-04 11:02 headers.asp
-rw-rw-rw- 1 wvxvw None 208 02-06 09:37 headers.php
Наследство.