LINUX.ORG.RU

Избранные сообщения qulinxao3

Выпуск Tcl/Tk 9.0

Новости — Разработка
Выпуск Tcl/Tk 9.0
Группа Разработка

Привет, ЛОР!

Спустя 27 лет после версии 8.0 наконец вышла новая версия некогда популярного языка программирования Tcl и развиваемой вместе с ним библиотеки для создания пользовательских интерфейсов Tk.

Tcl является высокоуровневым скриптовым языком программирования с динамической типизацией. Отличительная особенность языка – все данные, включая код самой программы, могут быть представлены как строки, что создаёт обширные возможности для метапрограммирования и создания расширений.

В новом выпуске содержатся несовместимые изменения с версиями 8.x, поэтому было решено увеличить ведущий номер версии:

  • При вычислении имён теперь используется только текущее пространство имён (namespace), а не глобальное;
  • Проблемы кодирования в функциях ввода-вывода теперь по умолчанию выбрасывают ошибку;
  • Тильда (~) в путях к файлам больше не указывает на домашнюю директорию пользователя;
  • Переменная tcl_precision больше не влияет на форматирование чисел.

Также среди изменений:

  • Добавлена поддержка переменных размером больше 2 гигабайт;
  • Улучшена работа Unicode;
  • Поддержка доступа к содержимому ZIP-файлов как к файловой системе;
  • Мультиплексинг IO теперь поддерживает epoll (в Linux) и kqueue (в BSD). Поддержка select сохранена.

В Tk 9.0 среди прочего были добавлены поддержка доступа к инструментам ОС, таким как трей, уведомления и печать документов, поддержка формата SVG, полный доступ к информации о графических файлах (метаданные и т.д.), поддержка жестов экрана и тачскрина.

>>> Подробности

 , ,

hateyoufeel
()

Приложения и утилиты, которые стоит попробовать

Статьи — Администрирование
Приложения и утилиты, которые стоит попробовать

Многие пользователи Linux с большим стажем даже не подозревают о существовании этих замечательных инструментов, которые способны облегчить им жизнь…

( читать дальше... )

 , ,

rtxtxtrx
()

jdupes 1.28.0

Новости — Open Source
jdupes 1.28.0
Группа Open Source

27 июля состоялся выпуск 1.28.0 консольной утилиты jdupes, написанной на языке C и распространяемой по лицензии MIT.
Утилита предназначена для поиска дублирующихся файлов, с возможностью их удаления, блочной дедупликации или замены на ссылки.

В новой версии:

  • перенесены исправления безопасности из разрабатываемой версии 2;
  • исправлено падение при создании новой базы хешей;
  • увеличена производительность вычисления длины имени;
  • улучшены меры предосторожности при интерактивном запросе об удалении;
  • во избежание потери базы данных хешей, она не перезаписываетя при нехватке места на диске.

>>> Подробности

 , , , ,

dataman
()

Какой быдлокод лучше для замены шаблона в словаре?

Форум — Development

С точки зрения разработки, как лучше заменить шаблон:

  1. пройти рекурсивной функцией по словарю и заменить значение

  2. Завернуть в JSON, заменить, развернуть обратно в словарь?

 

steemandlinux
()

Сайты на древних технологиях - Во имя бобра!

Форум — Web-development

LOR славится своими специалистами по самым шизанутым вопросам. И вот у меня их есть.

Короче, современный веб - это звездец. Сайты жрут дохера ресурсов, бесконечные прокрутки, оптимизированный под мобилу размер текста итд.

У всего этого много разных причин, но одна из них - а потому что современные веб-технологии это позволяют.

Что же касается негативных эффектов у этой ситуации, то есть один, о котором задумываются редко. Чем сложнее веб - тем сложнее создать и поддерживать под него веб-браузер. Соответственно, рынок браузеров поделён между буквально несколькими крупными игроками: Хром Идж Фокс Сафари, а остальные браузеры в рамках статпогрешности. И это не есть хорошо.

Всякие там энтузиасты могли бы создать и нахайпить этакую инициативу, типа а давайте делать сайты как встарь. И смысл у этой инициативы был бы как раз не только в том, что блжат сайты не должны жрать как раньше космический шаттл, но и чтобы в интернете была сеть сайтов на скажем так важные темы (наука, искусство, рэперы, в общем темы могут быть любыми на самом деле), которые бы просто работали - одинаково и стабильно - в любом графическом броузере. В любом - то есть такой броузер может быть доморощенным, а ля нетсурф.

Короче идея такая чтобы сайты были на примитивных технологиях. Но не ради прикола или ностальгии, а так сказать с практическими целями: А) Чтобы работало на медленном коннекте (не везде в мире интернет быстрый, да и приколы со всякими замедлениями итп никто не отменял), Б) Чтобы не жрало ресурсы (опять же, не у всех в мире компы мощные, и ситуации в экономике тоже бывают разными: сегодня у тебя типа блокчейн крипта нейронки, а завтра ты в землянке с аналогом IBM PC XT из веток), В) Чтобы работало не только в крутых мейнстримовых брозуерах, но и в стареньких или доморощенных.

Я бы запилил, но у меня лапки. Может оно уже есть?

 , , ,

jsx_
()

C vs. C++

Форум — Talks

Чего такого умеют кресты, что не умеет Си?

Шаблоны - никто не пользует.

Перегрузка операторов - вообще дурь какая-то: не понятно чего ожидать от полюса или минуса.

Очевидный ответ - объекты , а так уж они нужны? Ну вот есть объект - библиотека работы с сокетами. Создал экземпляр, заполнил поля с адресом и портом, выполнил метод connect. Попользовался, освободил память. И чем оно лучше, чем если бы я запилил структуру и набор функций для работы с ней?

За скобки вынесем области применения, где преимущества объектного подхода очевидны: игры, ГУЙ и прочее. Поговорим об остальном.

Перемещено tailgunner из development

 ,

pihter
()

А ведь мы маргиналы

Форум — Talks

Я даже не о линуксоидах говорю - эти вообще %-)

Пообщался я тут с народом за пределами своего обычного круга. Свой отдельный комп (даже ноутбук) - это уже редкость, не нужны они «массам», как ранее говорили.

Все всё делают через смартфон. Ну там погоду посмотреть, в чатиках пообщаться, заплатить за что-то, перевести деньги. Не говоря уже про сфотаться или видосик снять. Даже игры многих устраивают. А больше и не надо. Ну если учатся может говноноут подешевле и нужен и то, если это не ИТ-специальность или чего-то научно-техническое, уже и не особо-то.

Комп на работе только видят и то, времена «уверенных пользователей» такое ощущение, что прошли. В массе своей комп на работе - это фактически терминал в виде браузера и/или одной-двух специализированных программ, в которых они натасканы работать и все. Большее никому не надо. Какие там нафиг таблицы в Excel или документы в Word (или аналогах) - не надо уже. Только hr-кам, секретаршам и ну может еще «аналитикам» в фирмах. Бухгалтеры за пределы 1C не выглядывают, условно говоря.

Геймеры говорите? А это тоже почти маргинальщина. Как ни странно, но многих устраивают игры на смартфоне, не знаю как объяснить этот феномен. Кого не устраивет, тем в общем-то хватает приставок. Тем более, они сейчас достаточно универсальные. Притом даже не обязательно новые.

Ну если любитель погонять танки или поиграть в Dota , Пе-Ка таки нужен, смартфоном не обойдешься, но системные требования у них достаточно слабые, чтобы хватило говноноута.

Итого, типично сейчас, что к интернету подключены уже наверное практически все, но нужен он дома, что подключать телевизор, смартфон (через wi-fi), может приставочки вместе с телевизором, а также колонки «Алиса» и тп. Ну может где-то в ящике завалялся ноутбук, купленный лет 10 назад.

Не ну, самом деле, комп-десктоп все еще нужен конечно и немалому числу людей, но я про более-менее обычный народ, далековатый от ИТ и прочего интеллектуализма.

 , ,

praseodim
()

Говорили что Перл старый, ни на что не способный язык. Проверим?(часть 2)

Форум — Development

Задание на сейчас. найти максимальное вхождение одного слова в другое в СЛОВАРЕ - смотри ниже!!!

Перл - со словарём не справился;

Для C++ . - У меня перебирает весь словарь за 17 секунд;

Для JS - Около минуты. Говорили что Перл старый, ни на что не способный язык. Проверим?(часть 2) (комментарий);

Всё. Пока ничего другого, полностью рабочего нет.

Не нужно писать решение для единичных слов. Нужно - решение для словаря.

Возьмём список русских существительных, например отсюда: https://github.com/Harrix/Russian-Nouns/releases/download/v2.0/russian_nouns_v2.0.zip

Нужно найти максимальное вхождение одного слова в другое. Полные вхождения слов - не допускаются - это вроде было ясно и понятно всем. — Это задание. Это!!!


Самое простое и наглядное решение в составлении слов это:

/(\w+) \1/

Так-как даже я уже ничего не могу найти в первой части:

Говорили что Перл старый, ни на что не способный язык. Проверим?

Предлагаю собрать сюда наиболее значимые решения из 1 части.

Итак:

В начале, мы просто делали из

шлакоблок + окунь = шлакоблокунь

На разных языках. Там есть решения. Затем все стали зачем то уменьшать количество строк и символов - победил Перл - но это вообще не интересно.

Теперь, самое главное:

Говорили что Перл старый, ни на что не способный язык. Проверим?

Здесь все согласились что Перл хороший и годный язык, но С++ всё равно быстрее. В связи с этим, было предложено:

Говорили что Перл старый, ни на что не способный язык. Проверим?


Возьмём список русских существительных, например отсюда: https://github.com/Harrix/Russian-Nouns/releases/download/v2.0/russian_nouns_v2.0.zip На основе этого списка создадим новый, со всеми новыми сочетаниями, где перекрываются не менее 3 букв. Тут даже секундомером можно замерять. У меня на моем стареньком ноуте ушло несколько минут и сгенерировалось почти 40 Мбайт из одного. У Вас есть код на Перле и C++. Можете сравнить время. Так как здесь тоже работа со строками, то у Перла есть шанс.

Но потом договорились до изменения задания:

Тут ведь уже говорили - что основное время программы - это ввод и вывод. То есть в задании нужно сделать как можно меньше выводов.

Единственное что мне приходит в голову - найти максимальное вхождение одного слова в другое. —!!! Это и стало основным и новым заданием. !!!—


Эти все задачи были решены для Перл и С++

Для Перл. 3 варианта решения. Но ни одно не берёт весь словарь:

#!/usr/bin/perl

use utf8;
use open qw(:std :utf8); 

$t = time();

$| = 1;
open D, 'russian_nouns.txt';

for(0..3000) {
  $vv=<D>;
  $vv =~ s/\s+$//;
  @d = (@d, $vv);
  }

close D;
@d2 = @d;


for $v (@d){
    ++$ii; if (++$j>99){
    $t2 = time()-$t;
    print $ii." прошло $t2 секунд. $sov1 $str\n"; $j=0;}

  for $v2 (@d2) {&resh3 ()}
  
M1:  
  }
  
sub resh3 {
  
  $lv = length $v;
  $lv2 = length $v2;

  if($lv>$lv2) {
  
    for($i=$lv2; $i>1; $i--) {
      $c = substr ($v, -$i,);
      $c2 = substr ($v2, 0, $i);
      if (($c eq $c2) and ($c ne $v2) and ($c ne $v)){
          $sov = length $c;
          if ($sov>$sov1){$sov1=$sov; $str="$c = $v-$v2"}
          }
        
  
      }

  
  }
  else {
    
        for($i=$lv; $i>1; $i--) {
      $c = substr ($v2, -$i,);
      $c2 = substr ($v, 0, $i);
      if (($c eq $c2) and ($c ne $v2) and ($c ne $v)){
          $sov = length $c;
          if ($sov>$sov1){$sov1=$sov; $str="$c = $v-$v2"}
          }
        
  
      }
    
    
    
    }
  
  
}
  

sub resh1 {  
    $r=''; $l='';
    for(split(//,$v2)){
      $r .= $_;
      if ($v =~ /$r$/) {$l=$r}  
      }
    #print "$v-$l-$v2\n" if length $l>4 and $v ne $l;
    
    if ($l and ($l ne $v2) and ($l ne $v)){
    $sov = length $l;
    if ($sov>$sov1){$sov1=$sov; $str="$l - $v-$v2"}
}
}


sub resh2 {
  
    if($v ne $v2) {
    $_ = "$v $v2";
    /([^ ]*?)([^ ]*) \2/;
    
    if ($2 and ($2 ne $v2) and ($2 ne $v)){
    $sov = length $2;
    if ($sov>$sov1){$sov1=$sov; $str="$2 - $_"}

}
  }}
  

Для C++ . У меня перебирает весь словарь за 17 секунд.:

#include <iostream>
#include <fstream>
#include <ctime>
#include <string>
#include <vector>
using namespace std;

void check_combine(string &res, size_t &len, const string &s1, const string &s2)
{
    len = 0;
    for(auto &ch: s1)
    {
        if(len == s2.size())
        {
            break;
        }
        if(ch == s2.at(len))
        {
            len += 1;
        }
        else
        {
            len = 0;
        }
    }
    if(!len)
    {
        res = "";
    }
    else
    {
        string s3  {s2};
        s3.erase(0, len);
        res = s1;
        res += s3;
    }
}

void getlines(vector<string> &lines, fstream & f)
{
    string str;
    while(getline(f, str))
    {
        lines.push_back(str);
    }
}

int main()
{
    fstream inFile;
    inFile.open ("russian_nouns.txt", std::fstream::in);
    vector<string> lines;
    getlines(lines, inFile);
    size_t maxLen  {0};
    size_t rusMaxLen  {0};
    string maxRes  {""};
    time_t startTime = time(nullptr);
    size_t counter  {0};
    for(auto &s1: lines)
    {
        for(auto &s2: lines)
        {
            counter += 1;
            if(s1 == s2)
            {
                continue;
            }
            if(s1.size() < maxLen)
            {
                continue;
            }
            if(s2.size() < maxLen)
            {
                continue;
            }
            size_t len  {0};
            string res;
            check_combine(res, len, s1, s2);
            if(res == s1)
            {
                continue;
            }
            if(res == s2)
            {
                continue;
            }
            if(len > maxLen)
            {
                maxLen = len;
                rusMaxLen = maxLen / 2;
                time_t delta = time(nullptr) - startTime;
                string deltaStr  {s2};
                deltaStr.erase(len);
                maxRes = deltaStr + " - " + s1 + '-' + s2;
                cout << counter << "\t прошло: " << delta << " секунд, длина: ";
                cout << rusMaxLen << ", " << maxRes << '\n';
            }
        }
    }
    cout << "\n\nРезультат: " << rusMaxLen << ", " << maxRes << '\n';
    time_t delta = time(nullptr) - startTime;
    cout << "Полное время переборов: " << delta;
    inFile.close();
    return 0;
}


Ниже - не решения текущей задачи! Не решения. Ниже - просто выборка всех решений, на всех языках с прежней темы.

Блин. Как же сложно с людьми с недостаточным образованием. Я вот уже 6 раз написал - и всё равно будут писать про Шлокоблококунь.

php:

➜ php i.php "папа + папаха"
папаха%                                                                                                                                                                   ➜ php i.php "шлакоблок + окунь"
шлакоблокунь%                                                                                                                                                              
➜ cat i.php
<?php
for ($i = 1; $i <= mb_strlen(trim(explode('+', $argv[1])[0])) && $i <= mb_strlen(trim(explode('+',$argv[1])[1])); $i++)
    if (mb_substr(trim(explode('+', $argv[1])[0]), mb_strlen(trim(explode('+',$argv[1])[0])) - $i) === mb_substr(trim(explode('+',$argv[1])[1]), 0, $i)) 
        $j = $i;
echo (isset($j)) ?  trim(explode('+',$argv[1])[0]). mb_substr(trim(explode('+',$argv[1])[1]), $j) : 'error';

Говорили что Перл старый, ни на что не способный язык. Проверим? (комментарий)

 , ,

kompospec
()

Записи докладов с C++Russia 2023

Форум — Development

В преддверии конференции C++Russia 2024 организаторы выложили на YouTube записи докладов с прошлогодней C++Russia 2023. Публикация прошлогодних докладов началась месяца три назад но по одному докладу в неделю, а пару дней назад вроде как выложили вообще все.

На данный момент на канале конференции доступны следующие видео (если к докладу прилагались слайды, то рядом приведена и ссылка на PDF-ку):

Евгений Григорчук — GPU Driven Rendering Pipeline, или Как пишется графика в современных видеоиграх, PDF

Юрий Грибов — Как правильно писать компараторы, PDF

Илья Казаков — Кастомизируем ASIO, PDF

Дмитрий Мельник — Безопасный компилятор: надежная оптимизация и улучшение защищенности кода, PDF

Эрнест Асанов — Модель асинхронности в C++: теория и практика

Антон Сысоев — Dynamic Libraries for Bare Metal, PDF

Илья Шишков — Что-то у меня тормозит: заглядываем внутрь С++ контейнеров, PDF

Тот самый стендап от Павла Филонова на C++ Russia 2023

Дмитрий Ермолов — Roren — С++ фреймворк для описания пайплайнов распределенных вычислений, PDF

Ростислав Михеев — Эффективное использование GPU на примере разработки игр, PDF

Олег Сенин — Sizecoding: взгляд изнутри

Максим Кита — Техники оптимизации производительности, PDF

Александр Еналдиев — C++ Experiments: The Battle Continues: Cpp2 vs Carbon, PDF

Иван Смирнов — YsonStruct: дешевая сериализация иерархических JSON-структур, PDF

Владимир Ситников — B-tree индексы в базах данных на примере SQLite и PostgreSQL

Артем Хорошев — Ускоряем синтез: от TensorRT до CUDA C++, PDF

Аяз Салихов — Имплементируем класс tuple в 100 строк кода, PDF

Ashot Vardanian — Advanced Linux Kernel Bypass Techniques in 2023

Егор Суворов — Санитайзеры и стандарт не спасут, PDF

Александр Ганюхин — Машина состояний: непридуманная история

Rainer Grimm — Concurrency Patterns, PDF

Денис Легезо — Злые фреймворки и генерируемый ими позиционно-независимый код, PDF

Елена Веселовская — Как перейти от ученичества к работе, PDF

Андрей Аксенов — Про алгоритмы в поисковых движках

Техническое интервью: Архитектурная секция

Сергей Ларин, Владислав Столяров — Как сделать фронтенд компилятора в домашних условиях, PDF

Антон Потапов, Антон Малахов — Учим Кукушку Летать, или ConcurrentHashMap with Seqlocks, PDF

Александр Фокин — Designing Robust APIs: C++ Code that’s Safe, Extensible, Efficient & Easy to Use, PDF

Дмитрий Стародубцев, Ольга Кузьмичева — Практическое применение dev-контейнеров, PDF

Степан Дятковский — Почти полноценный RTTI с контролируемым overhead, PDF

Иван Афанасьев — Loop unrolling в деталях, PDF

Александр Ляпунов — Максимально быстрый и максимально удобный С++ msgpack-кодек

Марсель Галимуллин — Back to Basics: Lock-free, PDF

Алексей Степанов, Евгений Зуев — Исходный код: скрытое знание и как его показать?, PDF

Павел Новиков — Про flat_map, PDF

Антон Ласточкин — Мониторим FSM во встраиваемом ПО, PDF

Александр Бычук — Производство ПО глазами разработчика и менеджера, PDF

Константин Владимиров — Семантические процессы в C++

Александр Кирсанов — nocc — распределенный компилятор для гигантских проектов на C++, PDF

Евгений Ерохин — Back Deep to Basics: Наследование и виртуальность в C++ (Часть 1), PDF

Евгений Опарин — Опыт использования Bazel

Семен Буденков — С Conan за кроссплатформенностью, PDF

Сергей Талантов — С++ и безопасность: правда ли все так плохо?, PDF

Александр Боргардт — Колоночное хранилище в памяти: void* и шаблоны

Петр Советов — Автоматизация программирования в СССР. Трансляторы (60–70-е годы), PDF

Александр Корнилов — Идея по улучшению многопоточного кода, PDF

Александр Кухаренко — Демосцена: в погоне за wow-фактором, PDF

Виктор Шампаров — Компилятор LCC и оптимизация слияния кода, PDF

Евгений Зощук — Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году, PDF

Михаил Лукин — Практика программирования тензорных ядер

Вадим Винник — Элементы функционального программирования в языке C++, PDF

Антон Соснин — С++ в мемах, PDF

Антон Полухин — C++ трюки из userver

Нужны ли профсоюзы в IT?

Тренды от HR

Интервью с Максимом Бабенко

PS. Практически все доклады перечислены в том порядке, в котором их мне показывает YouTube, никакой сортировки по какому-либо принципу здесь нет.

PPS. Сам ничего из этого не смотрел, никаких рекомендаций на тему «интересно/не интересно» дать не могу.

 

eao197
()

Какую нишу займет/занял язык программирования Rust?

Форум — Web-development

Добрый день! Я не имею опыта в программировании, за исключением мелких программ на С++. Я гуглил за языки, и наткнулся на Раст, и его советуют учить новичкам, но я не до конца понимаю его нишу? Где его применяют? Где он может в будущем закрепить себя? Стоит ли его учить для новичков, или лучше начать с питона ?

 , ,

LordCopalov
()

Ревью кода или психология мидла

Форум — Development

Всем привет!

В общем такое дело, есть мидл в условном подчинение т.е. формально мы на одном уровне, но взяли его в помощь моему проекту.

И любит он делать херовый код (плохой нейминг, непонятные и ненужные абстракции, каша в логике). Если пнуть, то обычно исправляет. Но я уже заманался его пинать, одни и те же ошибки в каждом МР. Уволить?! Как говорит начальство — не можем, бюджет не позволяет платить больше кому-то, а найти нового человека сейчас очень сложно.

Стараюсь дать ему возможность подумать и самому сделать так, чтобы было красиво, но получается все равно какая-то каша которую по 3-4 часа ревьювишь и пишешь куски кода для того чтобы он порефакторил правильно.

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

Что обычно делают в таких ситуациях? Писать что все фигня, давай по новой и закрывать мерж? Или есть какие-то техники? Подскажите или тыкните что почитать?

 ,

AntonyRF
()

Накидайте книг для продвинутого Си под онтопик

Форум — Development

Сто лет назад прочитал K&R и всегда хватало, а если я хочу углУбить?

// друг спрашивает :)

UPD: собрал из темы списочек, особо не редактируя (экстримов и модернов поболее одного, но пусть будет) – думаю, заглянувшим в будущем будет полезно:

  • modern c by jens gustedt
  • Thomas Mailund - Pointers in C Programming (2021)
  • Gustedt - Modern C (2020)
  • Kalin - Modern C Up and Running (2022)
  • King - C Programming. A Modern Approach, 2nd ed. (2008)
  • Хэзфилд «Искусство программировани на C»
  • «Язык C в XXI веке»
  • Экстремальный Си
  • extreme c programming
  • «UNIX. Профессиональное программирование» Уильям Ричард Стивенс, Стивен А. Раго
  • C Interfaces and Implementations: Techniques for Creating Reusable Software
  • Peter van der Linden, Expert C Programming: Deep C Secrets https://progforperf.github.io/Expert_C_Programming.pdf
  • Чан Теренс «Системное программирование на С++ для Unix»

 ,

pihter
()

Вышел задачник к учебнику А. В. Столярова

Новости — Документация
Группа Документация

На сайте А.В.Столярова объявлено о выходе сборника задач и этюдов в поддержку трёхтомного учебника «Программирование: введение в профессию».

Задачник объёмом 156 страниц содержит 12 глав по числу частей учебника. Как обычно, электронная версия в формате PDF выложена на сайте в открытом доступе.

>>> Подробности

 , ,

anonymous
()

Linux From Scratch 12.0

Новости — Linux General
Группа Linux General

Вышла новая версия дистрибутива-книги по сборке Linux с нуля.

( читать дальше... )

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

>>> Подробности

 ,

WildWest
()

Школьник в IT

Форум — General

Кончаю 9-й класс, планирую уйти в тех/клдж в программирование потом в универ наверное, а дальше работать в IT. (Предыстория)Как-то играл в майнкрафт с модами и друзьями, после захотелось поиметь свой сервер, сначала пробовал по ютубу просто строить сервер по типу локального для себя и друзей, а потом захотелось и для других игроков, но вскоре понял что все не настолько просто как думал я. Через время узнал про программирование, но увы тогда был мал для этого и все это казалось сложным и интерес со временем утих, потом время уже стала интересна тема вирусов, антивирусов, безопасности, хакерства, ПО, и такого рода. Пока смотрел что такое программирование, видел люди использовали Linux и говорили он нужен для программирования, посмотрел что это, в видосах чаще всего упоминались Ubuntu и Fedora как самое оно для новичков, сам как я понял что между ними сильно большой разницы нету и тут уже выбирать по удобству, но все же хотелось бы с кем-то посоветоваться, опыта в них нету вить пользовался только виндой и у своих не у кого спросить про это, поэтому пришел на форум. Некоторые посты староваты(или то я плохо искал) а уже 2024 и все не стоит на месте, отчасти поэтому я и решил сделать пост. Следуя истории, сначала думал учить java, поговорил со знакомым тот посоветовал Kotlin, мол та же java, но новее и круче. Позже мне показалось что эти 2 языка более к мобилкам подходят, но мне это направление не очень по душе, а учить язык ради игры не очень рационально. После думал про ПО, а там как я понял лидируют C/C++, после прочтения некоторых тем еще более запутался что лучше и к чему стремиться, позже оказалось что есть еще фреймворки, синтаксисы, строение, и много всего что мне еще не известно. С ютуба учиться пока не стал, прочитал мол там многому не научишься(Хотя азы там вроде и есть); Книги, документации, не дошел еще, а также их много и не пойми что хорошее, а что не очень. Посоветуйте что делать, что-кого-где учить и как. Слышал в школах проходят python, pascal и подобное, но у нас в программе только недавно появился пайтон, да толком нас ему не учили. Текст скорее всего не лучший, но я старался донести свою мысль. Пост первый, многого не знаю про форум, не судите строго.

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

 , ,

sk1nice
()

Насколько следует строго придерживаться буквы ТЗ?

Форум — Talks

Какие обычно практики в (больших?) конторах?

Я тут периодически срусь с Питонистами/PHPшниками/etc что им таки следует проверять код возврата от БД об успешности внесения изменений.

На что они мне возражают «этого нет в ТЗ».

Obezyan, как у вас с этим? Вы прописываете в ТЗ очевидные вещи? Или «раз этого нет в ТЗ, значит в этом есть какой-то глубокий смысл и не нашего ума дело»?

 ,

Toxo2
()

Итоги неудачных интервью с работодателем

Форум — Talks

Последнее время в в связи с поиском работы (python) хожу на собеседования. Где-то дают тестовые задания, где-то нет, но у меня сложилось мнение что в случае если ты не подходишь компании по результатам интервью/тестового задания то было бы хорошим тоном сообщить мне хотя бы в паре слов что именно не так. Однако далеко не все это делают что ввергает меня в сомнения в чем я «не такой» и мне не сделать выводы в чем надо подкорректировать свои навыки. Поделитесь опытом о своих подобных ситуациях и может среди нас даже есть те кто подбирает персонал и объяснит в чем суть

 ,

Andreezy
()

Посоветуйте (полноценный) редактор PDF

Форум — Desktop

Существует ли в природе полноценный (высокоуровневый) редактор PDF под онтопик? Под полноценным понимается возможность редактирования текста, добавления/удаления произвольных графических элементов с сохранением их векторной природы и т. п. — то есть всё то, что обычно понимается под «редактированием документа», а не «ну это же PDF, вот тебе редактор кривых Безье, дальше сам» (и не «картинка — тоже PDF, открой в гимпе и редактируй»).

Проприетарный и/или коммерческий — норм, подписка — не норм.

 ,

intelfx
()

Вышел GNU ed 1.20.1

Новости — GNU's Not Unix
Группа GNU's Not Unix

Проект GNU выпустил новую версию классического текстового редактора ed, который стал первым стандартным текстовым редактором ОС UNIX. Новая версия получила номер 1.20.1.

( читать дальше... )

>>> Скачать

 , , ,

saahriktu
()

Попарные сочетания элементов всех списков

Форум — Development

Дано: список из списков некоторых элементов. Требуется сгенерировать список пар из всех элементов разных списков между собой. Т.е., например, из списков (1,2,3) и (4,5) получится (1,4), (2,4), (3,4), (1,5),(2,5),(3,5)

Списков может быть много, количество элементов в них произвольным от 1 до бесконечности условно говоря.

Как бы поизящнее и побыстродейственнее сделать, а то алгоритм с 4-мя (четырьмя!!!) вложенными циклами как-то не очень приятно выглядит.

Базовый код примерно следующий:

list1 = ['1','2','3']
list2 = ['10','11','12','13']
list3 = ['20','21']
lista = [list1,list2,list3]
nl = len(lista)
cross=[]

for k in range(nl): # k - номер списка в lista, 0 ... len-1
    klist = lista[k]      
    for m in range(k+1,nl): #m - перебираем все последующие списки
        mlist = lista[m]
        for i in range(len(klist)): # Составляем пары элементов двух списков
            for j in range(len(mlist)):
                d2 = [klist[i],mlist[j]]
                cross.append(d2)

print(cross)

Результат:

[['1', '10'], ['1', '11'], ['1', '12'], ['1', '13'], ['2', '10'], ['2', '11'], ['2', '12'], ['2', '13'], ['3', '10'], ['3', '11'], ['3', '12'], ['3', '13'], ['1', '20'], ['1', '21'], ['2', '20'], ['2', '21'], ['3', '20'], ['3', '21'], ['10', '20'], ['10', '21'], ['11', '20'], ['11', '21'], ['12', '20'], ['12', '21'], ['13', '20'], ['13', '21']]

 ,

praseodim
()