Source Code
197 subscribers
30 photos
3 files
80 links
Download Telegram
#linux
Разработчик 7-Zip выпустил официальный билд для Linux спустя 22 года после выхода Windows-версии

Первая
версия 7-Zip увидела свет 18 июля 1999 года, за относительно короткое время архиватор смог стать очень популярным. Относительный недостаток 7-Zip — наличие лишь версии для Windows (официальный клиент). Но сейчас, спустя всего 22 года, появился и вариант для Linux, официальный билд от разработчиков.

Версия 21.01 доступна как для Linux, так и для Windows. На сайте разработчика есть варианты для разных систем, включая 32-bit, 64-bit, x86 и ARM.

Linux-версия получила не меньше функций и возможностей, чем Windows-релиз. Единственное: пока — с 7-Zip можно работать лишь в командной строке, графического интерфейса нет. Возможно, его выпустят еще через пару десятков лет, кто знает.
#OOP
Overriding vs Overloading

Overriding implements Runtime Polymorphism whereas Overloading implements Compile time polymorphism.

The method Overriding occurs between superclass and subclass. Overloading occurs between the methods in the same class.

Overriding methods have the same signature i.e. same name and method arguments. Overloaded method names are the same but the parameters are different.

With Overloading, the method to call is determined at the compile-time. With overriding, the method call is determined at the runtime based on the object type.

If overriding breaks, it can cause serious issues in our program because the effect will be visible at runtime. Whereas if overloading breaks, the compile-time error will come and it’s easy to fix.
Результатом выполнения программы будет
Anonymous Quiz
0%
a
22%
a b c
27%
Compile error
51%
abc
#Spring #java #backEnd
Релиз Spring Native Beta

Недавно
команда, занимающаяся портированием Spring для GraalVM, выпустила первый крупный релиз - Spring Native Beta. Вместе с создателями GraalVM они смогли пофиксить множество багов как в самом компиляторе так и спринге. Теперь у проекта появилась официальная поддержка, свой цикл релизов и его можно щупать.

Согласно документации, ключевые различия между обычным JVM и нативной реализацией заключаются в следующем:

Статический анализ всего приложения выполняется во время сборки.

Неиспользуемые компоненты удаляются во время сборки.

Рефлексия, ресурсы и динамические прокси могут быть настроены только с помощью дополнительных конфигураций.

На время сборки фиксируются все компоненты в Classpath.

Нет ленивой загрузки класса: при загрузке все, что поставляется в исполняемых файлах, будет загружено в память. Например, чтобы вызов Class.forName ("myClass") отработал верно, нужно иметь myClass в файле конфигурации. Если в файле конфигурации не будет найден класс, который запрашивается для динамической загрузки класса, будет выбрано исключение ClassNotFoundException

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

https://www.youtube.com/watch?v=96n_YpGx-JU
What is the return type of lambda expression?
Anonymous Quiz
4%
String
20%
Object
22%
void
54%
Function
#space #science
SpaceX объявил первый орбитальный запуск Starship летом 2021 года. Teslarati

SpaceX
считает, что у нее есть шесть месяцев запаса времени, чтобы пройти предварительные испытания сверхтяжелых ускорителей (возможно, включая один или несколько прыжков), оценить модернизированную конструкцию Starship (начиная с SN15), завершить орбитальный стартовый комплекс и доставить до конца года — два десятка двигателей Raptor, способных вывести корабль на орбиту. Хотя пока неясно, также возможно, что эта цель потребует от SpaceX квалификации и поставки первых летных двигателей Raptor Vacuum — еще одна серьезная проблема среди многих.

Заявленная цель означает, что существует вполне реальная вероятность того, что Starship достигнет орбиты до конца 2021 года. Цели, которую генеральный директор SpaceX Илон Маск и главный операционный директор/президент Гвинн Шотвелл повторяли в течение последних нескольких месяцев.


https://twitter.com/NASASpaceflight/status/1371480144699871237?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1371480144699871237%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fwww.teslarati.com%2Fspacex-starship-orbital-launch-debut-summer-2021%2F
#java
Основные методы класса String

concat()
: объединяет строки

valueOf(): преобразует объект в строковый вид

join(): соединяет строки с учетом разделителя

сompare(): сравнивает две строки

charAt(): возвращает символ строки по индексу

getChars(): возвращает группу символов

equals(): сравнивает строки с учетом регистра

equalsIgnoreCase(): сравнивает строки без учета регистра

indexOf(): находит индекс первого вхождения подстроки в строку

lastIndexOf(): находит индекс последнего вхождения подстроки в строку

replace(): заменяет в строке одну подстроку на другую

trim(): удаляет начальные и конечные пробелы

substring(): возвращает подстроку, начиная с определенного индекса до конца или до определенного индекса

toLowerCase(): переводит все символы строки в нижний регистр
#Algorithms #AI
Новый алгоритм способен распознать дипфейк по отражению в глазах

Так
что там с отражениями? Глаза человека находятся ближе между собой, чем источник света. Когда мы берем реальную фотографию, то ее отражения в нашем правом и левом глазах одинаковые. Они могут иметь отличия, но незначительные. Так вот, в алгоритмах для подмены изображений отсутствуют «физические ограничения, описывающие поведение отражений». Как итог, создаваемые сетью лица имеют отличные между собой отражения и блики.

Для правильной работы алгоритма необходимо соблюдение следующих условий:
1) Оба глаза смотрят в камеру. Линия, соединяющая глаза, параллельна камере.
2) Глаза отдалены от источника света или отражения.
3) Источники света или отражатели видимы обоими глазами.

Но есть и минус. Алгоритм отлично работает с портретным изображением и ярким светом. То есть практически в идеальных условиях. Помимо этого, алгоритм сравнивает не форму изображение в целом, а разбивает фотографии на пиксели.
#hardware
Китайцы воскрешают оптические носители, разработав лазерный диск емкостью 700 ТБ

Ученые
при поддержке коллег из Национального университета Сингапура, смогли добиться размещения на диске обычного размера объема данных в 700 ТБ. Диаметр диска составляет 120 мм — это текущий стандарт для практически любых оптических дисков, включая CD, DVD и Blu-ray.

На данный момент самым емким является четырехслойный Blu-ray диск, на котором помещается 128 ГБ данных. Стандартный же однослойный Blu-ray диск позволяет записать на нем не более 25 ГБ информации. Получается, что один новый диск заменяет сразу 28 тысяч однослойных Blu-ray дисков.

Разработчики назвали свою технологию «технологией субдифракционной оптической записи». Одно из ее достоинств, кроме возможности записывать огромные массивы информации, — использование недорогих лазеров непрерывного действия. Особых препятствий в массовом выпуске приводов, поддерживающих новую технологию, нет.

Главный секрет здесь — в материале, на который производится запись. Это не металлическая тонкая фольга, а композитный материал. Всех секретов ученые не раскрывают, поскольку планируют коммерциализировать технологию. Но известно, что это нанокомпозит на основе специальных частиц с добавлением лантаноида с «хлопьями» оксида графена.
#Spring
What is Inversion of Control?

In software engineering, inversion of control (IoC) is a programming principle. IoC inverts the flow of control as compared to traditional control flow. In IoC, custom-written portions of a computer program receive the flow of control from a generic framework. A software architecture with this design inverts control as compared to traditional procedural programming: in traditional programming, the custom code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks, but with inversion of control, it is the framework that calls into the custom, or task-specific, code.
Что такое куча в БД?

Куча(Heap) — это таблица без кластерного индекса. Данные в куче хранятся без какого-либо логического порядка. Между страницами нет никакой связи. Хотя для кучи можно создать некластерный индекс, который будет содержать физический адрес исходных данных. В некластерном индексе для каждой записи содержится номер файла, номер страницы и номер слота внутри этой страницы.
#backend #web
Реляционные и нереляционные базы данных

🔸Реляционные базы данных
используют язык структурированных запросов (SQL) для того, чтобы обрабатывать данные и управлять ими.

С одной стороны, это довольно удобно: SQL - один из наиболее разносторонних и общеупотребимых вариантов, так что это безопасный выбор. Также этот язык подходит для сложных запросов.

С другой стороны, с этим языком идут определенные ограничения. В SQL нужно использовать заданные наперед схемы и определять структуру данных перед началом работы с нею. К тому же, все данные должны иметь одну и ту же структуру. Так как перемена в структуре может обернуться сложностями и разрушить всю систему.

🔸Нереляционные базы данных, напротив, обладают гибкими схемами для неструктурированных данных. Они могут храниться по-разному: в колонках, документах, графах или в виде хранилища «ключ-значение». Эта гибкость позволяет:

▫️Создавать документы, не определяя их структуру заранее;
▫️Каждый документ может обладать собственной уникальной структурой;
▫️Синтаксис может различаться в разных базах данных;
▫️В процессе работы можно добавлять новые поля.
#science

Новая металинза толщиной в микрон

Инженеры
из Массачусетского технологического института разработали адаптивные «металинзы», которые смогут обеспечить более эффективную фокусировку объективов камер, микроскопов, телескопов и прочих систем визуализации без использования громоздких приводных механизмов.

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

Таким образом, новая активная металинза может настраивать фокус без необходимости использования громоздких механических элементов.
#java

Что такое Lombok, и зачем он нужен?

Project
Lombok(библиотека) помогает с некоторыми неудобствами Java в таких вещах, как генерация геттеров и сеттеров с аннотациями и даже простая генерация JavaBean с @Data. Это может действительно помочь, особенно в 50 различных объектах событий, где у вас есть до 7 различных полей, которые нужно построить и скрыть с помощью геттеров. Благодаря Lombok можно описывать неявно толмуды кода.

https://habr.com/ru/post/345520/
#definition

Закон Мура - (англ. Moore's law) — эмпирическое наблюдение, изначально сделанное Гордоном Муром, согласно которому (в современной формулировке) количество транзисторов, размещаемых на кристалле интегральной схемы, удваивается каждые 24 месяца. Часто цитируемый интервал в 18 месяцев связан с прогнозом Давида Хауса из Intel, по мнению которого, производительность процессоров должна удваиваться каждые 18 месяцев из-за сочетания роста количества транзисторов и увеличения тактовых частот процессоров.

Рост числа транзисторов на кристалле микропроцессора показан на графике снизу. Точки соответствуют наблюдаемым данным, а прямая — периоду удвоения в 24 месяца.
#web

Flutter вот-вот завоюет Web

Если
вы слышали о Flutter, то, скорее всего, слышали о нем в контексте разработки мобильных приложений. Так какое отношение он имеет к веб-сайтам? С обычной HTML-страницей вы работаете как с документом. Во Flutter «страница» (или то, с чем взаимодействует пользователь) фактически рисуется на канве (canvas) HTML. Flutter фактически контролирует каждый пиксель, который рисуется на экране, и не использует HTML, JavaScript или CSS для определения его внешнего вида или логики. (Технически говоря, родной код Dart переносится на JavaScript через dart2js, но на самом деле никакая бизнес-логика не пишется на JavaScript.)

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

*Что делать, если вы хотите, чтобы пользователь прокручивал страницу слева направо, а не сверху вниз? Это уже не так просто сделать на обычной веб-странице. Во Flutter, если вы хотите сделать определенную часть контента горизонтально прокручиваемым, а не вертикально прокручиваемым, это так же просто, как сделать виджеты в SingleChildScrollView.

*Flutter использует Dart в качестве языка. Весь внешний вид приложения и бизнес-логика написаны на нем. Dart поставляется со статической проверкой типов данных, и скоро появится null safety (прим. переводчика: уже появился), поэтому каждая строка кода в вашем приложении, будь то визуальное описание вашего приложения, придание ему стиля или управление бизнес-логикой вашего приложения, полностью типобезопасна.

*Поскольку Flutter визуализирует каждый пиксель на экране, это дает дизайнерам и разработчикам большой контроль над тем, что именно они хотят видеть в приложении.
Какие из нижеперечисленных исключений в java unchecked?
Anonymous Quiz
12%
Exception
53%
ClassCastException
23%
FileNotFoundException
12%
IOException