- 1
https://pvs-studio.com/ru/blog/posts/cpp/0094/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 122
0
https://pvs-studio.com/ru/blog/posts/cpp/0094/
0
/*
xdrv_96_blacklist.ino - Blacklist for Tasmota
SPDX-FileCopyrightText: 2022 Theo Arends
SPDX-License-Identifier: GPL-3.0-only
*/
#define USE_BLACKLIST
#ifdef USE_BLACKLIST
/*********************************************************************************************\
* Blacklist support
*
* Check language and user set latitude/longitude against blacklist table
\*********************************************************************************************/
#define XDRV_96 96
typedef struct {
int16_t latitude_tl; // - 8999 to 8999
int16_t longitude_tl; // -17999 to 17999
int16_t latitude_br;
int16_t longitude_br;
uint16_t lcid;
} tBlArray;
//const char BlacklistText[] PROGMEM = "Stop war - Free Ukrain|Stop war - Free Ukrain|";
const char BlacklistText[] PROGMEM = "Stop war, Free Ukrain";
// lat_tl lon_tl lat_br lon_br lcid
tBlArray BlArray[] { 5900, 3200, 5300, 4400, 1049, // Around Moscow
5450, 2633, 5280, 2900, 1049 // Around Minsk
};
uint8_t blist_show = 0;
void BListEverySecond(void) {
if (Rtc.utc_time < 1648771200) { // Only until 2022-04-01
if (0 == (TasmotaGlobal.uptime % 20)) { // Only every 20 seconds
if (TasmotaGlobal.power) { // Only if any power on
uint32_t latitude = Settings->latitude / 10000;
uint32_t longitude = Settings->longitude / 10000;
uint32_t count = sizeof(BlArray) / sizeof(tBlArray);
for (uint32_t i = 0; i < count; i++) {
// Currently only supports top-right quarter of the earth
if ((LANGUAGE_LCID == BlArray[i].lcid) && // Check language id
(latitude < BlArray[i].latitude_tl) && // Check user set latitude and longitude against table
(latitude > BlArray[i].latitude_br) &&
(longitude > BlArray[i].longitude_tl) &&
(longitude < BlArray[i].longitude_br)) {
// char bl_text[100];
// snprintf_P(bl_text, sizeof(bl_text), PSTR("Power0 0")); // Turn all power off - annoying
// snprintf_P(bl_text, sizeof(bl_text), PSTR("Restart 1")); // Restart - more annoying
// snprintf_P(bl_text, sizeof(bl_text), PSTR("Reset 1")); // Reset - disastrous
// ExecuteCommand(bl_text, SRC_IGNORE);
// char bl_text[100];
// AddLog(LOG_LEVEL_NONE, PSTR("**** %s ****"), GetTextIndexed(bl_text, sizeof(bl_text), i, BlacklistText));
AddLog(LOG_LEVEL_NONE, PSTR("**** %s ****"), BlacklistText);
blist_show = i +1; // Set GUI message id
break;
}
}
}
} else if (0 == (TasmotaGlobal.uptime % 10)) { // Only every 10 seconds
blist_show = 0; // Reset GUI message id after 10 seconds
}
}
}
void BListShow(bool json) {
if (blist_show) {
// char bl_text[100];
// WSContentSend_PD(PSTR("{s}**** %s ****{m}{e}"), GetTextIndexed(bl_text, sizeof(bl_text), blist_show -1, BlacklistText));
WSContentSend_P(PSTR("{s}**** %s ****{m}{e}"), BlacklistText);
}
}
/*********************************************************************************************\
* Interface
\*********************************************************************************************/
bool Xdrv96(uint8_t function) {
bool result = false;
switch (function) {
case FUNC_EVERY_SECOND:
BListEverySecond();
break;
#ifdef USE_WEBSERVER
case FUNC_WEB_SENSOR:
BListShow(0);
break;
#endif // USE_WEBSERVER
}
return result;
}
https://github.com/arendst/Tasmota/commit/98cbf2587a1a914bbd16996ebb48dd451d3da448
0
Путин признал "PHP".
0
http://motherfuckingwebsite.com
<!-- yes, I know...wanna fight about it? -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-45956659-1', 'motherfuckingwebsite.com');
ga('send', 'pageview');
</script>
0
# Python 2.7
import cgi
print(cgi.parse_qs('a=bagor;+kakoi'))
# {'a': ['bagor']}
# Python 3.7.3
import urllib.parse
print(urllib.parse.parse_qs('a=bagor;+kakoi'))
# {'a': ['bagor']}
# Python 3.9.10
import urllib.parse
print(urllib.parse.parse_qs('a=bagor;+kakoi'))
# {'a': ['bagor; kakoi']}
Что, блядь, это за хуета???
Переводил программу на Python3 и пол дня потратил в попытках понять почему блядь тесты сломались.
Какой-то петух завязался, на ';' сепаратор, который обрезается.
https://docs.python.org/3/library/urllib.parse.html
Changed in version 3.10: Added separator parameter with the default value of &. Python versions earlier than Python 3.10 allowed using both ; and & as query parameter separator. This has been changed to allow only a single separator key, with & as the default separator.
И у меня не 3.10, но да похуй.
Как мне теперь закостылять это говно, не меняя данные?
0
location ~ ^/(pituh|kurochka) {
alias "static/pituh.gif";
default_type image/gif;
}
curl "http://localhost/pituh" - OK
curl "http://localhost/pituh123" - OK
curl "http://localhost/pituh/1/2/3" - OK
curl "http://localhost/pituh/1/2/3/" - INTERNAL SERVER ERROR: static/pituh.gifindex.html" is not a directory
Что это, блядь, за багор и как можно исправить?
+1
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(new Date(2022 - 1900, 0, 1, 20, 30)));
System.out.println(new SimpleDateFormat("YYYY-MM-dd").format(new Date(2022 - 1900, 0, 1, 20, 30)));
}
}
А что там у Jawa-блядей за отсос должен был случиться 1 января? Я что-то не могу воспроизвести:
https://www.programmersought.com/article/47096700076/
0
using KoKo.Property;
namespace MyProject {
public class Person {
private StoredProperty<string> FirstName { get; }
private StoredProperty<string> LastName { get; }
public Property<string> FullName { get; }
public Person(string firstName, string lastName) {
FirstName = new StoredProperty<string>(firstName);
LastName = new StoredProperty<string>(lastName);
FullName = DerivedProperty<string>.Create(FirstName, LastName, (first, last) => $"{first} {last}");
}
public void SetFirstName(string firstName) {
FirstName.Value = firstName;
}
}
}
0
'use strict'
const {TheCtrl} = require('the-controller-base')
const {withAuthorized} = require('the-controller-mixins')
async function tryExample () {
class MyCtrl extends withAuthorized(TheCtrl) {
/* ... */
}
}
tryExample().catch((err) => console.error(err))
Mixins for the-controller
Installation
$ npm install the-controller-mixins --save
Очень полезный и нужный пакет. Пользуйтесь.
https://www.npmjs.com/package/the-controller-mixins/v/2.1.0
+2
- null, null, null, null, null, null, null, null, null, null, null, null, null, null))
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null))
Это реальный коммит с работы
(не мой, я к jawa не притрагиваюсь)