Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Работа, ЯП и ООП

2729  1 2 3 все
uscheswoi_82 коренной житель16.06.24 10:26
16.06.24 10:26 

Всем привет! Хотел бы поговорить насчёт ЯП, ООП и работы.

Короче недавно прочитал в интернете что язык Си++ плохой, но перепутал с Си, и начал воспоминать про Си. Вчера был жаркий спор насчёт Си++. Во-первых помимо ANSI C++ есть разные Си++ и фреймворки (MFC, .NET, VCL), во-вторых есть разные компиляторы - GCC, Visual C++, BCC, итд. Я пользуюсь гнутым Си++ (т.е. gnu cc) а среда разработки Embarcadero Dev-C++ с GCC. С тем с кем спорил, было сделано предположение оппонентом что Си++ придумали чтобы отказаться от указателей. Я где-то читал, что Си++ программисты часто используют на самом деле Си. Но там путаница с этим, если программист хочет пользоваться Си в Си++, то имхо нужно использовать допустим cstring, cmath, cstdio, итд. Допустим если в Си++ работаешь с string, и чтобы перейти из Си++ к Си есть магическая c_str. GCC не поддерживает format. Когда создаёшь Си++ проект, то Embarcadero Dev-C++ сгенерирует такой код:

#include <windows.h>
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
 switch(Message) {
        case WM_DESTROY: {
            PostQuitMessage(0);
            break;
        }        
        /* All other messages (a lot of them) are processed using default procedures */
        default:
            return DefWindowProc(hwnd, Message, wParam, lParam);
 }
 return 0;
}
/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
 WNDCLASSEX wc; /* A properties struct of our window */
 HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
 MSG msg; /* A temporary location for all messages */
 /* zero out the struct and set the stuff we want to modify */
 memset(&wc,0,sizeof(wc));
 wc.cbSize         = sizeof(WNDCLASSEX);
 wc.lpfnWndProc  = WndProc; /* This is where we will send messages to */
 wc.hInstance  = hInstance;
 wc.hCursor         = LoadCursor(NULL, IDC_ARROW);
 /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
 wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
 wc.lpszClassName = "WindowClass";
 wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
 wc.hIconSm         = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
 if(!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
 }
 hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, /* x */
        CW_USEDEFAULT, /* y */
        640, /* width */
        480, /* height */
        NULL,NULL,hInstance,NULL);
 if(hwnd == NULL) {
        MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
 }
 /*
        This is the heart of our program where all input is processed and 
        sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
        this loop will not produce unreasonably high CPU usage
 */
 while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */
        TranslateMessage(&msg); /* Translate key codes to chars if present */
        DispatchMessage(&msg); /* Send it to WndProc */
 }
 return msg.wParam;
}


Вы тут видите где-нибудь Си++ код? Вот я тоже его не вижу!


Когда обращаешься к Win32 API они все на си.Итак, было у меня уймо время, и было делать нечего, решил я подружить си т.е. Win32 API с си++, вот я сделал базовый класс. см. Control.cpp:

#include "control.h"
Control::Control(string text, int x, int y, int width, int height, HWND hParent, int id) {
 this->text = text;
 this->clss = "STATIC";
 this->x = x;
 this->y = y;
 this->width = width;
 this->height = height;
 this->hParent = hParent;
 this->id = id;
}
Control::Control(string text, int x, int y, int width, int height, HWND hParent) {
 this->text = text;
 this->clss = "STATIC";
 this->x = x;
 this->y = y;
 this->width = width;
 this->height = height;
 this->hParent = hParent;
 this->id = -1;
}
void Control::show() {
 if(this->id != -1)
        this->hThis = CreateWindow(this->clss.c_str(), this->text.c_str(), WS_CHILD | WS_VISIBLE, this->x, this->y, this->width, this->height, this->hParent, (HMENU)this->id, NULL, NULL);
 else
        this->hThis = CreateWindow(this->clss.c_str(), this->text.c_str(), WS_CHILD | WS_VISIBLE, this->x, this->y, this->width, this->height, this->hParent, NULL, NULL, NULL);
}
void Control::show(int style) {
 if(this->id != -1)
        this->hThis = CreateWindow(this->clss.c_str(), this->text.c_str(), WS_CHILD | WS_VISIBLE | style, this->x, this->y, this->width, this->height, this->hParent, (HMENU)this->id, NULL, NULL);
 else
        this->hThis = CreateWindow(this->clss.c_str(), this->text.c_str(), WS_CHILD | WS_VISIBLE | style, this->x, this->y, this->width, this->height, this->hParent, NULL, NULL, NULL);
}
void Control::show(int style, int exstyle) {
 if(this->id != -1)
        this->hThis = CreateWindowEx(exstyle, this->clss.c_str(), this->text.c_str(), WS_CHILD | WS_VISIBLE | style, this->x, this->y, this->width, this->height, this->hParent, (HMENU)this->id, NULL, NULL);
 else
        this->hThis = CreateWindowEx(exstyle, this->clss.c_str(), this->text.c_str(), WS_CHILD | WS_VISIBLE | style, this->x, this->y, this->width, this->height, this->hParent, NULL, NULL, NULL); 
}
void Control::set_text(string text) {
 this->text = text;
 SetWindowText(this->hThis, text.c_str());
}
string Control::get_text() {
 string data;
 data.resize(GetWindowTextLength(this->hThis)+1, '\0');
 GetWindowText(this->hThis, LPSTR(data.c_str()), GetWindowTextLength(this->hThis)+1);
 return data;
}
void Control::set_x(int x) {
 this->x = x;
 refresh(); 
}
int Control::get_x() {
 return this->x = x; 
}
void Control::set_y(int y) {
 this->y = y;
 refresh();
}
int Control::get_y() {
 this->y = y;
}
void Control::set_width(int width) {
 this->width = width;
 refresh(); 
}
void Control::set_height(int height) {
 this->height = height;
 refresh(); 
}
int Control::get_width() {
 return this->width;
}
int Control::get_height() {
 return this->height;
}
void Control::refresh() {
 MoveWindow(this->hThis, this->x, this->y, this->width, this->height, true);
}
void Control::set_class(string clss) {
 this->clss = clss;
}
bool Control::isClicked(WPARAM p) {
 if(this->id != -1 && this->id == LOWORD(p))
   return true;
 return false;
}
HWND Control::get_handle() {
  return this->hThis; 
}
Control::~Control() {
}


Control.h:

#ifndef CONTROL_H
#define CONTROL_H
#include <windows.h>
#include <string>
using namespace std;
class Control {
 private:
        HWND hParent;
        HWND hThis;
        string text;
        string clss;
        int x;
        int y;
        int width;
        int height;
        int id;
 private:
        void refresh();
 public:
        Control(string text, int x, int y, int width, int height, HWND hParent);
        Control(string text, int x, int y, int width, int height, HWND hParent, int id);
        virtual ~Control();
        void set_text(string text);
        string get_text();
        void set_x(int x);
        void set_y(int y);
        int get_x();
        int get_y();
        void set_width(int width);
        void set_height(int height);
        int get_width();
        int get_height();
        void show();
        void show(int style);
        void show(int style, int exstyle);
        bool isClicked(WPARAM p);
        void set_class(string clss);
        HWND get_handle();
};
#endif


Вот так я подружил Си++ с ComboBox:

#include "combobox.h"
ComboBox::ComboBox(string title, int x, int y, int width, int height, HWND hParent):
 Control(title, x, y, width, height, hParent) {
        Control::set_class("COMBOBOX");
}
ComboBox::ComboBox(string title, int x, int y, int width, int height, HWND hParent, int id) :
 Control(title, x, y, width, height, hParent, id) {
        Control::set_class("COMBOBOX");
}
void ComboBox::add_item(string text) {
 SendMessage(this->get_handle(), CB_ADDSTRING, 0, (LPARAM)text.c_str());
}
long ComboBox::get_count() {
 return SendMessage(this->get_handle(), CB_GETCOUNT, 0, 0);
}
long ComboBox::get_selected_index() {
 return SendMessage(this->get_handle(), CB_GETCURSEL, 0, 0);
}
string ComboBox::get_item(long item_index) {
 char buf[4096]; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 SendMessage(this->get_handle(), CB_GETLBTEXT, (WPARAM)item_index, (LPARAM)buf);
 string data(buf); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 return data;
}
void ComboBox::delete_item(long item_index) {
 SendMessage(this->get_handle(), CB_DELETESTRING, (WPARAM)item_index, 0);
}
void ComboBox::clear() {
 SendMessage(this->get_handle(), CB_RESETCONTENT, 0, 0);
}

Переход из Си++ в Си, и обратно, я считаю каким-то маразмом.


Мне дали чётко понять что моя нисша не C#, Си++, итд, а PHP! Короче лет 10 назад когда меня арбайтсамт дёргал чтобы я писал бевербунги, я писал бевербунги на программиста PHP, там требовались знания фреймворков, хотя я их не знал. Допустим пишу бевербунги в г. Мюнхен, там у одной фирмы стоит что нужно знать Symfony, в другой фирме нужно знать CakePHP, в третьей фирме Zend Framework, в четвёртой фирме Laravel. Фреймворки похожи, самая сложная наверное Symfony, т.к. проект создаётся через командную строку. Я освоил Kohana Framework и NuSOAP, кстати благодаря NuSOAP я смог подружить ASP.NET с PHP. После того как я поиграл с Kohana, я создал свой PHP фреймворк. Короче я работал с Reflection чтобы подружить с моим ORM, пишишь вот так:

<?php
class Messages extends ORM {
  /** 
   * @type:integer
   * @autoincrement:true
   * @unsigned:true
   * @primarykey:true
   */
  public $messageid;
  /**
   * @type:varchar(255)
   * @is_null:false
   * @annotation:"Author:"
   */
  public $author;
  /**
   * @type:text
   * @is_null:false
   * @annotation:"Message:"
   */
  public $message;
  /**
   * @type:DATETIME
   * @is_null:false
   * @annotation:"Date:"
   */
  public $date;
  /**
   * @type:varchar(255)
   * @is_null:false
   * @annotation:"E-mail:"
   */
  public $email;
}


А благодаря моему ORM т.е. если напишишь вот так

$obj_orm_messages = ORM::factory('messages');
//$arr_messages = $obj_orm_messages->select('', array('limit' => $int_limit, 'offset' => $int_offset, 'orderby' => array('date ASC')));

получал вот так:

CREATE TABLE Messages(messageid INTEGER NOT NULL AUTO_INCREMENT, author VARCHAR(255) NOT NULL, message TEXT NOT NULL, date DATETIME NOT NULL, PRIMARY KEY(messageid))

Когда программируешь на Symfony, Zend Framework, Laravel, итд. Есть определённые правила и табу. Допустим во вьюшках писать вот такое это табу:

<link rel="stylesheet" type="text/css" src="">
<script src=""></script>
<form method="post" action="">
<input type="text">
<input type="submit" value="send">
</form>

Вместо тегов используешь так называемые хелперы, это статичные методы определённых классов, т.е. фактически программируешь на структуироном языке. Потом я был ошарашен, но эти фреймворки загружаются в память где-то на 100 мбайт/пользователь.


Так-же в своём фреймворке я сделал так:

<?php
class DB {
  private $str_sql;
  private $is_order_by_first;
  private $is_non_query;
  private $is_group_by_first;
  // general 
  public function __construct() {
  }
  private function set_sql($str_sql) {
    $this->str_sql = $str_sql;
  }
  private function get_sql() {
    return $this->str_sql;
  }
  public function exec() {
    $str_sql = $this->get_sql();
    $arr_rows = array();
    $arr_config = Config::get('config');
    $obj_db = new mysqli($arr_config['database_connection']['server'], $arr_config['database_connection']['username'], $arr_config['database_connection']['password'], $arr_config['database_connection']['database']);
    $obj_result = $obj_db->query($str_sql);
    if($this->is_non_query == false) {
      if($obj_db->connect_errno == 0) {
        $int_index = 0;
        while($arr_row = $obj_result->fetch_assoc()) {
          $arr_rows[$int_index] = $arr_row;
          $int_index ++ ;
        }
      }
    $obj_db->close();
    return $arr_rows;
    }
    elseif($this->is_non_query == true) {
      $obj_db->close();
      return @$obj_db->insert_id;
    }
  }
  // SELECT Begin
  public function select($str_select = '*') {
    $this->is_order_by_first = true;
    $this->is_group_by_first = true;
    $this->is_non_query = false;
    $this->set_sql('SELECT ' . $str_select . ' ' );
    return $this;
  }
  public function from($str_from) {
    $str_sql = $this->get_sql();
    $this->set_sql($str_sql . ' FROM ' . $str_from);
    return $this;
  }
  private function where_abstract($str_where, $str_character, $str_type, $str_value) {
    $str_sql = ''; 
    $str_value2 = '';
    if($str_type == 'string') 
      $str_value2 = ' ' . $str_character . '\'' . $str_value . '\'';
    elseif($str_type == 'date') 
      $str_value2 = ' ' . $str_character . '\'' . $str_value . '\'';
    elseif($str_type == 'integer') 
      $str_value2 = ' ' . $str_character . $str_value;
    $str_sql .= $str_where . ' ' . $str_value2;
    return $str_sql;
  }
  public function where($str_where, $str_character, $str_type, $str_value) {
    $str_sql = $this->get_sql();
    $str_sql2 = $this->where_abstract($str_where, $str_character, $str_type, $str_value);
    $this->set_sql($str_sql . ' WHERE ' . $str_sql2);
    return $this;
  }
  public function or_where($str_where, $str_character, $str_type, $str_value) {
    $str_sql = $this->get_sql();
    $str_sql2 = $this->where_abstract($str_where, $str_character, $str_type, $str_value);
    $this->set_sql($str_sql . ' OR ' . $str_sql2);
    return $this;
  }
  public function where_open() {
    $str_sql = $this->get_sql();
    $this->set_sql($str_sql . ' ( ');
    return $this;
  }
  public function where_close() {
    $str_sql = $this->get_sql();
    $this->set_sql($str_sql . ' ) ');
    return $this;
  }
  public function and_where($str_where, $str_character, $str_type, $str_value) {
    $str_sql = $this->get_sql();
    $str_sql2 = $this->where_abstract($str_where, $str_character, $str_type, $str_value);
    $this->set_sql($str_sql . ' AND ' . $str_sql2);
    return $this;
  }
  public function join($str_type, $str_table) {
    $str_sql = $this->get_sql();
    $str_sql .= ' ' . $str_type . ' ' ;
    $str_sql .= $str_table;
    $this->set_sql($str_sql);
    return $this;
  }
  public function on($str_key1, $str_key2, $str_operator = '=') {
    $str_sql = $this->get_sql();
    $str_sql .= ' ' . $str_key1 . ' ' . $str_operator . ' ' . $str_key2;
    $this->set_sql($str_sql);
    return $this;
  }
  public function order_by($str_field, $str_key) {
    $str_sql = $this->get_sql();
    if($this->is_order_by_first == false) {
      $this->set_sql($str_sql . ', ' . $str_field . ' ' . $str_key);
      return $this;
    }
    if($this->is_order_by_first == true) {
      $this->is_order_by_first = false;
      $this->set_sql($str_sql . ' ORDER BY ' . $str_field . ' ' . $str_key);
      return $this;
    }
  }
  public function group_by($str_field) {
    $str_sql = $this->get_sql();
    if($this->is_group_by_first == false) {
      $this->set_sql($str_sql . ', ' . $str_field);
    }
    if($this->is_group_by_first == true) {
      $this->is_group_by_first = false;
      $this->set_sql($str_sql . ' GROUP BY ' . $str_field);
    }
    return $this;  
  }
  public function limit($int_offset, $int_count = '') {
    $str_sql = $this->get_sql();
    $str_sql2 = ' LIMIT ' . $int_offset;
    if($int_count != '') $str_sql2 .= ',' . $int_count;
    $this->set_sql($str_sql . $str_sql2);
    return $this;
  }
  // SELECT End
  // INSERT Begin
  public function insert($str_table, $arr_columns) {
    $str_sql = 'INSERT INTO ' . $str_table . '(';
    $this->is_non_query = true;
    $int_index = 0;
    foreach($arr_columns as $str_column) {
      $str_sql .= $str_column;
      if($int_index < count($arr_columns) - 1) 
        $str_sql .= ',';
      $int_index ++ ;
    }
    $str_sql .= ') '; 
    $this->set_sql($str_sql);
    return $this;
  }
  public function values($arr_values) {
    $str_sql = $this->get_sql();
    $str_sql .= ' VALUES(';
    $int_index = 0;
    foreach($arr_values as $str_key => $arr_value) {
      if($arr_value['type'] == 'string') 
        $str_sql .= '\'' . $arr_value['value'] . '\'';
      elseif($arr_value['type'] == 'date')
        $str_sql .= '\'' . $arr_value['value'] . '\'';
      elseif($arr_value['type'] == 'integer') 
        $str_sql .= $arr_value['value'];
      if($int_index < count($arr_values) - 1) 
        $str_sql .= ',';
      $int_index ++ ;
    }
    $str_sql .= ')';
    $this->set_sql($str_sql);
    return $this;
  }
  // INSERT End
  // UPDATE Begin
  public function update($str_table) {
    $str_sql = 'UPDATE ' . $str_table; 
    $this->set_sql($str_sql);
    return $this;
  }
  public function set($arr_fields) {
    $str_sql = $this->get_sql();
    $str_sql .= ' SET ';
    $int_index = 0;
    foreach($arr_fields as $arr_field) {
      if($arr_field['type'] == 'string') 
        $str_sql .= $arr_field['name'] . '=\'' . $arr_field['value'] . '\'';
      elseif($arr_field['type'] == 'date') 
        $str_sql .= $arr_field['name'] . '=\'' . $arr_field['value'] . '\'';
      elseif($arr_field['type'] == 'integer') 
        $str_sql .= $arr_field['name'] . '=' . $arr_field['value'];
      if($int_index < count($arr_fields) - 1) 
        $str_sql .= ',';
      $int_index ++ ;
    }
    $this->set_sql($str_sql);
    return $this;
  }
  // UPDATE End
  // DELETE Begin
  public function delete() {
    $this->is_non_query = true;
    $str_sql = 'DELETE ';
    $this->set_sql($str_sql);
    return $this;
  }
  // DELETE End
}


Поэтому у меня неприязнь к ООП.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#1 
uscheswoi_82 коренной житель16.06.24 10:34
NEW 16.06.24 10:34 
в ответ uscheswoi_82 16.06.24 10:26

В 2007 когда учился в колледже, была практическая работа, у меня был свой проект, писал на MFC в Visual Studio 2005, для ресторанов для КПК 2003 (Windows CE), вот скриншот программы:


За это я получил тройбан


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#2 
uscheswoi_82 коренной житель16.06.24 10:40
NEW 16.06.24 10:40 
в ответ uscheswoi_82 16.06.24 10:34

Спор был, по поводу ООП, а так-же что как замечательно что в JavaScript появились классы. А я считаю что можно использовать WebAssembly. В яндекс картах посылают не картинки а бинарный WebAssembly см. https://habr.com/ru/companies/yandex/articles/475382/. Тот-же блезор использует WebAssembly.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#3 
AlexNek патриот16.06.24 11:00
AlexNek
NEW 16.06.24 11:00 
в ответ uscheswoi_82 16.06.24 10:40
Спор был, по поводу ООП,

Так и не понятно о чём. И слишком много разного всего, не осилил смущ

Можно выбрать одну единственную тему?

#4 
uscheswoi_82 коренной житель16.06.24 11:09
NEW 16.06.24 11:09 
в ответ uscheswoi_82 16.06.24 10:40

Сейчас решил опять заняться MFC для Windows CE т.к. будут воспоминания на счёт Embedded см. https://groups.germany.ru/12994140000001/f/41025455.html?C..., но столкнулся с проблемой что там нет CFile см. https://learn.microsoft.com/ru-ru/cpp/mfc/reference/cfile-...,. Прям какой-то кашиваризм, приходится переходить с Си++ на Си и обратно, и делать какие-то костыли см.:

void CxxxxxDlg::OnBnClickedButton1()
{
  // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
  CString str;
  typedef struct {
        wchar_t descr[80];
        int day;
        int month;
        int year;
        int hour;
        int minutes;
  } DATABASE;

  this->description.GetWindowTextW(str);
  MessageBox(str);
  DATABASE db;
  wcscpy(db.descr, str);
  FILE *f;
  f = fopen("test.bin", "w+b");
  fwrite(&db, sizeof(db), 1, f);
  fclose(f);
}
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#5 
uscheswoi_82 коренной житель16.06.24 11:19
NEW 16.06.24 11:19 
в ответ uscheswoi_82 16.06.24 11:09

Да вот ещё... это мой фреймворк т.к. гнутый си т.е. GCC не поддерживает format, хотя на дворе 2024 год, пришлось вот так делать:

// -lwinmm
#include <stdio.h>
#include "multimedia.h"
Multimedia::Multimedia(string filename, string device) {
 this->id = "snd1";
 this->filename = filename;
 this->device = device;
 this->handle = NULL;
}

Multimedia::Multimedia(string filename, string device, HWND handle) {
 this->id = "snd1";
 this->filename = filename;
 this->device = device;
 this->handle = handle;
}

void Multimedia::open() {
 string cmd = "open \"";
 cmd += this->filename;
 cmd += "\" type ";
 cmd += this->device;
 cmd += " alias ";
 cmd += this->id;
 cmd += " wait ";
 /*if(this->handle != NULL) {
        
        int ihwnd = DECLARE_HANDLEt(this->handle);
        stringstream s();
        s << ihwnd;
        cmd += "window ";
        cmd += s;
 }*/ 
 mciSendString(cmd.c_str(), NULL, 0, NULL);
}


void Multimedia::play() {
 string cmd = "play ";
 cmd += this->id;
    mciSendString(cmd.c_str(), NULL, 0, 0);
}

void Multimedia::play_video() {
 string cmd = "play ";
 cmd += this->id;
// cmd += " window at 10 80 300 225 notify";
 //cmd += " notify ";
    mciSendString(cmd.c_str(), NULL, 0, 0); 
}


void Multimedia::stop() {
 string cmd = "stop ";
 cmd += this->id;
    mciSendString(cmd.c_str(), NULL, 0, 0);
}

void Multimedia::close() {
 string cmd = "close ";
 cmd += this->id;
    mciSendString(cmd.c_str(), NULL, 0, 0);
}

// new 06.09 25.06.2021
void Multimedia::set_window() {
 char buf[64]; /// !!!!!!!!!!!!!!!!!!!!!
 sprintf(buf, "%p", this->handle); /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 string str(buf); /// !!!!!!!!!!!!!!
 string cmd = "window ";
 cmd += this->id;
 cmd += " handle ";
 cmd += str;
 //MessageBox(NULL, cmd.c_str(), "", MB_OK);
 mciSendString(cmd.c_str(), NULL, 0, 0);
}
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#6 
uscheswoi_82 коренной житель16.06.24 11:42
NEW 16.06.24 11:42 
в ответ AlexNek 16.06.24 11:00
Можно выбрать одну единственную тему?

Просто если не знаешь особенности современных фреймворков, то делать в IT нечего. А джоб центр давит, нужно резюме отсылать. У каждого фреймворка свой подход, если программируешь на Symfony, то и думать нужно так же, если не дай бог будешь использовать костыли, то могут уволить. Symfony весит очень много, там используется свой шаблонизатор Twig, и ORM Doctrine. Благодаря Symfony имхо можно сказать появился Razor и EntityFramework.


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#7 
uscheswoi_82 коренной житель16.06.24 11:58
NEW 16.06.24 11:58 
в ответ uscheswoi_82 16.06.24 11:42

Если чего-то нет, то приходится какие-то костыли писать. В Си++ опасно костыли писать т.е. переходить с Си++ на Си, т.к. там работаешь с Сишными типами данных, а это опасно, есть так скажем переполнение буфера см. http://www.freebsd.org.ru/developers-handbook/x1169.html, вот например переполнение буфера:

char buf[512];
HWND hwndField1;
...
GetWindowText(hwndField, buf, GetWindowTextLength(hwndField));


Чтобы не было переполнения буфера то делаем так:

char *buf;
HWND hwndField1;
...
buf = (char *)malloc(GetWindowTextLength(hwndField)+1);
GetWindowText(hwndField, buf, GetWindowTextLength(hwndField));


Но нужно память освобождать т.е. написать free, иначе будет утечка памяти см. https://habr.com/ru/companies/piter/articles/432072/:

free(buf);


Для этого наверное Си++ и придумали, чтобы не морочить голову программисту с переполнением буфера и утечкой памяти.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#8 
AlexNek патриот16.06.24 14:13
AlexNek
NEW 16.06.24 14:13 
в ответ uscheswoi_82 16.06.24 11:42
А джоб центр давит, нужно резюме отсылать.

ну так и отсылайте, а знаешь или не знаешь это уже вторично. Всё знать невозможно, выберите себе одно что то и на этом концентрируйтесь.

Мне кажется, что на PHP больше вакансий, чем на С/С++. Никто не хочет этой фигнёй больше заниматься.

#9 
Срыв покровов патриот16.06.24 16:21
NEW 16.06.24 16:21 
в ответ AlexNek 16.06.24 14:13

дед опять забыл принять таблетки

#10 
uscheswoi_82 коренной житель16.06.24 23:39
NEW 16.06.24 23:39 
в ответ AlexNek 16.06.24 14:13
ну так и отсылайте, а знаешь или не знаешь это уже вторично.

Нет я просто лишь хотел объяснить чтобы была дискуссия. Спор был что Си отстой, а Си++ супер.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#11 
AlexNek патриот16.06.24 23:50
AlexNek
NEW 16.06.24 23:50 
в ответ uscheswoi_82 16.06.24 23:39
Спор был что Си отстой, а Си++ супер

Ну так с этого и нужно было начинать, а то прокручивать дофига.зло


Это будет неверно для сравнения многих языков.

Для каждого случая использования будут свои критерии. Да и еще при этом смотря с какой стороны посмотреть.

Так что нужны еще чёткие рамки в которых будет проводится сравнение.

#12 
uscheswoi_82 коренной житель17.06.24 00:41
NEW 17.06.24 00:41 
в ответ Срыв покровов 16.06.24 16:21
дед опять забыл принять таблетки

Я не дед, а молодой человек, мне кажется я моложе тут многих, т.к. молодёжь не сидит в форумах, я сижу только потому, потому-что я на пенсии. Вы так про меня пишите лишь только потому, потому-что просто вам не нравится моя точка зрения. Просто вам я не нравлюсь лишь потому-что я высказывал свою точку зрения в этом форуме - я не был против локдауна, и привился три раза, и я был против одной женщины. Насчёт этой женщины, ну тут люди сами были виноваты, они писали мне в этом форуме, что они за эту женщину лишь потому, чтобы государство перестало таким как я платить пособие (хотя я пока не сижу на шеи у государства), т.е. чтобы арбайтслоз отменили (чтобы те кто работают меньше налогов платить допустим социальщикам, и чтобы они больше денег зарабатывать могли, т.е. чтобы шло больше им в карман), и чтобы безработных и больных иностранцев таких как я из Германии повыселяли. Ну я ведь лишь высказывал своё мнение в этом форуме, и всё. Но я никого ни к чему не призывал и никому ничего не наязывал, а своё мнение высказывать можно. Вот я четвёртый раз не привился, и относился легкомысленно т.е. маски не носил когда их уже отменили, и я подцепил где-то эту корону, и я очень тяжело болел, хотя в этом форуме многие уверяли что это неопасная болезнь, типа как простуда или грипп. Сначало у меня запахи напрочь пропали, потом немного слух ухудшился т.е. стал я хуже слышать (допустим раньше я слышал шум автобуса когда закрыто окно, а сейчас не слышу), каша в голове и плюс провыла памяти появились, а так-же проблемы со сном, т.е. у меня появился лонг-синдром после того как я переболел короной. А у pодственника несколько зубов выпало после того как он переболел короной. У меня мaть по образованию биолог, биохимик, и биоинформатик, и у неё есть докторская, и она хорошо знает что такое ковид.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#13 
uscheswoi_82 коренной житель17.06.24 00:51
NEW 17.06.24 00:51 
в ответ uscheswoi_82 17.06.24 00:41

Тут где-то 3-4 айтишника против меня лишь потому, потому-что у нас противоположенные взгляды на жизнь и на быт. Для них высокие налоги и локдаун это ай ай ай. В Германии налоги и раньше были высокими, раньше не было ещё минималки, т.е. брали на ту зарплату, на которую договоришься с начальством.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#14 
zavuch постоялец17.06.24 10:52
zavuch
NEW 17.06.24 10:52 
в ответ uscheswoi_82 16.06.24 10:26
начал воспоминать про Си. Вчера был жаркий спор насчёт Си++.


С папаней споришь или в своей пустой группе сам с собой, где ты один закрылся и никого не пускаешь? Где ты спорил?

#15 
zavuch постоялец17.06.24 10:55
zavuch
NEW 17.06.24 10:55 
в ответ Срыв покровов 16.06.24 16:21
дед опять забыл принять таблетки





#16 
uscheswoi_82 коренной житель17.06.24 15:08
NEW 17.06.24 15:08 
в ответ zavuch 17.06.24 10:52, Последний раз изменено 17.06.24 16:25 (uscheswoi_82)
Где ты спорил?

Дома спорил, сeстра приезжала на выходных к нам в гости, она живёт за 300-400 км., я ей рассказал, вот и спорили. А причиной спора была вот это, просто я сижу в одном форуме старый DOS, и одна дама написала что ей Си и Си++ не нравятся, ей больше мол фортран нравится, и там один программист написал, что Си++ придумали чтобы можно было программиста выгнать с работы. Поэтому я в своём дневнике создал тему Си. У той дамы какой-то старый вроде бы как я понял фортран, я ей посоветовал поставить что-нибудь посвежее допустим Open Watcom Fortran. Сейчас я решил тоже изучать Fortran. А ветку Embedded я создал, потому-что мне понравилась тема про программирования приложение под Android в том форуме старый DOS, если у меня вдруг будет здоровье, у меня есть вот такая книжка, а там есть диск с Eclipse, JDK, и ADT, я установлю это всё, и буду тоже программировать и делиться со всем миром. Мне этот андроид раньше на психику сильно действовал, просто когда программируешь и запускаешь на эмуляторе то иногда программа вылетает, то сам эмулятор Андроид долго стартуется, то не спервого раза App в эмуляторе запускается, вот эта книжка с диском:




Но мне нравится Windows CE и Windows CE .NET, поэтому в первую очередь затрону Windows CE, а не Android.


А oтец мне говорил ещё в 2010 году что моя ниша это PHP, чтобы я все остальные языки не изучал и про них забыл, а изучал только PHP, просто у нас в Казахстане был бизнес, и мы купались в деньгах, а потом когда приехали в Германию один из руководитель проекта из Microsoft рассказал что эра классического Visual Basic заканчивается, и компания Microsoft переходит на новую технологию .NET, мы с oтцoм в интерет магазине купили две новых Visual Studio 2008, я купил себе Professional Edition, т.к. я хотел чтобы был Microsoft SQL Server Developer Edition, а oтец купил себе Standard Edition, т.к. ему не нужен был SQL Server, но мы купили Upgrade версию, а Upgrade версия стоила на 50% дешевле, чем полная версия, но чтобы установить её можно было иметь любую другую среду разработки (допустим Borland C++ Builder, Delphi, Eclipse, или любую предыдущую версию Visual Studio). Мне в колледже дали Microsoft Visual Studio 2005 Professional Edition, поэтому установка прошла гладко, а у oтца на компьютере был установлен Visual Basic 6.0 и Eclipse, поэтому у него тоже всё установилось.



В Visual Studio 2008 был конвертатор из Visual Basic 6.0 в VB.NET 3.5. Короче мы импортировали приложение написанное на Visual Basic 6.0, но оно не хотело импортировать, т.к. там много кастомных элементов, там был какой-то мостик между Visual Basic 6.0 и VB.NET. Покуда наша программа в Казахстане работала 24 часа в сутки и 7 дней в неделю, было принято решение использовать безоконные элементы управления см. https://learn.microsoft.com/ru-ru/windows/win32/winauto/wi..., чтобы не было утечки памяти. Эти безоконные элементы управления не имеют окно, т.е. HWND, поэтому они меньше памяти занимали. Эти безоконные элементы были на установочном CD Visual Basic 6.0 Professional Edition, эти компоненты нужно было устанавливать отдельно с CD.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#17 
uscheswoi_82 коренной житель17.06.24 15:53
NEW 17.06.24 15:53 
в ответ uscheswoi_82 17.06.24 15:08

Вот так мы вставляли Windows Less ActiveX в VB6 проект:


Была отдельная даже от MSDN документация по этим элементам:


В проекте они выглядели вот так:



А импортировали приложение написанное на Visual Basic 6.0 в Visual Studio 2008 VB.NET 3.5:



Там были специальные .NET компоненты для совместимости с Visual Basic 6.0:



Но из-за кастомных ActiveX многое что не хотелось импортироваться в VS2008 VB.NET 3.5. Поэтому мы поставили крест на приложение, которое мы разработали на Visual Basic 6.0, и перешли на другую сферу, и на PHP.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#18 
uscheswoi_82 коренной житель17.06.24 16:04
NEW 17.06.24 16:04 
в ответ uscheswoi_82 17.06.24 15:53

Когда я учился в колледже, учителя мне вбивали в голову что Open Source это хорошо, а продукты MS это зло, хотя в колледже мне дали бесплатно Microsoft Visual Studio 2005 Professional Edition, Microsoft Access 2003, Microsoft Windows 2008 Server. Это даётся только для учебных заведений, и только для студентов. Когда мы ездили на компьютерную выставку в г. Мюнхен, учитель сказал если мы подайдём к стойки MS, нам поставят плохую оценку. Когда мы были на выставке, мы просто прогуляли занятия. Там каждый год в колледже ездиют на компьютерную выставку, она каждый год осенью.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#19 
AlexNek патриот17.06.24 19:35
AlexNek
NEW 17.06.24 19:35 
в ответ uscheswoi_82 17.06.24 00:51
3-4 айтишника против меня

Сложно сказать, что кто то действительно против кого-то. Всего лишь личные ощущения.

Но вот эту тему я больше не открываю, засрали вы ее абсолютно пустыми картинками и кодом. Выискивать между ними какой-то полезный текст - большая трата времени, сорри. Может, когда 2я страница появится, можно будет глянуть.

Но пож. не надо больше ненужных картинок и портянок кода. Если сильно хочется, сделайте зип вложение и туда всё запихайте.

#20 
7495 старожил18.06.24 10:51
7495
NEW 18.06.24 10:51 
в ответ uscheswoi_82 17.06.24 15:08
Дома спорил, сeстра приезжала на выходных к нам в гости, вот и спорили.


Нашел с кем спорить! Она же женщина, в программировании ничего не понимает, пусть в мужицкие дела не лезет! зло

Во первых не слушай её, учить фокспро фортран бейсик и другие мёртвые технологии - только время тратить впустую!


Надо учить прибыльные языки программирования, как Solidity например, там сейчас миллиарды денег зарабатываются!


Поищи в гугеле "Solidity code example" или на ютубе смотри разные примерчики, как легко пишется для нормальных людей,

а кто слабоумием болеет тот конечно ничего не поймёт, программирование не для слабоумных, те пусть корзинки плетут! зло


Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#21 
7495 старожил18.06.24 11:02
7495
NEW 18.06.24 11:02 
в ответ 7495 18.06.24 10:51

+


Передай ей, пусть идёт в театр продавать входные билеты в кассе! А нам в Германии FoxPro и Clipper не нужон! Разозлили йетц ехт! зло




Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#22 
daduda старожил23.06.24 17:56
daduda
NEW 23.06.24 17:56 
в ответ 7495 18.06.24 11:02

У меня такое ощущение, что я попал в 90е.


Вы еще сюда фото перфокарт с программами на фортране запостите

#23 
7495 старожил24.06.24 02:01
7495
NEW 24.06.24 02:01 
в ответ daduda 23.06.24 17:56
У меня такое ощущение, что я попал в 90е.

Вы еще сюда фото перфокарт с программами на фортране запостите


Паскаль, Дельфи и ФоксПро это дурное влияние от его сестры, она может и перфокартам его научить!


А бумажные перфокарты, это в прошлом веке, сейчас модно на металле выдалбливать сидфразы!


Я же уже 100500 раз показывал как это делать: https://foren.germany.ru/showmessage.pl?Number=39693596&Bo...


или так:


Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#24 
daduda старожил24.06.24 19:30
daduda
NEW 24.06.24 19:30 
в ответ 7495 24.06.24 02:01, Последний раз изменено 24.06.24 19:30 (daduda)

Сейчас модно делать кластер из логарифмических линеек.

#25 
uscheswoi_82 коренной житель29.06.24 05:08
NEW 29.06.24 05:08 
в ответ daduda 23.06.24 17:56

Всё давольно таки просто. У меня пожизненный больничный. Вы ведь когда получаете больничный вы же не показываете и не рассказываете всем когда болеете что вы можете работать правильно? Если болеете, то седите дома и лечитесь, иначе вас погонят на работу. Вот я точно так-же делаю. Просто я несамостоятельный, плохо сплю ночью, один жить я не в состояние, не могу из-за своей замкнутости общаться с людьми в живую, допустим когда в доме инвалидов не прижился мне подняли инвалидность до 70%, а до дома инвалидов было всего 50% инвалидности. Просто в доме инвалидов там в 19 вечера уже ругаются что я иду на кухню покушать, т.к. инвалид хочет в это время спать, потом нельзя закрывать туалет, т.к. другой инвалид в это время хочет мыться или стираться, нужно сидушку туалета всё время опускать, потом один инвалид начал мне рассказывать что в кране воды яд, мне там не понравилось, и я оттуда ушёл. Поэтому езжую в разные места с медбратом, таким образом я учусь преодолевать свой страх и социофобию. Но я как родился замкнутым, так и останусь на всю жизнь замкнутым. Просто был неудачный опыт работы в двух фирмах, там меня моббировали, в одной практике из-за зависти, первая практика была когда я учил немецкий, вторая практика меня моя мaма на свою фирму взяла, т.к. моя мaма получила большой кабинет, служебный смартфон, служебный автомобиль, служебный ноутбук, начальник оплачивал нам трёхкомнатную квартиру, дал свою мебель, я получал за это 800 евро в месяц, шеф отдал свой кабинет мне, хотя там должен был сидеть мой руководитель проекта. И ещё мы когда хотели тогда приезжали на работу, допустим 2 раза в неделю мы закупались в магазине в 9 утра. Моему руководителю проекта дал шеф какой-то предбанник, поэтому я его нервировал сильно. Иногда он звонил мне на телефон и ругал меня, у меня в комнате (в которой раньше сидел шеф) стоял телефон. Ну ещё дела шли не так как хотелось, сами ничего не знали, и хотели чтобы я быстро сделал. А в это время у меня была депрессия, я получил академический отпуск. А во время первой практике мне тоже не здоровилось, потому-что я проходил курс противовирусной терапии от гепатита B и C. Там столько побочек от рибавирина короче волосы выподают, худеешь на 10 кг., кожа сухая, кожный зуд, запоры, а по выходным я колол интерферон в живот, от него повышалась температура до +38°C, болели кости, тошнило, от боли в костях принимал ибупрофен, а чтобы не тошнило принимал капли MCP.


Там две бабули думают что я якобы "симулянт", хотя мне не нужно быть симулянтом, т.к. я болею на самом деле, у меня есть реальные диагнозы, у меня всё официально, инвалидность дал сам джобцентр, там у них был свой независимый гутахтер, как тут я писал см. https://foren.germany.ru/health/f/41066107.html?Cat=&page=... ставит инвалидность гудахтер, и я от государства не получаю ни цента т.к. мои pодители зарабатывают достаточно денег чтобы меня прокормить, ну и я с моими pодителями могу уехать в другую любую страну в любое время без всяких проблем. Вот зачем мне быть симулянтом? Какой смысл? Какая выгода от этого? Тут в Германии если не хочешь не работай, деньги платят только тем, кому не хватает на жизнь, а при 6 тыщ евро в месяц мне хватает на жизнь. Мы раньше и за бетроера платили, у меня их было аж два, он стоял 50€ в месяц.


Просто бабульки которые считают что я симулянт пишут это потому, потому-что я якобы по их мнению "русофоб", хотя одна из них постоянно бьёт кулаком себя в грудь что Германия это её родина, но при этом обвиняет меня якобы в какой-то "русофобии". Но меня ещё ни разу в этом форуме не баняли за русофобию. Если меня ни разу не баняли за русофобию, значит я с точки зрения мoдерации не русофоб, баняли только за склоки, злоупотреблением картинками, флуд и политику. Помню одна женщина тут мне реально угрожала на меня подать в суд, за якобы мою "русофобию", но что-то дальше угроз подать на меня в суд, дальше не пошло. В другом форуме тоже меня пытались жаловаться что я якобы русофоб, но им модератор написал, что если не нравится моим опонентам что я пишу, чтобы меня просто игнорировали, но они не слушались, на меня бесились, стучали модераторам, ну ещё мне репутацию скручивали. Просто я не знал что они скрытой рекламой занимаются, потом всяко хвалился, а им это не нравилось, бесились когда написал что я 3 раза привился от короны, у них там цены на еду выросли до небес, из-за короны.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#26 
Срыв покровов патриот29.06.24 14:10
NEW 29.06.24 14:10 
в ответ uscheswoi_82 29.06.24 05:08

Больной на голову?

#27 
uscheswoi_82 коренной житель29.06.24 18:04
NEW 29.06.24 18:04 
в ответ Срыв покровов 29.06.24 14:10

Это не важно. Главное что смысла мне нет быть симулянтом, это только глупые люди думают что я симулянт. Умный человек бы понял, что мне симулянтом смысла нет быть, т.к. я уже тыщу раз писал, что у нас достаточно денег. Смысл симулянтом было быть только в Казахстане, когда был призывного возраста, чтобы не пойти в армию служить. Я работать не могу, потому-что на фирмах которых я был сами не знают чего они хотя, и меня начальство пыталось использовать в плохих целях. Допустим чтобы выгнать с работы невыгоняемых. Бывает так, взяли на работу человека, он хорошо показал себя на пробецайт, а потом стал плохо работать, а его уволить с работы не могут, тогда для этого используют какого-нибудь коллегу, типа допустим меня. Я не люблю когда на меня орут, на меня мой руководитель проекта орал, т.к. я делал всё медленно. Я взял академический отпуск в колледже, т.к. была депрессия, а на фирме на меня руководитель проекта орал. Кстати у моего руководителя проекта не было столько привелегий как у моей мaтeри, у него не было служебной машины, на фирму он добирался на общественном транспорте, айфон моему руководителю проекта не дали, сидел в каком-то предбанники, ему шеф не оплачивал квартиру, ему шеф не дал свою мебель, вот он всех собак на меня спускал. Мaма меня взяла к себе на работу, потому-что ей всё время козалось что ей денег не дадали.


Когда я под стрессом или меня ругают я звоню девушкам и рассказываю им всякую чушь собачую, а там 3€/минуту звонок, у меня раньше все деньги уходили на таких девушек, рядом был магазин с домом, и я бегал туда сотку заряжать, а потом звонил девушкам, но это было во время практики, т.к. тогда интернета дома не было, т.к. мoя мaмa экономит денюжки, т.е. считает каждую копеечку. То что я ззработал на практике, я все деньги которые заработал потратил куда попало. Я программирую лишь чтобы получить бесплатную порцию допамина и серотонина, т.к. у меня нет каких-либо других зависимостей, т.е. я не пью, не курю, и дурь не уоптребляю, и ещё я не пью кофе, было время до преддиабета II я пил кока-колу часто. В Казахстане многие употребляли что-то, а мои pодители боялись чтобы я не стал таким-же, поэтому меня pодители всяко баловали. В Казахстане тех соседей, которых строго воспитывали, они выросли какими-то ассоциальными, страшными матершинниками, и ещё у них вредные привычки. Кстати мне рoдствeнницы дарят деньги каждый год на НГ и ДР, т.к. их мужья (т.е. мои родcтвeнники) пьют водку, и курят. Дарят чтобы деньги на воздух не улетали, а я на их денюжки покупаю что-нибудь себе интересное.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#28 
uscheswoi_82 коренной житель29.06.24 18:18
NEW 29.06.24 18:18 
в ответ uscheswoi_82 29.06.24 18:04

Многие pодственники стали инвалидами, и сидят дома тоже как я. Т.к. там где они работали стрессовая, тяжёлая и грязная работа. У одного pодстенника появился рaк лёгких и рaк поджелудочной, т.к. у него был плохой рабочий график, во время паузы он много курил, пил кофе из пластиковых стаканчиков, а они вроде бы консерогенные, по выходным выпивал водку, его cын нaркоман, дом был куплен в кредит. А у другого pодственника ноги болят, т.к. очень тяжёлые вещи носил, ему сделали операцию на ноги, и стало после операции ещё только хуже.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#29 
uscheswoi_82 коренной житель29.06.24 18:33
NEW 29.06.24 18:33 
в ответ uscheswoi_82 29.06.24 18:18

Прикол с программированием заключается в том, что когда кодешь то получаешь большую порцию бесплатного допамина и серотонина:


Поэтому для меня всё равно на чём программировать, но на старье лучше т.к. не будет притензий. Ведь суть - главное получить от этого большое удовольствие, заправить свой мозг допамином и серотонином. А вредные привычки это бяка, плюс деньги улетают просто так на ветер.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#30 
Бесконечный цикл постоялец04.07.24 21:24
NEW 04.07.24 21:24 
в ответ 7495 18.06.24 10:51
Надо учить прибыльные языки программирования, как Solidity например, там сейчас миллиарды денег зарабатываются!

Сейчас актуально играть в Hamster Kombat и давить хомяка. Там уже 220 миллионов игроков. Кучу бабла можно накосить.


#31 
daduda старожил05.07.24 01:16
daduda
NEW 05.07.24 01:16 
в ответ Срыв покровов 29.06.24 14:10

Германия это один сплошной дом с жёлтыми стенами

#32 
Срыв покровов патриот05.07.24 07:47
NEW 05.07.24 07:47 
в ответ daduda 05.07.24 01:16

кому как

#33 
daduda старожил07.07.24 09:14
daduda
NEW 07.07.24 09:14 
в ответ uscheswoi_82 29.06.24 18:33

бедный ChatGPT. Он скоро станет наркоманом.

#34 
7495 старожил08.07.24 00:53
7495
NEW 08.07.24 00:53 
в ответ Бесконечный цикл 04.07.24 21:24
Сейчас актуально играть в Hamster Kombat и давить хомяка. Там уже 220 миллионов игроков. Кучу бабла можно накосить.


Несколько недель назад меня спросила девушка про игру в хомяка, а я первый раз об этом слышу, почитал, поиграл.


Там в принципе простая игрушка, ценностей как таковых не создаётся, дети пальцем тыкают - циферки меняются. улыб


Разработчики обещают всем чегото после ico, но уже натыкали миллиарды и если и перепадёт после листинга, то это будут копейки..


Польза будет в том, что часть пользователей потом будут развиваться дальше, скачают метамаск и начнут двигать реальные деньги.



Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#35 
7495 старожил08.07.24 01:07
7495
NEW 08.07.24 01:07 
в ответ daduda 05.07.24 01:16
Германия это один сплошной дом с жёлтыми стенами


Давай колись, куда пять миллиардов перевёл?



Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#36 
daduda старожил11.08.24 12:16
daduda
NEW 11.08.24 12:16 
в ответ 7495 08.07.24 01:07
Давай колись, куда пять миллиардов перевёл?

Все вложил в XRP

#37 
7495 коренной житель16.08.24 23:27
7495
NEW 16.08.24 23:27 
в ответ daduda 11.08.24 12:16
Все вложил в XRP


Нельзя складывать все яйца в одну корзину! Диверсификация не прихоть, а необходимость! Деверсифизируй портфель! зло


Я сейчас подумываю выпустить несколько новых валют, 100% будут пользоваться успехом, сами названия говорят за себя:


Альгериум (1&2)


Хартцфириум


Грузиниум


Азюлиум


Бюргергельдиум




Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#38 
MrSanders коренной житель17.08.24 11:05
NEW 17.08.24 11:05 
в ответ 7495 16.08.24 23:27

Даже с фантазией у криптомахинаторов туго. Никакого разнообразия. Дарю: грузидор.

#39 
7495 коренной житель17.08.24 12:57
7495
NEW 17.08.24 12:57 
в ответ MrSanders 17.08.24 11:05
Даже с фантазией у криптомахинаторов туго. Никакого разнообразия. Дарю: грузидор.


У людей должны быть тёплые ассоциации с уже устоявшимися криптовалютами, как Ефириум, это праотец и праматерь всех криптовалют!


Это как в реальной экономике: Амазон - Озон, Ютуб - Рутуб, Етериум - Азюлиум, Хартцфириум и Бюргергельдиум, вкладывай сбережения!




Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#40 
Бесконечный цикл постоялец17.08.24 22:37
NEW 17.08.24 22:37 
в ответ 7495 17.08.24 12:57
У людей должны быть тёплые ассоциации с уже устоявшимися криптовалютами, как Ефириум, это праотец и праматерь всех криптовалют!

Ну тогда уж надо людЯм объяснить, что мир произошел из блокчейна. А то нынешние теории что мир произошел из Большого взрыва, или или Божественная теория за 7 дней как-то устарели уже.


Кстати, за "праотец и праматерь" можно под статью загреметь. Политкорректно будет "прародитель 1 и прародитель 2". Хотя в случае Ефериума есть только один персонаж в виде Виталика, тут уже не ясно как его величать.


#41 
7495 коренной житель17.08.24 22:45
7495
NEW 17.08.24 22:45 
в ответ Бесконечный цикл 17.08.24 22:37
мир произошел из блокчейна


Да всё было действительно так, не матрица, а блокчейн, мы все живём в нём, вот и вы сами прозрели,

Поздравляю, а теперь, слушать со звуком 42 минуты перед сном: https://7495.strana.de/crypto.html




Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#42 
MrSanders коренной житель17.08.24 22:47
NEW 17.08.24 22:47 
в ответ Бесконечный цикл 17.08.24 22:37

Виталик это Эру Илуватар криптоцыган. Извинити :)

#43 
1 2 3 все