- 1
https://journal.tinkoff.ru/holidays-millions/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
https://journal.tinkoff.ru/holidays-millions/
Познакомьтесь с человеком, который ушел из ИТ и зарабатывает до 2 млн рублей на праздниках
https://journal.tinkoff.ru/holidays-millions/
Необычных заказов были десятки: например, мастер-класс по рисованию нефтью. Для него мы нашли пять литров нефти, хотя это очень сложно. Баррель нефти или больше — пожалуйста, только что вы с ней будете делать потом? Утилизировать ее самостоятельно невозможно. Еще нас просили привезти дрессированного медведя на самолете в Новосибирск, провести мастер-класс по созданию леденцов в виде пениса для девичника и мастер-класс по горловому минету.
-------
а вы готовы уйти из IT ради того, чтобы возить медведя в Новосбириск?
−1
-
Ня, кавай |B
−1
let d="please like! "
var c=d
let x=s=>{for(let f=0;f<c.length;f++){eval(s)}}
x("d=d+d")
x("console.log(d)")
На каком языке это получится сделать короче?
0
Объясните, как правильно разрабатывать в 2021 году
Есть один продукт, состоящий из сайта, сервера и БД, связывающей их.
Сайт на PHP, с микрофреймворком, устанавливаемым через composer, отображающий данные из БД
Сервер - программа, слушающая порт из свой конфигурации и записывающая в БД
Таковы потребности, что на один сервер может быть установлено одна и более изолированных копий этого продукта (сервер + сайт + БД), а серверов несколько.
Сайты разделяют через виртуальные хосты nginx, сервера по портам, БД по имени.
Может случиться такое, что нужно остановить сайт или сервер, оставив второе работать.
Проблема в том, что развёртывание делается вручную переносом копий файлов, что доставляет страданий.
На серверах за всё время образовался бардак в конфигурациях
Что здесь нужно? Kubernetes, swarm, docker, docker-compose?
Проблема в том, что никогда не приходилось внедрять такое самостоятельно.
Смотрю в сторону docker-compose, но везде инструкции только для одного экземпляра продукта на одном сервере (или я чего-то не понимаю)
Объясните, пожалуйста, по-хорошему, что делать в таком случае
−1
void setAreaPreScale(double scale)
{
if(scale == 1)
setFrameSize(initialFrameSize.first, initialFrameSize.second);
else
{
double widthPart = (1 - initialFrameSize.first) * (1 - scale);
double heightPart = (1 - initialFrameSize.second) * (1 - scale);
setFrameSize(initialFrameSize.first + widthPart, initialFrameSize.second + heightPart);
}
}
требуется сделать отложенное масштабирование картинки, сначала рисуется (и скейлится методом setAreaPreScale) рамка с областью, в которую будет замасштабировано, затем отдельной кнопкой будет масштабироваться. в методе происходит рассчёт размера в пикселях рамки прескейла по параметру scale (отношение будущего масштаба к текущему). initialFrameSize на самом деле maxFrameSize, но авторский код сохранён
+1
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Регистратор", ЭтотОбъект.Отбор.Регистратор.Значение);
Запрос.УстановитьПараметр("НачалоПериода", ЭтотОбъект.Отбор.Регистратор.Значение.МоментВремени());
Запрос.УстановитьПараметр("КонецПериода", ЭтотОбъект.Отбор.Регистратор.Значение.МоментВремени());
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаСоставаДокумента.Склад,
| ТаблицаСоставаДокумента.Номенклатура,
| ТаблицаСоставаДокумента.Качество,
| ТаблицаСоставаДокумента.ХарактеристикаНоменклатуры,
| ТаблицаСоставаДокумента.СерияНоменклатуры
|ПОМЕСТИТЬ ВТ_Состава_Документа
|ИЗ
| &ТаблицаСоставаДокумента КАК ТаблицаСоставаДокумента
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СвободныеОстаткиОстаткиИОбороты.Склад,
| СвободныеОстаткиОстаткиИОбороты.Номенклатура,
| СвободныеОстаткиОстаткиИОбороты.Качество,
| СвободныеОстаткиОстаткиИОбороты.ХарактеристикаНоменклатуры,
| СвободныеОстаткиОстаткиИОбороты.СерияНоменклатуры,
| СвободныеОстаткиОстаткиИОбороты.КоличествоНачальныйОстаток,
| СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
| &НачалоПериода,
| &КонецПериода,
| Запись,
| Движения,
| НЕ Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.Продукция)
| И НЕ Номенклатура.ВестиУчетПоСериям
| И (Склад, Номенклатура, Качество, ХарактеристикаНоменклатуры, СерияНоменклатуры) В
| (ВЫБРАТЬ
| ВТ_СоставаДокумента.Склад,
| ВТ_СоставаДокумента.Номенклатура,
| ВТ_СоставаДокумента.Качество,
| ВТ_СоставаДокумента.ХарактеристикаНоменклатуры,
| ВТ_СоставаДокумента.СерияНоменклатуры
| ИЗ
| ВТ_Состава_Документа КАК ВТ_СоставаДокумента)) КАК СвободныеОстаткиОстаткиИОбороты
|ГДЕ
| СвободныеОстаткиОстаткиИОбороты.Регистратор = &Регистратор
| И СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток < 0";
Проверка на отрицательные остатки.....
0
// foo.h
namespace Xru {
struct Foo {
Foo();
};
}
// foo1.cpp
#include <foo.h>
using namespace Xru;
Foo::Foo() {}
// foo2.cpp
#include <foo.h>
namespace Xru {
Foo::Foo() {}
}
Вы пишите как 1 или 2?
До меня другой коллега доёбуецца, что нужно как 2.
0
struct Foo { Foo(int, int); };
struct Bar { explicit Bar(int, int); };
Foo f1(1, 1); // ok
Foo f2 {1, 1}; // ok
Foo f3 = {1, 1}; // ok
Bar b1(1, 1); // ok
Bar b2 {1, 1}; // ok
Bar b3 = {1, 1}; // NOT OKAY
А вы пишите explicit у коньструкторов? До меня коллега доёбуецца, что я не пишу.
0
function main() {
var distance = parseInt(readLine(), 10);
p((distance/40)*60)
}
let p=p=>console.log(p)
Как-то так вот!
0
import datetime, random, time, os, vk_api
import sqlite3 as sl
from vk_api.exceptions import Captcha
from vk_api.longpoll import VkEventType, VkLongPoll
from functions import *
from settings import *
vk_session = vk_api.VkApi(token=token, api_version=5.126)
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
now = datetime.datetime.now()
for event in longpoll.listen():
try:
def send_msg(msg='', chat=False, prefix=True, attach=''):
if chat:
vk.messages.send(chat_id=event.chat_id,message=msg,attachment=attach)
else:
vk.messages.send(user_id=event.user_id,message=msg,attachment=attach)
except Captcha:
time.sleep(1)
send_msg('Ошибка. Слишком частые запросы.')
except Exception as e:
time.sleep(1)
send_msg(f'Неизвестная ошибка при отправке сообщения.\n{e}')
try:
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
user_get = vk.users.get(user_ids=event.user_id)
first_name = user_get[0]['first_name']
last_name = user_get[0]['last_name']
if event.from_chat and event.chat_id and (event.message == '!meme' or event.message == '!мем'):
meme_create()
upload = vk_api.VkUpload(vk_session)
try:
a = upload.photo_messages(photos=os.path.dirname(__file__) + '/random_meme.jpg', peer_id=event.user_id)
send_msg(attach=f'photo{a[0]["owner_id"]}_{a[0]["id"]}',chat=True, prefix=False)
except:
send_msg("Ошибка. Попробуйте снова.")
elif event.from_chat and event.chat_id and (event.message == '!info' or event.message == '!инфо'):
response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
soup = BeautifulSoup(response.text, 'lxml')
created = soup.find('ya:created').get('dc:date')
created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
diff = datetime.datetime.now()-created1
modified = soup.find('ya:modified').get('dc:date')
modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''', chat=True)
elif event.from_user and event.user_id and (event.message == '!info' or event.message == '!инфо'):
response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
soup = BeautifulSoup(response.text, 'lxml')
created = soup.find('ya:created').get('dc:date')
created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
diff = datetime.datetime.now()-created1
modified = soup.find('ya:modified').get('dc:date')
modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''')
elif event.from_user and event.user_id and event.message == '!coin':
coin = 'Орёл' if random.randint(0, 1) == 1 else 'Решка'
send_msg(f'{coin}')
elif event.from_user and event.user_id and (event.message == '!anek' or event.message == '!анек'):
send_msg(f'{get_anek()}', prefix=False)
elif event.from_user and event.user_id:
con = sl.connect(os.path.dirname(__file__) + '/users.db')
count = 0
with con:
con.execute("""
CREATE TABLE IF NOT EXISTS USER (
user_id INTEGER NOT NULL PRIMARY KEY,
name TEXT,
permission_lvl INTEGER
);
""")
with con:
data = con.execute("SELECT * FROM USER")
for row in data:
if event.user_id in row:
count += 1
if count == 0:
send_msg(f'''Привет, это сообщение отправлено автоматически.\nПока я добавляю информацию о тебе в базу данных, ты можешь ознакомиться с командами написав !help\nКоманд не так много, но в будущем их станет больше ;)''')
sql = 'INSERT INTO USER (user_id, name, permission_lvl) values(?, ?, ?)'
data = [(event.user_id, f'{first_name} {last_name}', 1)]
with con:
con.executemany(sql, data)
if event.attachments:
print(
f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.message}\nattach: {event.attachments}\n")
else:
print(
f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.text}\n")
except Captcha:
time.sleep(1)
send_msg('Ошибка. Слишком частые запросы.')
except Exception as e:
time.sleep(1)
send_msg(f'Упс. Произошла неизвестная ошибка.\n{e}')
Каким образом можно улучшить этот ссаный говнокод?