- 1
IT Оффтоп #43
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
IT Оффтоп #43
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328
#11: (vanished) https://govnokod.xyz/_25436
#12: (vanished) https://govnokod.xyz/_25471
#13: (vanished) https://govnokod.xyz/_25590
#14: https://govnokod.ru/25684 https://govnokod.xyz/_25684
#15: https://govnokod.ru/25694 https://govnokod.xyz/_25694
#16: https://govnokod.ru/25725 https://govnokod.xyz/_25725
#17: https://govnokod.ru/25731 https://govnokod.xyz/_25731
#18: https://govnokod.ru/25762 https://govnokod.xyz/_25762
#19: https://govnokod.ru/25767 https://govnokod.xyz/_25767
#20: https://govnokod.ru/25776 https://govnokod.xyz/_25776
#21: https://govnokod.ru/25798 https://govnokod.xyz/_25798
#22: https://govnokod.ru/25811 https://govnokod.xyz/_25811
#23: https://govnokod.ru/25863 https://govnokod.xyz/_25863
#24: https://govnokod.ru/25941 https://govnokod.xyz/_25941
#25: https://govnokod.ru/26026 https://govnokod.xyz/_26026
#26: https://govnokod.ru/26050 https://govnokod.xyz/_26050
#27: https://govnokod.ru/26340 https://govnokod.xyz/_26340
#28: https://govnokod.ru/26372 https://govnokod.xyz/_26372
#29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
#30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
#31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
#32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
#33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
#34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
#35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
#36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
#42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
+1
CStringUtf8::iterator& CStringUtf8::iterator::operator++()
{
m_ptr += CCharUtf8Ref::s_bytesForUTF8Sequence[*m_ptr];
return *this;
}
CStringUtf8 CStringUtf8::subString( size_t startChar, size_t count ) const
{
iterator start = this->begin();
while( start!=this->end() && startChar>0 )
{
start++;
startChar--;
}
iterator afterLast = start;
while( afterLast!=this->end() && count!=0 )
{
afterLast++;
count--;
}
return CStringUtf8( start.c_ptr(), afterLast.c_ptr() );
}
CStringUtf8::iterator CStringUtf8::findSubString( CStringUtf8 const& sample, CStringUtf8::iterator startFrom ) const
{
CStringUtf8::iterator pos = startFrom;
CStringUtf8::iterator foundPos = pos;
CStringUtf8::iterator samplePos = sample.begin();
for( ;; )
{
if( samplePos==sample.end() )
return foundPos;
if( pos==this->end() )
return this->end();
if( *samplePos == *pos )
{
if( samplePos==sample.begin() )
foundPos = pos;
samplePos++;
pos++;
}
else
{
if( samplePos==sample.begin() )
pos++;
samplePos = sample.begin();
}
}
}
std::vector<CStringUtf8> CStringUtf8::componentsSeparatedByString( CStringUtf8 const& separator ) const
{
std::vector<CStringUtf8> comps;
size_t sepLen = std::distance( separator.begin(), separator.end() );
size_t startPos = 0;
CStringUtf8::iterator itStart = begin();
if( sepLen > 0 )
{
CStringUtf8::iterator itEnd;
while( ( itEnd = findSubString( separator, itStart ) ) != end() )
{
size_t cnt = std::distance( itStart, itEnd );
CStringUtf8 str = subString( startPos, cnt );
comps.push_back( str );
itStart = itEnd;
std::advance( itStart, sepLen );
startPos += cnt + sepLen;
}
}
size_t cnt = std::distance( itStart, end() );
if( cnt > 0 )
{
CStringUtf8 str = subString( startPos, cnt );
comps.push_back( str );
}
return comps;
}
Привычный для всех плюсовиков велосипед по работе со строкой (походу свой в каждом проекте).
Более 10 лет не замечали тормоза в componentsSeparatedByString, который 100 Кб текст разбирал на строки за 5-10 сек (!!!).
+1
for ($cycle = 1; $cycle <= 6; $cycle++) {
$all_tasks = get_all_tasks();
if ($all_tasks) {
foreach($all_tasks as $one_task) {
$lock_file_abs = __DIR__.'/locks/run_'.$one_task['id'];
$fp = fopen($lock_file_abs,"w+");
if (flock($fp, LOCK_EX | LOCK_NB)) {
solve_one_task($one_task);
flock($fp, LOCK_UN);
}
else {
#не можем запускать обработку задачи
}
fclose($fp);
unlink($lock_file_abs);
}
}
sleep(10);
}
«Как запускать cron чаще, чем раз в минуту при помощи PHP»
https://habr.com/ru/post/498934/
0
private String getStringDelimitedNullByte(Collection<String> stringList){
byte delimiter = (byte) 0;
int numBytes = 0;
int index = 0;
List<Byte> byteList = new ArrayList<>();
int stringListsize = stringList.size();
for (String str : stringList) {
numBytes += str.getBytes().length;
}
for (String str : stringList) {
byte[] currentByteArr = str.getBytes();
for (byte b : currentByteArr) {
byteList.add(b);
}
index++;
if (index < stringListsize) byteList.add(delimiter);
}
Byte[] byteArr = byteList.toArray(new Byte[numBytes]);
return new String(ArrayUtils.toPrimitive(byteArr));
}
0
IT Оффтоп #42
#8: (vanished) https://govnokod.xyz/_24815
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328
#11: (vanished) https://govnokod.xyz/_25436
#12: (vanished) https://govnokod.xyz/_25471
#13: (vanished) https://govnokod.xyz/_25590
#14: https://govnokod.ru/25684 https://govnokod.xyz/_25684
#15: https://govnokod.ru/25694 https://govnokod.xyz/_25694
#16: https://govnokod.ru/25725 https://govnokod.xyz/_25725
#17: https://govnokod.ru/25731 https://govnokod.xyz/_25731
#18: https://govnokod.ru/25762 https://govnokod.xyz/_25762
#19: https://govnokod.ru/25767 https://govnokod.xyz/_25767
#20: https://govnokod.ru/25776 https://govnokod.xyz/_25776
#21: https://govnokod.ru/25798 https://govnokod.xyz/_25798
#22: https://govnokod.ru/25811 https://govnokod.xyz/_25811
#23: https://govnokod.ru/25863 https://govnokod.xyz/_25863
#24: https://govnokod.ru/25941 https://govnokod.xyz/_25941
#25: https://govnokod.ru/26026 https://govnokod.xyz/_26026
#26: https://govnokod.ru/26050 https://govnokod.xyz/_26050
#27: https://govnokod.ru/26340 https://govnokod.xyz/_26340
#28: https://govnokod.ru/26372 https://govnokod.xyz/_26372
#29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
#30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
#31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
#32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
#33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
#34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
#35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
#36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
−1
Currently, we're ignoring failures to mlock signal stacks in the
workaround for #35777. This means if your mlock limit is low, you'll
instead get random memory corruption, which seems like the wrong
trade-off.
самый лучший язык на свете продолжает шпарить, отказались от free after use - получили «забыл сделать if (err != nil)»
https://github.com/golang/go/commit/69614c0d0e05787c8203bdc364c3293e1cf5094a
+1
char *CHudTextMessage::LocaliseTextString( const char *msg, char *dst_buffer, int buffer_size )
{
char *dst = dst_buffer;
for ( char *src = (char*)msg; *src != 0 && buffer_size > 0; buffer_size-- )
{
if ( *src == '#' )
{
// cut msg name out of string
static char word_buf[255];
char *wdst = word_buf, *word_start = src;
for ( ++src ; *src >= 'A' && *src <= 'z'; wdst++, src++ )
{
*wdst = *src;
}
*wdst = 0;
Тут недавно слили исходники «Team Fortress 2» и «Counter Strike: Global Offense» — и в соответствующих местах начался вой игроков: кошмар, мы все умрём, нас всех взломают!
0
public class FloatDynamicArray implements DynamicArray {
private int arrayLength;
private int countOfValues;
private float[] dataArray;
public FloatDynamicArray(int arrayLength) {
this.arrayLength = arrayLength;
dataArray = new float[arrayLength];
}
public long getLongValue(int index) {
throw new IllegalAccessError("Cannot get long value from FloatDynamicArray !");
}
public float getFloatValue(int index) {
return dataArray[index];
}
...
...
...
зачем делать отдельный метод getLongValue, который возбуждает исключение IllegalAccessError, когда мы заведомо знаем что это FloatDynamicArray, содержащий float[] значения ?
+1
function connect( $db_user, $db_pass, $db_name, $db_location )
{
$db_location = explode( ":", $db_location );
if ( isset( $db_location[1] ) ) {
$this->db_object = @mysqli_connect( $db_location[0], $db_user, $db_pass, $db_name, $db_location[1] );
}
else {
$this->db_object = @mysqli_connect( $db_location[0], $db_user, $db_pass, $db_name );
}
if ( ! $this->db_object ) {
$this->display_error( mysqli_connect_error( ), '1' );
}
$this->mysql_version = mysqli_get_server_info( $this->db_object );
mysqli_query( $this->db_object, "SET NAMES '" . COLLATE . "'" );
mysqli_set_charset( $this->db_object, "utf8" );
return true;
}
https://profiphp.ru/useful/class_mysqli.html
немного ООП ПХП
+1
<?php
class Db_object
{
protected static $db_table="users";
public static function find_all(){
global $database;
return static::find_by_query("SELECT * FROM ".static::$db_table." ");
}
public static function find_by_id($id){
global $database;
$raise=static::find_by_query("SELECT * FROM ".static::$db_table." WHERE id= $id LIMIT 1");
return !empty($raise) ? array_shift($raise): false;
}
public static function find_by_query($sql){
global $database;
$raise=$database->query($sql);
$object_array=array();
while ($row=mysqli_fetch_array($raise)) {
$object_array[]=static::instantation($row);
}
return $object_array;
}
// тут еще всякое говно
https://stackoverflow.com/questions/61362010/fatal-error-class-db-object-not-found-in-c-xampp-htdocs-cms-pro-admin-includ - ООП ЦМС ПРО АДМИН говнокодер