Monday, January 6, 2025

Сравнение поколений X и Миллениалов

Сравнение поколений X и миллениалов

Характеристика Поколение X Поколение миллениалов (Y)
Годы рождения 1965–1983 1984–1999
Ключевые события эпохи Период перестройки, экономическая нестабильность, переход к рыночной экономике Распад СССР, развитие интернета, глобализация
Отношение к технологиям Осваивали технологии в зрелом возрасте; предпочитают традиционные формы общения Первое цифровое поколение; активно используют интернет и социальные сети
Ценности Самостоятельность, прагматизм, стремление к стабильности и карьерному росту Самореализация, баланс между работой и личной жизнью, социальная ответственность
Образование и карьера Стремление к получению высшего образования; лояльность к работодателю; ценят стабильность Ориентированы на постоянное обучение и развитие; склонны менять работу в поисках лучших возможностей
Финансовые привычки Склонны к сбережениям и инвестициям в недвижимость; осторожны в расходах Ориентированы на опыт и впечатления; готовы тратить на путешествия и технологии
Семейные ценности Ценят семейные традиции; стремятся обеспечить семью материально Откладывают создание семьи; ориентированы на личностное развитие и карьеру
Отношение к работе Готовы работать сверхурочно для достижения целей; ценят иерархию и четкие инструкции Предпочитают гибкий график и творческие задачи; ищут смысл в работе и возможности для самореализации
Социальная активность Менее вовлечены в общественные движения; скептически относятся к политике Активно участвуют в социальных и экологических инициативах; поддерживают разнообразие и инклюзивность
Мотивация Финансовая стабильность, карьерный рост, признание Возможности для развития, смысл работы, вклад в общество

Tuesday, August 20, 2024

PHP: Why fgetcsv() and not file()

When handling CSV files in PHP, you have multiple options for reading the data, with fgetcsv() and the file() function being two common approaches. Each method has its advantages and disadvantages, depending on what you need to do with the CSV data. Let’s compare these two methods:

1. Using fgetcsv()

Advantages:

  • Built for CSVs: fgetcsv() is specifically designed to read CSV files. It automatically handles CSV formatting, including encapsulated fields with commas, quotes, and escaped characters.
  • Memory Efficiency: It reads one line at a time, which is memory efficient, especially useful for large files.
  • Convenient Parsing: Automatically parses the line into an array based on the delimiter, which is very handy for direct data manipulation.

Disadvantages:

  • Limited to CSV Format: Only useful for CSV files and cannot be easily used for other file formats.
  • Less Flexible: You’re mostly stuck with the structure of how fgetcsv() parses each line (though you can specify custom delimiters, escape characters, and enclosures).

Example Usage of fgetcsv():

$handle = fopen('path/to/file.csv', 'r');
while (($data = fgetcsv($handle, 1000, ",")) !== false) {
    print_r($data);
}
fclose($handle);

2. Using file()

Advantages:

  • Simplicity: file() reads the entire file into an array, where each line is an element of the array, simplifying the process of file reading.
  • Flexible Post-Processing: Useful if you need to process each line as a whole string or perform non-CSV specific parsing.
  • Convenient for Smaller Files: Quickly reads smaller files into memory, making it easier to manipulate content that isn’t strictly structured as CSV.

Disadvantages:

  • Memory Usage: Since it reads the entire file into memory at once, it can be inefficient or impractical for very large files.
  • Manual Parsing Required: Does not handle CSV complexity such as commas in fields, quoted fields, etc., without additional parsing logic.

Example Usage of file():

$lines = file('path/to/file.csv');
foreach ($lines as $line) {
    $data = str_getcsv($line); // Convert line to array similar to fgetcsv
    print_r($data);
}

Decision Factors:

  • File Size: Use fgetcsv() for large files to keep memory usage down. Use file() for smaller files where quick access to all lines is more convenient.
  • Complexity of CSV: If the CSV data includes lots of special cases (like fields containing commas, quotes, or newlines), fgetcsv() handles these natively. If your data is simpler or requires custom processing, file() might be sufficient with manual parsing.
  • Processing Needs: If you need to process or analyze each line of text beyond simple CSV parsing (like complex checks or multiple parsing passes), file() can be advantageous.

Friday, April 12, 2024

12 апреля 2024, день космонавтики и больших надежд

Для тех кто читает этот пост не 12 апреля 2024 контекст: в результате известных событий 7 октября 2023г, после 6 месяцев войны, Израиль решил разбомбить посольство Ирана на территории Сирии. В результате уже неделю вся страна сидит на измене и ждёт когда Иран долбанёт в ответ.
Израильская пресса, а точнее портал УайНет (бывший Ядийот Ахаронот), пытаясь успокоить население, запостил картинку следующего содержания: Небо закрыто! Четыре уровня защиты!
437865525_10161078265945053_4135937047973701258_n.jpgНебо закрыто! Четыре уровня защиты![/img]

В связи с этим, рассказ…

Как то раз наш “полк” ПВО решил провести учения. Собрали всех болезных, отобрали у них “освобождения от физкультуры”, погрузили в грузовики и отправили туда куда хуситы не стреляли, то есть туда где написано “конец света” и оттуда еще 15км налево.

По прибытии развернули они там свои замечательные американские вооружения, которые уже тогда пора было отправить во Вьетнам на выставку “С помощью этого и СССР мы победили США 25 лет назад”. Натянули тент, достали пиво и сели ждать когда радар подаст звуковой сигнал об обнаружении учебной цели.

Сигнал не заставил себя ждать! Только исходил он не от радарной установки, а от телефона на координционном пункте, за 70км от пусковой установки. Уже тогда у нас знали что такое работа на удалёнке. Формат сигнала был такой: звонок-звонок-рядовой Рабинович слухаэ!

Как вы наверное догадались (знаю что нет) звонил командующий ПВО и спрашивал, удалось ли нам засечь цель и провести “пуск”, потому что пилот учебной цели уже пообедал, допил компот и хочет ехать домой к маме.

В общем пилот нарезал еще 3 круга и к домой не поехал, потому как Шабат и автобусов больше нет.

Каменты писать здесь