- 1
- 2
- 3
- 4
$tempname = '__temp__.apk';
copy($origname, $tempname);
exec('C:\Android\android-sdk\build-tools\34.0.0\aapt.exe dump badging ' . '"'.$tempname.'"', $output);
unlink($tempname);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
$tempname = '__temp__.apk';
copy($origname, $tempname);
exec('C:\Android\android-sdk\build-tools\34.0.0\aapt.exe dump badging ' . '"'.$tempname.'"', $output);
unlink($tempname);
Понадобилось по-быстрому наговнякать переименоватор apk-файлов. Решил метушню из манифеста вытянуть с помощью «aapt» из официальных «Android build tools». Оказалось, что «aapt» не может открыть файл, если его имя содержит символы за пределами базового ASCII. CHCP не помогает вообще никак.
При передаче в aapt имени в 866 выводится «asset... Asset path... is neither a directory nor file (type=1)», при передаче имени в других кодировках (1251, UTF-8) выводится сообщение «ziparchive... Invalid byte sequence». Так и не смог подобрать кодировку, в которой заработает.
Шёл 2024-й год.
0
@JvmInline
value class Code(val value: Short) {
companion object {
fun from(value: Number): CurrencyCode {
checkValid(value)
return CurrencyCode(value.toShort())
}
private fun checkValid(value: Number) {
val targetValue = value.toDouble()
val isValueInvalid = floor(targetValue) != targetValue
|| targetValue < 0
|| targetValue > Short.MAX_VALUE
if (isValueInvalid) {
throw DomainRuleViolationException(
"Code must be of 'short' type, greater than 0 and lower than ${Short.MAX_VALUE}. Provided: [$value]"
)
}
}
}
init {
checkValid(value)
}
}
Валидация данных приходящих в контроллер. При этом в проекте существует Эксепшнхендлер на неверный инпут от пользователя, который отлично работает еще во время десерелизации запроса.
0
export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
Адская супер-хуйня отсюда https://github.com/deneruaraujo/daily-diet-api
Я не понял что она делает, даже небо, даже Аллах
0
class MoveAchieveTemplateIdentifierToRatePeriodPrograms < ActiveRecord::Migration
def up
RatePeriod.find_in_batches(batch_size: 1_000) do |batch|
sleep(50)
batch.each do |rate_period|
achieve_template_identifier = rate_period.achieve_template_identifier
rate_period.rate_period_programs.update_all(achieve_template_identifier: achieve_template_identifier)
end
end
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
fml
0
С каждым годом ПО становится всё забагованным, требовательным и тормозящим.
Многие программисты деградируют, не понимают, например,
как написать простейший SQL запрос или как работают компьютерные сети,
ведутся на всякие модные языки и технологии, не понимая их достоинства и недостатки
но при этом в компаниях таких "специалистов" продолжают ценить
и доверяют им обучение других будущих "специалистов".
С давних времён C# мой любимый язык, но меня меня шокирует
происходящее в нем начиная примерно с седьмой версии.
Я очень не люблю Java и C++, но теперь C# приближается к C++:
постоянно добавляется какой-то не синтаксический сахар, а синтаксический мусор,
который усложняет язык и часто не решает проблемы, а является только полумерой.
Очень больно от осознания, что тебя окружают такие люди, программами становится
невозможно пользоваться, а C# становится тем, от чего он спасал.
Как выжить в этом мире ИТ?
0
procedure TMonThread.FillCommentList;
var
HTTP:TIdHTTP;
URI:TIdURI;
S, Temp, Link, LastCm:string;
I, J:Integer;
Comm:TGComment;
Post:TGpost;
LinkList:TstringList;
CommList:TStringList;
begin
LinkList:=TStringList.Create;
CommList:=TStringList.Create;
HTTP:=TIdHTTP.Create(nil);
URI:=TIdURI.Create();
try
Temp:='';
LinkList.Sorted:=True;
LinkList.Duplicates:=DupIgnore;
HTTP.UserAgent:=uaRandom;
URI.Host:='govnokod.ru';
HTTP.Request.Host:='govnokod.ru';
HTTP.CookieManager.AddServerCookie('auth=a7dbe7abed9025a9a13ea15baa89a08f',URI);
Temp:=HTTP.LoadContent('http://govnokod.ru/comments');
Temp:=StringReplace(Temp,#13#10,'',[rfreplaceall]);
Temp:=StringReplace(Temp,#13,'',[rfreplaceall]);
Temp:=StringReplace(Temp,#10,'',[rfreplaceall]);
ParseAll('<li class="hentry">',Temp,'<div class="show-code">', LinkList);
for J:=0 to LinkList.Count-1 do
begin
if FCanceled then Exit;
Link:=ParseStr('<h2>Комментарий к <a rel="bookmark" class="entry-title" href="',LinkList[J],'"');
HTTP.ConnectTimeout:=60000;
HTTP.ReadTimeout:=60000;
Temp:='';
Temp:=HTTP.LoadContent(Link);
if HTTP.ContentSize>2000000 then Continue;
if HTTP.ResponseCode <> 200 then Continue;
if Pos('halted by an exception', Temp)>0 then Exit;
Post:=TGPost.Create;
LastCm:=Trim(ParseStr('name="comment', LinkList[J],'"'));
Post.LastCommentId:=StrToInt(LastCm);
S:=ParseStr('<a rel="bookmark" class="entry-title" href="http://govnokod.ru/', Temp,'"');
Post.Number:=StrToInt(S);
Post.Link:='http://govnokod.ru/'+S+'/';
S:=ParseStr('<p class="author">',Temp,'</p>');
S:=ParseStr('</a> <a href="http://govnokod.ru/user/',S,'</');
Post.Author:=StrAfter('>',S);
FPosts.Add(Post);
CommList.Clear;
ParseAll('<div id="comment-',Temp, '</li>', CommList);
for I:=0 to CommList.Count-1 do
begin
if FCanceled then Exit;
Comm:=TGComment.Create;
Comm.Author:=ParseStr('<strong class="entry-author"><a href="http://govnokod.ru/user/',CommList[I],'</strong>');
Comm.Author:=ParseStr('">', Comm.Author,'<');
Comm.Text:=ParseStr('<span class="comment-text">',CommList[I],'</span></div>');
Comm.Text:=DecorateText(Comm.Text);
//comment is hidded?
Comm.Hidden:=Pos('<span class="hidden-text">',CommList[I])>0;
// parse and calculate rating values.
Temp:=ParseStr('<span class="comment-vote">', CommList[I],'</span>');
//on count
S:=Trim(StrAfter('title="',Temp));
S:=Trim(StrBefore(' ',S));
Comm.OnCount:=StrToInt(S);
//against count
S:=Trim(StrAfter('и ',Temp));
S:=Trim(StrBefore(' ',S));
Comm.AgainstCount:=StrToInt(S);
Comm.Rating:=Comm.OnCount-Comm.AgainstCount;
S:=ParseStr('class="comment-vote-against" href="http://govnokod.ru/ratings/comment/',Temp,'/');
S:=Format('http://govnokod.ru/ratings/comment/%s/against',[S]);
Comm.AgainstLink:=S;
S:=ParseStr('<a class="answer" href="http://govnokod.ru/comments/', CommList[I],'"');
S:='http://govnokod.ru/comments/'+S;
Comm.AnswerLink:=S;
LastCM:=IntToStr(Post.LastCommentId);
Comm.Last:=Pos(LastCm, Comm.AnswerLink)>0;
Post.Comments.AddObject(Comm.Text, Comm);
end;
end;
finally
CommList.Free;
LinkList.Free;
HTTP.Free;
URI.Free;
end;
end;
(Флудоминусатор) Подгрузка и обработка комментариев из стока.
−1
def get_decrease_fan_speed_delta(fan_speed: float, delta: float, turn_off: bool):
# if the fan is already running slower than minimum speed
if fan_speed < MIN_FAN_SPEED:
# we ignore the turn_off argument and always set the fan off
return -fan_speed
# if fan would be running slower than minimum speed after decreasing it by delta:
if (fan_speed - delta) < MIN_FAN_SPEED:
if turn_off:
return -fan_speed # turn the fan off
else:
return -fan_speed + MIN_FAN_SPEED # make it run at minimum speed
return -delta
def get_increase_fan_speed_delta(fan_speed, delta):
new_fan_speed = fan_speed + delta
# if fan would be running faster than maximum speed
if new_fan_speed > 100:
return 100 - fan_speed # cap it at 100%
elif new_fan_speed < MIN_FAN_SPEED:
return MIN_FAN_SPEED - fan_speed # jump to minimum fan speed
return delta
def compute_fan_speed_delta(temp: float, temp_delta: float, fan_speed: float):
if temp >= HOT:
return get_increase_fan_speed_delta(fan_speed, 100.0)
if temp <= COLD:
# if temperature is decreasing, we slowly decrease the fan speed
if temp_delta < 0.0:
return get_decrease_fan_speed_delta(fan_speed, FAN_DELTA, turn_off=True)
# if temperature is constant or increasing we don't change fan speed
# until it rises above COLD
return 0.0
# if temperature is decreasing we decrease fan speed slowly
if temp_delta < 0.0:
return get_decrease_fan_speed_delta(fan_speed, FAN_DELTA, turn_off=False)
# if temperature is increasing we increase fan speed slowly
if temp_delta > 0.0:
return get_increase_fan_speed_delta(fan_speed, FAN_DELTA)
# if temperature is not changing, don't change the fan speed
return 0.0
+1
Вскрытие покровов
Распродажа оборудования.
Я сегодня сытно поужинал, посему считаю вопрос закрытым.
Пароли от большинства клонов - qazxsw
Поскольку файки не зашкваренные, берут и владеют ими.
−8
print('1 часть тут, 2 в описании')
import re
q = int(input())
b = input()
v = 0
flag = True
if v == 0:
c = len(re.findall('q', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('w', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('e', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('r', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('t', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('y', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('u', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('i', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('o', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('p', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('a', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('s', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('d', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('f', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('g', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('h', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('j', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('k', b))
if c > 1:
print("NO")
flag = False
quit
else:
v = 3
c = len(re.findall('l', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('m', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('n', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('b', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('v', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('c', b))
if c > 1:
print("NO")
flag = False
quit()
else:
v = 3
c = len(re.findall('x', b))
if c > 1:
flag = False
quit()
print("NO")
else:
v = 3
c = len(re.findall('z', b))
if c > 1:
flag = False
print("NO")
quit()
else:
v = 3
if flag == True:
print("YES")
−2
SELECT
DISTINCT customer_contracts_ref._Description AS Номер_договора,
CAST(dateadd(year, -2000, customer_contracts_ref._Fld418) as date) AS Дата_договора,
TSBO_ref._Description AS ЦБО,
trade_for_service._Number AS Номер_сделки,
CAST(dateadd(year, -2000, customer_contracts_ref._Fld419) as date) AS Дата_сделки,
service_ref._Description AS Вид_услуги,
ISNULL(trade_for_service._Fld7941, 0) AS Сумма_сделки,
ISNULL(STUFF(
(SELECT ', ', _Number as [text()]
FROM MTCKCenter.dbo._Document129 implementation_service_2
WHERE implementation_service._Fld2613RRef = implementation_service_2._Fld2613RRef
FOR XML PATH ('')), 1, 1, ''), 'ОТСУТСТВУЕТ') AS Номер_реализации,
ISNULL(STUFF(
(SELECT ', ',CAST(dateadd(year, -2000, trade_for_service._Fld16346) as date) as [text()]
FROM MTCKCenter.dbo._Document129 implementation_service_2
WHERE implementation_service._Fld2613RRef = implementation_service_2._Fld2613RRef
FOR XML PATH ('')), 1, 1, ''), '-') AS Дата_реализации,
CAST(customer_ref._Description as varchar(50)) AS Контрагент,
CASE trade_for_service._Fld9233
WHEN 0
THEN 'нет'
ELSE 'да'
END AS УТП_сделка,
CASE implementation_service._Fld8224
WHEN 0
THEN 'да'
ELSE 'нет'
END AS УТП_реализация,
CASE
WHEN implementation_service._Fld8224 = 0
THEN SUM(ISNULL(CAST(implementation_service._Fld2632 as money), 0))
ELSE '-'
END AS Сумма_УТП,
ISNULL(shopping._Fld1772,0) AS Сумма_оплаты_плюс,
FROM
MTCKCenter.dbo._Document7939 trade_for_service
JOIN MTCKCenter.dbo._Reference29 customer_contracts_ref
ON trade_for_service._Fld7945RRef = customer_contracts_ref._IDRRef
JOIN MTCKCenter.dbo._Reference90 service_ref
ON trade_for_service._Fld7942RRef = service_ref._IDRRef
JOIN MTCKCenter.dbo._Reference93 TSBO_ref
ON trade_for_service._Fld7947RRef = TSBO_ref._IDRRef
LEFT JOIN MTCKCenter.dbo._Document129 implementation_service
ON trade_for_service._Fld7945RRef = implementation_service._Fld2613RRef
JOIN MTCKCenter.dbo._Reference44 customer_ref
ON trade_for_service._Fld7944RRef = customer_ref._IDRRef
LEFT JOIN MTCKCenter.dbo._Document115 shopping
ON trade_for_service._Fld7945RRef = shopping._Fld1749RRef
LEFT JOIN MTCKCenter.dbo._Document104_VT1460 corrections1
ON trade_for_service._Fld7945RRef = corrections1._Fld1463RRef
LEFT JOIN MTCKCenter.dbo._Document104_VT1476 corrections2
ON trade_for_service._Fld7945RRef = corrections2._Fld1479RRef
LEFT JOIN MTCKCenter.dbo._Document98 refunds
ON trade_for_service._Fld7944RRef = refunds._Fld1199RRef
LEFT JOIN MTCKCenter.dbo._Document133_VT2880 write_off_to_
ON trade_for_service._Fld7945RRef = write_off_to_._Fld5602_RRRef
WHERE
(_Fld7942RRef=0x9C8F02DA550767D34576572C765E712A -- уменьшение стоимости авто
OR _Fld7942RRef=0xB999001DD8B71C2811EA5143E3D901D3) -- доплата за а/м
AND service_ref._Marked = 0x00
AND trade_for_service._Posted = 0x01
GROUP BY customer_contracts_ref._Description, trade_for_service._Posted,
customer_contracts_ref._Fld418, customer_contracts_ref._Fld419,
TSBO_ref._Description, service_ref._Description,
shopping._Fld1772, trade_for_service._Fld7941,
implementation_service._Fld2613RRef,
trade_for_service._Fld16346, customer_ref._Description,
trade_for_service._Fld9233, implementation_service._Fld8224,
implementation_service._Fld2632, trade_for_service._Fld8413,
corrections1._Fld8389, corrections2._Fld8390,
refunds._Fld1221, write_off_to_._Fld2887,
write_off_to_._Fld2888, trade_for_service._Number
Здравия всем желающим понюхать эту реальную кучу!
Есть БД, в которую данные заносились на похуй абсолютно.
Пример:
Номер_договора | Номер_сделки | Номер_реализации | Сумма_залупа | Сумма_кастюма | Сумма_второй_палочки_твикс |....|...|...|...|...|
а б в 300 3414 123424
а б в 300 3414 123424
г д е 134 154 17
г д ж 213 3903 125627
г д ж 213 13.151123151 125627
!ЗАДАЧА!
Надо выгрузить таблицу, в которой будут
1. ДИСТИНКТ номер_договора, дата_договора,
2. ДИСТИНКТ номер_сделки, дата_сделки (1 договор = 1 сделка),
3. ЧЕРЕЗ ЗАПЯТУЮ В 1ой ЯЧЕЙКЕ номер_реализации, дата_реализации (в одной сделке их может быть больше 1),
4. Запилить оконную функцию, кейс, или че нахуй угодно(я месяц работаю, до этого тыкал сиквел в вузе тока,
поэтому возможно просто не вижу более адекватное решение), которые
будут СУММИРОВАТЬ сумму_залупу, если у нее по 1 договору несколько РАЗНЫХ значений, и другие суммы,
или ВЫБИРАТЬ только одно значение, если они одинаковые по 1 договору.
1, 2, 3 пункты коряво, но разобрался. Зделал)
На 4ом жоско хочется пробить башней стену, вообще не понимаю, как это написать нормально.