From 923f986e67413ac548cc98d6d59fa01de9681035 Mon Sep 17 00:00:00 2001 From: Devlin Junker Date: Sat, 5 Aug 2023 19:16:39 -0700 Subject: upmerged from master Signed-off-by: Devlin Junker --- tests/Unit/Db/ItemMapperTest.php | 12 +- tests/Unit/Fetcher/FeedFetcherTest.php | 21 +- tests/Unit/Search/FeedSearchProviderTest.php | 2 +- tests/Unit/Search/FolderSearchProviderTest.php | 2 +- tests/Unit/Search/ItemSearchProviderTest.php | 147 ++++++ tests/Unit/Service/StatusServiceTest.php | 12 +- tests/api/items.bats | 2 +- tests/command/feeds.bats | 3 +- tests/test_helper/bats-assert | 2 +- tests/test_helper/feeds/Nextcloud.rss | 22 +- tests/test_helper/feeds/heise.xml | 602 ++++++++++++------------- tests/test_helper/feeds/no_guid_feed.xml | 22 +- tests/test_helper/php-feed-generator | 1 + tests/updater/helpers/settings.bash | 8 + tests/updater/update.bats | 276 ++++++++++++ 15 files changed, 789 insertions(+), 345 deletions(-) create mode 100644 tests/Unit/Search/ItemSearchProviderTest.php create mode 160000 tests/test_helper/php-feed-generator create mode 100644 tests/updater/helpers/settings.bash create mode 100644 tests/updater/update.bats (limited to 'tests') diff --git a/tests/Unit/Db/ItemMapperTest.php b/tests/Unit/Db/ItemMapperTest.php index 3a4a026d6..397f3be2c 100644 --- a/tests/Unit/Db/ItemMapperTest.php +++ b/tests/Unit/Db/ItemMapperTest.php @@ -419,7 +419,7 @@ class ItemMapperTest extends MapperTestUtility $this->builder->expects($this->once()) ->method('select') - ->with('items.*') + ->with('items.id') ->will($this->returnSelf()); $this->builder->expects($this->once()) @@ -528,7 +528,7 @@ class ItemMapperTest extends MapperTestUtility ->with('SQL QUERY') ->willReturn($result); - $this->builder->expects($this->once()) + $this->builder->expects($this->exactly(2)) ->method('createParameter') ->will($this->returnArgument(0)); @@ -537,9 +537,9 @@ class ItemMapperTest extends MapperTestUtility ->with('news_items') ->will($this->returnSelf()); - $this->builder->expects($this->once()) + $this->builder->expects($this->exactly(2)) ->method('set') - ->with('unread', 'unread') + ->withConsecutive(['unread', 'unread'], ['last_modified', 'last_modified']) ->will($this->returnSelf()); $this->builder->expects($this->exactly(1)) @@ -547,9 +547,9 @@ class ItemMapperTest extends MapperTestUtility ->withConsecutive(['id IN (:idList)']) ->will($this->returnSelf()); - $this->builder->expects($this->exactly(2)) + $this->builder->expects($this->exactly(3)) ->method('setParameter') - ->withConsecutive(['idList', [1, 2]], ['unread', false]) + ->withConsecutive(['idList', [1, 2]], ['unread', false], ['last_modified']) ->will($this->returnSelf()); $this->builder->expects($this->exactly(1)) diff --git a/tests/Unit/Fetcher/FeedFetcherTest.php b/tests/Unit/Fetcher/FeedFetcherTest.php index af8066171..1814a8271 100644 --- a/tests/Unit/Fetcher/FeedFetcherTest.php +++ b/tests/Unit/Fetcher/FeedFetcherTest.php @@ -326,7 +326,7 @@ class FeedFetcherTest extends TestCase $item = $this->createItem(); $feed = $this->createFeed(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - $result = $this->fetcher->fetch($this->url, false, null, null); + $result = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertEquals([$feed, [$item]], $result); } @@ -344,7 +344,8 @@ class FeedFetcherTest extends TestCase $this->url, false, 'account@email.com', - 'F9sEU*Rt%:KFK8HMHT&' + 'F9sEU*Rt%:KFK8HMHT&', + $this->modified->format(DateTime::RSS) ); $this->assertEquals([$feed, [$item]], $result); @@ -359,7 +360,7 @@ class FeedFetcherTest extends TestCase $item = $this->createItem('audio/ogg'); $feed = $this->createFeed(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - $result = $this->fetcher->fetch($this->url, false, null, null); + $result = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertEquals([$feed, [$item]], $result); } @@ -373,7 +374,7 @@ class FeedFetcherTest extends TestCase $item = $this->createItem('video/ogg'); $feed = $this->createFeed(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - $result = $this->fetcher->fetch($this->url, false, null, null); + $result = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertEquals([$feed, [$item]], $result); } @@ -388,7 +389,7 @@ class FeedFetcherTest extends TestCase $feed = $this->createFeed('de-DE'); $item = $this->createItem(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - $result = $this->fetcher->fetch($this->url, false, null, null); + $result = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertEquals([$feed, [$item]], $result); } @@ -402,7 +403,7 @@ class FeedFetcherTest extends TestCase $this->createFeed('he-IL'); $this->createItem(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - list($_, $items) = $this->fetcher->fetch($this->url, false, null, null); + list($_, $items) = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertTrue($items[0]->getRtl()); } @@ -428,7 +429,7 @@ class FeedFetcherTest extends TestCase $this->mockIterator($this->feed_mock, [$this->item_mock]); - list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null); + list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertSame($items[0]->getPubDate(), 1522180229); } @@ -454,7 +455,7 @@ class FeedFetcherTest extends TestCase $this->mockIterator($this->feed_mock, [$this->item_mock]); - list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null); + list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null, null); $this->assertSame($items[0]->getPubDate(), 1519761029); } @@ -467,7 +468,7 @@ class FeedFetcherTest extends TestCase $this->createItem(); $feed = $this->createFeed(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - $result = $this->fetcher->fetch($this->url, false, null, null); + $result = $this->fetcher->fetch($this->url, false, null, null. null, null); //Explicitly assert GUID value $this->assertEquals(2, count($result)); $this->assertEquals(1, count($result[1])); @@ -485,7 +486,7 @@ class FeedFetcherTest extends TestCase $this->createItem(); $feed = $this->createFeed(); $this->mockIterator($this->feed_mock, [$this->item_mock]); - $result = $this->fetcher->fetch($this->url, false, null, null); + $result = $this->fetcher->fetch($this->url, false, null, null, null); //Explicitly assert GUID value $this->assertEquals(2, count($result)); $this->assertEquals(1, count($result[1])); diff --git a/tests/Unit/Search/FeedSearchProviderTest.php b/tests/Unit/Search/FeedSearchProviderTest.php index 97ec1f984..e1463a7a7 100644 --- a/tests/Unit/Search/FeedSearchProviderTest.php +++ b/tests/Unit/Search/FeedSearchProviderTest.php @@ -110,7 +110,7 @@ class FeedSearchProviderTest extends TestCase $this->generator->expects($this->once()) ->method('imagePath') - ->with('core', 'filetypes/text.svg') + ->with('core', 'rss.svg') ->willReturn('folderpath.svg'); $this->generator->expects($this->once()) diff --git a/tests/Unit/Search/FolderSearchProviderTest.php b/tests/Unit/Search/FolderSearchProviderTest.php index cf4ffd969..e06bf45f7 100644 --- a/tests/Unit/Search/FolderSearchProviderTest.php +++ b/tests/Unit/Search/FolderSearchProviderTest.php @@ -77,7 +77,7 @@ class FolderSearchProviderTest extends TestCase public function testGetOrderInternal() { - $this->assertSame(-1, $this->class->getOrder('news.page.index', [])); + $this->assertSame(0, $this->class->getOrder('news.page.index', [])); } public function testSearch() diff --git a/tests/Unit/Search/ItemSearchProviderTest.php b/tests/Unit/Search/ItemSearchProviderTest.php new file mode 100644 index 000000000..062d52a77 --- /dev/null +++ b/tests/Unit/Search/ItemSearchProviderTest.php @@ -0,0 +1,147 @@ +l10n = $this->getMockBuilder(IL10N::class) + ->disableOriginalConstructor() + ->getMock(); + $this->generator = $this->getMockBuilder(IURLGenerator::class) + ->disableOriginalConstructor() + ->getMock(); + $this->itemService = $this->getMockBuilder(ItemServiceV2::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->class = new ItemSearchProvider( + $this->l10n, + $this->generator, + $this->itemService + ); + } + + public function testGetId() + { + $this->assertSame('news_item', $this->class->getId()); + } + + public function testGetName() + { + $this->l10n->expects($this->once()) + ->method('t') + ->with('News articles') + ->willReturnArgument(0); + + $this->assertSame('News articles', $this->class->getName()); + } + + public function testGetOrderExternal() + { + $this->assertSame(65, $this->class->getOrder('contacts.Page.index', [])); + } + + public function testGetOrderInternal() + { + $this->assertSame(1, $this->class->getOrder('news.page.index', [])); + } + + public function testSearch() + { + $user = $this->getMockBuilder(IUser::class) + ->getMock(); + $query = $this->getMockBuilder(ISearchQuery::class) + ->getMock(); + + $query->expects($this->once()) + ->method('getCursor') + ->willReturn(null); + + $query->expects($this->once()) + ->method('getLimit') + ->willReturn(10); + + $user->expects($this->once()) + ->method('getUID') + ->willReturn('user'); + + $query->expects($this->once()) + ->method('getTerm') + ->willReturn('some text'); + + + $items = [ + Item::fromRow(['id' => 1,'title' => 'some_tErm', 'body' => 'some text', 'feedId' => 1]), + Item::fromRow(['id' => 2,'title' => 'nothing', 'body' => 'some text', 'feedId' => 1]) + ]; + + $this->itemService->expects($this->once()) + ->method('findAllWithFilters') + ->with( + 'user', + ListType::ALL_ITEMS, + 10, + 0, + false, + ['some text']) + ->willReturn($items); + + + $this->l10n->expects($this->once()) + ->method('t') + ->with('News') + ->willReturnArgument(0); + + $this->generator->expects($this->once()) + ->method('imagePath') + ->with('core', 'filetypes/text.svg') + ->willReturn('folderpath.svg'); + + $this->generator->expects($this->exactly(2)) + ->method('linkToRoute') + ->with('news.page.index') + ->willReturn('/news'); + + + $result = $this->class->search($user, $query)->jsonSerialize(); + $entry = $result['entries'][0]->jsonSerialize(); + $this->assertSame('News', $result['name']); + $this->assertSame('some_tErm', $entry['title']); + $this->assertSame('folderpath.svg', $entry['thumbnailUrl']); + $this->assertSame('some text', $entry['subline']); + $this->assertSame('/news#/items/feeds/1', $entry['resourceUrl']); + } +} diff --git a/tests/Unit/Service/StatusServiceTest.php b/tests/Unit/Service/StatusServiceTest.php index dfe3dfd55..fdfe41af5 100644 --- a/tests/Unit/Service/StatusServiceTest.php +++ b/tests/Unit/Service/StatusServiceTest.php @@ -16,6 +16,7 @@ namespace OCA\News\Tests\Unit\Service; use OCA\News\Service\StatusService; use OCP\IConfig; use OCP\IDBConnection; +use OCP\BackgroundJob\IJobList; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -37,6 +38,12 @@ class StatusServiceTest extends TestCase */ private $service; + /** + * @var IJobList + */ + private $jobList; + + public function setUp(): void { $this->settings = $this->getMockBuilder(IConfig::class) @@ -45,7 +52,10 @@ class StatusServiceTest extends TestCase $this->connection = $this->getMockBuilder(IDBConnection::class) ->disableOriginalConstructor() ->getMock(); - $this->service = new StatusService($this->settings, $this->connection); + $this->jobList = $this->getMockBuilder(IJobList::class) + ->disableOriginalConstructor() + ->getMock(); + $this->service = new StatusService($this->settings, $this->connection, $this->jobList); } public function testGetStatus() diff --git a/tests/api/items.bats b/tests/api/items.bats index d6896785f..4bb38bf75 100644 --- a/tests/api/items.bats +++ b/tests/api/items.bats @@ -67,7 +67,7 @@ teardown() { SYNC_TIME=$(date +%s) # mark all items of feed as read, returns nothing (other client marks items as read) - STATUS_CODE=$(http --ignore-stdin -hdo /tmp/body -a ${user}:${APP_PASSWORD} PUT ${BASE_URLv1}/feeds/$FEEDID/read newestItemId="$max" 2>&1| grep HTTP/) + STATUS_CODE=$(http --ignore-stdin -hdo /tmp/body -a ${user}:${APP_PASSWORD} PUT ${BASE_URLv1}/items/read newestItemId="$max" 2>&1| grep HTTP/) # client 2 checks for updates since last sync UPDATED_ITEMS=($(http --ignore-stdin -b -a ${user}:${APP_PASSWORD} GET ${BASE_URLv1}/items/updated id=$FEEDID lastModified=$SYNC_TIME | grep -Po '"id":\K([0-9]+)' | tr '\n' ' ')) diff --git a/tests/command/feeds.bats b/tests/command/feeds.bats index 7598ac345..683207d98 100644 --- a/tests/command/feeds.bats +++ b/tests/command/feeds.bats @@ -24,6 +24,7 @@ teardown() { @test "[$TESTSUITE] Add feed without GUIDs" { run ./occ news:feed:add "$user" "$NO_GUID_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" + echo "Attention! Are the dates of the feed older than 'one year ago'? If so this is not a bug, adjust the dates. #2201" assert_failure assert_output "Malformed feed: item has no GUID" @@ -47,7 +48,7 @@ teardown() { assert_success assert_output --partial '"faviconLink": "https:\/\/nextcloud.com\/wp-content\/uploads\/2022\/03\/favicon.png",' - assert_output --partial '"faviconLink": "https:\/\/www.heise.de\/favicon.ico?v=JykvN0w9Ye",' + assert_output --partial '"faviconLink": "https:\/\/www.heise.de\/favicon.ico?v=' } @test "[$TESTSUITE] List all items" { diff --git a/tests/test_helper/bats-assert b/tests/test_helper/bats-assert index ffe84ea5d..78fa631d1 160000 --- a/tests/test_helper/bats-assert +++ b/tests/test_helper/bats-assert @@ -1 +1 @@ -Subproject commit ffe84ea5dd43b568851549b3e241db150c12929c +Subproject commit 78fa631d1370562d2cd4a1390989e706158e7bf0 diff --git a/tests/test_helper/feeds/Nextcloud.rss b/tests/test_helper/feeds/Nextcloud.rss index 0e031ef83..a46def8bd 100644 --- a/tests/test_helper/feeds/Nextcloud.rss +++ b/tests/test_helper/feeds/Nextcloud.rss @@ -12,7 +12,7 @@ https://nextcloud.com/ - Tue, 16 Aug 2022 10:17:13 +0000 + Tue, 16 Aug 2099 10:17:13 +0000 en-US hourly @@ -32,7 +32,7 @@ https://nextcloud.com/blog/how-to-get-started-with-nextcloud-repeat/ - Tue, 16 Aug 2022 09:44:01 +0000 + Tue, 16 Aug 2099 09:44:01 +0000 @@ -116,7 +116,7 @@ https://nextcloud.com/blog/openproject-and-nextcloud-integrate-project-management-and-file-management/ - Mon, 15 Aug 2022 12:44:53 +0000 + Mon, 15 Aug 2099 12:44:53 +0000 @@ -160,7 +160,7 @@ https://nextcloud.com/blog/5-more-things-to-keep-your-data-safe/ - Wed, 10 Aug 2022 09:06:12 +0000 + Wed, 10 Aug 2099 09:06:12 +0000 @@ -360,7 +360,7 @@ https://nextcloud.com/blog/digital-sovereignty-security-collabora-online-nextcloud/ - Thu, 04 Aug 2022 13:07:21 +0000 + Thu, 04 Aug 2099 13:07:21 +0000 @@ -444,7 +444,7 @@ https://nextcloud.com/blog/nextcloud-keeps-growth-up-with-75-more-revenue-and-10x-userbase/ - Thu, 04 Aug 2022 09:40:29 +0000 + Thu, 04 Aug 2099 09:40:29 +0000 @@ -506,7 +506,7 @@ https://nextcloud.com/blog/baden-wurttemberg-procurement-chamber-decides-us-cloud-services-are-not-gdpr-compliant/ - Mon, 01 Aug 2022 09:00:00 +0000 + Mon, 01 Aug 2099 09:00:00 +0000 @@ -553,7 +553,7 @@ https://nextcloud.com/blog/interview-shadow-and-a-world-where-5-companies-own-all-data/ - Mon, 01 Aug 2022 07:43:56 +0000 + Mon, 01 Aug 2099 07:43:56 +0000 @@ -579,7 +579,7 @@ https://nextcloud.com/blog/all-app-developers-put-your-hands-up-best-nextcloud-app-contest-2/ - Thu, 28 Jul 2022 09:00:00 +0000 + Thu, 28 Jul 2099 09:00:00 +0000 @@ -715,7 +715,7 @@ https://nextcloud.com/blog/5-unique-security-features-by-nextcloud/ - Wed, 27 Jul 2022 14:36:15 +0000 + Wed, 27 Jul 2099 14:36:15 +0000 @@ -879,7 +879,7 @@ https://nextcloud.com/blog/nextcloud-in-the-wall-street-journal-microsoft-and-cookies/#comments - Wed, 27 Jul 2022 09:12:45 +0000 + Wed, 27 Jul 2099 09:12:45 +0000 diff --git a/tests/test_helper/feeds/heise.xml b/tests/test_helper/feeds/heise.xml index f0ff9e2f7..fb9f90787 100644 --- a/tests/test_helper/feeds/heise.xml +++ b/tests/test_helper/feeds/heise.xml @@ -1,7 +1,7 @@ heise online NewsNachrichten nicht nur aus der Welt der Computer - 2022-08-19T15:36:00+02:00 + 2099-08-19T15:36:00+02:00 https://www.heise.de/rss/heise-atom.xml heise onlinehttps://www.heise.de @@ -14,8 +14,8 @@ RISC-V-Prozessor aus China: LeapFive NB2 verspricht Raspi-Rechenleistung http://heise.de/-7237368 - 2022-08-19T15:36:00+02:00 - 2022-08-19T15:36:00+02:00 + 2099-08-19T15:36:00+02:00 + 2099-08-19T15:36:00+02:00 Die chinesische Firma Yuefang Technology stellt einen 12-Nanometer-Chip mit vier RISC-V-Kernen, GPU, KI-Beschleuniger und DDR4-Controller vor.

Die chinesische Firma Yuefang Technology stellt einen 12-Nanometer-Chip mit vier RISC-V-Kernen, GPU, KI-Beschleuniger und DDR4-Controller vor.

]]>
@@ -24,8 +24,8 @@ Besetzung des IGF: UN ringt um Stand zwischen den Fronten der Netzpolitik http://heise.de/-7237105 - 2022-08-19T15:30:00+02:00 - 2022-08-19T15:30:00+02:00 + 2099-08-19T15:30:00+02:00 + 2099-08-19T15:30:00+02:00 Während die USA und China eigene Initiativen zur Internet Governance starten, will António Guterres die Vereinten Nationen als multilaterale Plattform stärken.

Während die USA und China eigene Initiativen zur Internet Governance starten, will António Guterres die Vereinten Nationen als multilaterale Plattform stärken.

]]>
@@ -34,8 +34,8 @@ Sicherheitsupdates: Angreifer könnten PCs mit IBM-Software attackieren http://heise.de/-7236808 - 2022-08-19T14:46:00+02:00 - 2022-08-19T14:46:00+02:00 + 2099-08-19T14:46:00+02:00 + 2099-08-19T14:46:00+02:00 Mehrere Schwachstellen machen unter anderem IBM InfoSphere Identity Insight verwundbar.

Mehrere Schwachstellen machen unter anderem IBM InfoSphere Identity Insight verwundbar.

]]>
@@ -44,8 +44,8 @@ Cyber-Angriff auf französische Tochter von Rüstungsunternehmen Hensoldt http://heise.de/-7237071 - 2022-08-19T14:32:00+02:00 - 2022-08-19T14:32:00+02:00 + 2099-08-19T14:32:00+02:00 + 2099-08-19T14:32:00+02:00 Das Rüstungsunternehmen Hensoldt meldet, dass die französische Tochter Nexeya Ziel eines "ernsthaften Cyberangriffs" wurde. Der Betrieb sei eingeschränkt.

Das Rüstungsunternehmen Hensoldt meldet, dass die französische Tochter Nexeya Ziel eines "ernsthaften Cyberangriffs" wurde. Der Betrieb sei eingeschränkt.

]]>
@@ -54,8 +54,8 @@ Youtube führt Wasserzeichen in heruntergeladenen Shorts ein http://heise.de/-7236987 - 2022-08-19T13:58:00+02:00 - 2022-08-19T13:58:00+02:00 + 2099-08-19T13:58:00+02:00 + 2099-08-19T13:58:00+02:00 Google markiert Shorts: Bei Youtube erstellte Kurzvideos werden mit einem Wasserzeichen gekennzeichnet, sobald man sie herunterlädt.

Google markiert Shorts: Bei Youtube erstellte Kurzvideos werden mit einem Wasserzeichen gekennzeichnet, sobald man sie herunterlädt.

]]>
@@ -64,8 +64,8 @@ Artemis-1: NASA plant Website zur Nachverfolgung der Mondmission in Echtzeit http://heise.de/-7236962 - 2022-08-19T13:38:00+02:00 - 2022-08-19T13:38:00+02:00 + 2099-08-19T13:38:00+02:00 + 2099-08-19T13:38:00+02:00 In wenigen Tagen will die NASA die Raumkapsel Orion zum Mond schießen. Die Mission können Interessierte dann live online verfolgen – basierend auf echten Daten.

In wenigen Tagen will die NASA die Raumkapsel Orion zum Mond schießen. Die Mission können Interessierte dann live online verfolgen – basierend auf echten Daten.

]]>
@@ -74,8 +74,8 @@ MIT Technology Review Podcast: Die Auswirkungen vom Ende des Biosprits http://heise.de/-7237047 - 2022-08-19T13:30:00+02:00 - 2022-08-19T13:30:00+02:00 + 2099-08-19T13:30:00+02:00 + 2099-08-19T13:30:00+02:00 Biokraftstoffe sind dem Ende geweiht. Die Anbauflächen sollen für Nahrung genutzt werden. Doch das bringt neue Probleme mit sich, erläutert Horst Fehrenbach.

Biokraftstoffe sind dem Ende geweiht. Die Anbauflächen sollen für Nahrung genutzt werden. Doch das bringt neue Probleme mit sich, erläutert Horst Fehrenbach.

]]>
@@ -84,8 +84,8 @@ High-End-CPU für Server: Qualcomm setzt auf Nuvia-Kerne http://heise.de/-7236952 - 2022-08-19T13:22:00+02:00 - 2022-08-19T13:22:00+02:00 + 2099-08-19T13:22:00+02:00 + 2099-08-19T13:22:00+02:00 Qualcomm soll bereits einen ARM-Prozessor für Server entworfen haben. Darin stecken CPU-Kerne der übernommenen Firma Nuvia.

Qualcomm soll bereits einen ARM-Prozessor für Server entworfen haben. Darin stecken CPU-Kerne der übernommenen Firma Nuvia.

]]>
@@ -94,8 +94,8 @@ China greift US-Chips-Act an und warnt vor den Folgen http://heise.de/-7236956 - 2022-08-19T13:18:00+02:00 - 2022-08-19T13:18:00+02:00 + 2099-08-19T13:18:00+02:00 + 2099-08-19T13:18:00+02:00 Der US-Chips-Act der USA verstößt laut China gegen die Fair-Trade-Prinzipien der WTO und sei diskriminierend. Das US-Gesetz bringe zusätzlich mehr Unsicherheit.

Der US-Chips-Act der USA verstößt laut China gegen die Fair-Trade-Prinzipien der WTO und sei diskriminierend. Das US-Gesetz bringe zusätzlich mehr Unsicherheit.

]]>
@@ -104,8 +104,8 @@ Ubuntu: Offizielle Unterstützung für RISC-V http://heise.de/-7236668 - 2022-08-19T12:58:00+02:00 - 2022-08-19T12:58:00+02:00 + 2099-08-19T12:58:00+02:00 + 2099-08-19T12:58:00+02:00 Von Ubuntu 22.04.01 stellt Canonical offiziell Abbilder mit RISC-V-Unterstützung bereit. Die Distribution ist etwa an StarFives VisionFive-Board angepasst.

Von Ubuntu 22.04.01 stellt Canonical offiziell Abbilder mit RISC-V-Unterstützung bereit. Die Distribution ist etwa an StarFives VisionFive-Board angepasst.

]]>
@@ -114,8 +114,8 @@ Update der Suchmaschine: Google will weniger Clickbait http://heise.de/-7236672 - 2022-08-19T12:07:00+02:00 - 2022-08-19T12:07:00+02:00 + 2099-08-19T12:07:00+02:00 + 2099-08-19T12:07:00+02:00 Statt SEO: Von Menschen für Menschen. Unter diesem Slogan vertreibt Google sein "hilfreiche Inhalte Update" für die Suchmaschine.

Statt SEO: Von Menschen für Menschen. Unter diesem Slogan vertreibt Google sein "hilfreiche Inhalte Update" für die Suchmaschine.

]]>
@@ -124,8 +124,8 @@ Data Science: Cloudera startet All-in-one-Datendienst in der Cloud http://heise.de/-7236825 - 2022-08-19T12:03:00+02:00 - 2022-08-19T12:03:00+02:00 + 2099-08-19T12:03:00+02:00 + 2099-08-19T12:03:00+02:00 Die Cloudera Data Platform One bündelt alle für Datenanalyse und -erkundung erforderlichen Tools als Software-as-a-Service auf Basis der Lakehouse-Architektur.

Die Cloudera Data Platform One bündelt alle für Datenanalyse und -erkundung erforderlichen Tools als Software-as-a-Service auf Basis der Lakehouse-Architektur.

]]>
@@ -134,8 +134,8 @@ Google-Kritikerin Whittaker: "KI ist eine Technik der Mächtigen" http://heise.de/-7231268 - 2022-08-19T12:00:00+02:00 - 2022-08-19T12:00:00+02:00 + 2099-08-19T12:00:00+02:00 + 2099-08-19T12:00:00+02:00 Meredith Whittaker, Mitbegründerin des AI Now Institute und eine der schärfsten Kritikerinnen von Google im Interview mit MIT Technology Review.

Meredith Whittaker, Mitbegründerin des AI Now Institute und eine der schärfsten Kritikerinnen von Google im Interview mit MIT Technology Review.

]]>
@@ -144,8 +144,8 @@ heise-Angebot: Nur für kurze Zeit: 50 Prozent Rabatt auf alle Videokurse der heise Academy http://heise.de/-7221998 - 2022-08-19T12:00:00+02:00 - 2022-08-19T12:00:00+02:00 + 2099-08-19T12:00:00+02:00 + 2099-08-19T12:00:00+02:00 Wer sich zu wichtigen IT-Themen weiterbilden möchte, kann für kurze Zeit beim Kauf der Videokurse in der heise Academy ordentlich sparen.

Wer sich zu wichtigen IT-Themen weiterbilden möchte, kann für kurze Zeit beim Kauf der Videokurse in der heise Academy ordentlich sparen.

]]>
@@ -154,8 +154,8 @@ Fachkräftemangel: Worauf es Arbeitnehmern beim Jobwechsel ankommt http://heise.de/-7236742 - 2022-08-19T11:59:00+02:00 - 2022-08-19T11:59:00+02:00 + 2099-08-19T11:59:00+02:00 + 2099-08-19T11:59:00+02:00 Die Jobvermittler von Remote haben verglichen, welche Vorteile Arbeitskräfte im internationalen Vergleich von Unternehmen erwarten. Flexibilität hat Priorität.

Die Jobvermittler von Remote haben verglichen, welche Vorteile Arbeitskräfte im internationalen Vergleich von Unternehmen erwarten. Flexibilität hat Priorität.

]]>
@@ -164,8 +164,8 @@ Softwareentwickler verbringen ein Drittel ihrer Arbeitszeit in Meetings http://heise.de/-7236712 - 2022-08-19T11:57:00+02:00 - 2022-08-19T11:57:00+02:00 + 2099-08-19T11:57:00+02:00 + 2099-08-19T11:57:00+02:00 Eine neue Studie untersucht, wie viel Zeit Entwickler in Meetings verbringen, wie sich das in ihrer Produktivität niederschlägt und wie sie gegenwirken können.

Eine neue Studie untersucht, wie viel Zeit Entwickler in Meetings verbringen, wie sich das in ihrer Produktivität niederschlägt und wie sie gegenwirken können.

]]>
@@ -174,8 +174,8 @@ Programmiersprache Julia 1.8 gibt tieferen Einblick in die Performance http://heise.de/-7235662 - 2022-08-19T11:45:00+02:00 - 2022-08-19T11:45:00+02:00 + 2099-08-19T11:45:00+02:00 + 2099-08-19T11:45:00+02:00 Neben einem neuen Profiler und einem Tool zum Auswerten der Ladezeiten erweitert das Release das Inlining. Die Anbindung an Apple Silicon gilt zudem als stabil.

Neben einem neuen Profiler und einem Tool zum Auswerten der Ladezeiten erweitert das Release das Inlining. Die Anbindung an Apple Silicon gilt zudem als stabil.

]]>
@@ -184,8 +184,8 @@ Für den Mac: Beschleunigte Varianten des Apple M2 im Anmarsch http://heise.de/-7236734 - 2022-08-19T11:35:00+02:00 - 2022-08-19T11:35:00+02:00 + 2099-08-19T11:35:00+02:00 + 2099-08-19T11:35:00+02:00 Bislang wird das in MacBook Air und Pro 13 eingebaute Apple-Silicon-SoC im 5-nm-Prozess gefertigt. "M2 Max", "M2 Pro" und "M2 Ultra" könnten in 3 nm folgen.

Bislang wird das in MacBook Air und Pro 13 eingebaute Apple-Silicon-SoC im 5-nm-Prozess gefertigt. "M2 Max", "M2 Pro" und "M2 Ultra" könnten in 3 nm folgen.

]]>
@@ -194,8 +194,8 @@ heise-Angebot: iX-Workshop: IT-Sicherheit nach ISO 27001 umsetzen http://heise.de/-7223050 - 2022-08-19T11:30:00+02:00 - 2022-08-19T11:30:00+02:00 + 2099-08-19T11:30:00+02:00 + 2099-08-19T11:30:00+02:00 Lernen Sie an zwei Vormittagen die Security-Norm ISO 27001 mit ihren Herausforderungen, aber auch Chancen für Ihr Unternehmen kennen. 10 % Rabatt bis 31.8.

Lernen Sie an zwei Vormittagen die Security-Norm ISO 27001 mit ihren Herausforderungen, aber auch Chancen für Ihr Unternehmen kennen. 10 % Rabatt bis 31.8.

]]>
@@ -204,8 +204,8 @@ FDP-Politiker Gerhart Baum für Tempolimit auf Autobahnen http://heise.de/-7236760 - 2022-08-19T11:30:00+02:00 - 2022-08-19T11:30:00+02:00 + 2099-08-19T11:30:00+02:00 + 2099-08-19T11:30:00+02:00 Ehemaliger FDP-Spitzenpolitiker Gerhart Baum kritisiert eigene Partei für ihr Handeln in der Klimakrise und spricht sich für ein Tempolimit auf Autobahnen aus.

Ehemaliger FDP-Spitzenpolitiker Gerhart Baum kritisiert eigene Partei für ihr Handeln in der Klimakrise und spricht sich für ein Tempolimit auf Autobahnen aus.

]]>
@@ -214,8 +214,8 @@ Hacking-Werkzeug USB Rubber Ducky kann noch mehr Schindluder treiben http://heise.de/-7235885 - 2022-08-19T11:07:00+02:00 - 2022-08-19T11:07:00+02:00 + 2099-08-19T11:07:00+02:00 + 2099-08-19T11:07:00+02:00 Der Hersteller von USB Rubber Ducky hat die Programmiersprache für noch mehr Funktionen ausgebaut. Neuerdings kann der Stick auch Daten speichern.

Der Hersteller von USB Rubber Ducky hat die Programmiersprache für noch mehr Funktionen ausgebaut. Neuerdings kann der Stick auch Daten speichern.

]]>
@@ -224,8 +224,8 @@ #TGIQF: Das Newsquiz zur Kalenderwoche 32 http://heise.de/-7223165 - 2022-08-19T11:00:00+02:00 - 2022-08-19T11:00:00+02:00 + 2099-08-19T11:00:00+02:00 + 2099-08-19T11:00:00+02:00 Die Woche war ereignisreich: Ob Sie alle wichtigen Neuigkeiten mitbekommen haben? Und sich Details merken konnten? Das finden Sie in unserem Newsquiz heraus.

Die Woche war ereignisreich: Ob Sie alle wichtigen Neuigkeiten mitbekommen haben? Und sich Details merken konnten? Das finden Sie in unserem Newsquiz heraus.

]]>
@@ -234,8 +234,8 @@ DHL-Sendungsverfolgung deutschlandweit gestört http://heise.de/-7236706 - 2022-08-19T10:51:00+02:00 - 2022-08-19T10:51:00+02:00 + 2099-08-19T10:51:00+02:00 + 2099-08-19T10:51:00+02:00 Die Sendungsverfolgung von DHL-Paketen ist großflächig ausgefallen. Anrufe beim Kundenservice bringen nichts. Es heißt also abwarten.

Die Sendungsverfolgung von DHL-Paketen ist großflächig ausgefallen. Anrufe beim Kundenservice bringen nichts. Es heißt also abwarten.

]]>
@@ -244,8 +244,8 @@ Der Tod von Googles IoT-Cloud – eine Chance für offene Standards http://heise.de/-7235765 - 2022-08-19T10:45:00+02:00 - 2022-08-19T10:45:00+02:00 + 2099-08-19T10:45:00+02:00 + 2099-08-19T10:45:00+02:00 Googles Abschied von IoT Core ist ein Warnschuss für alle, nicht in die Lock-in-Falle zu stapfen, meint Dominik Obermaier.

Googles Abschied von IoT Core ist ein Warnschuss für alle, nicht in die Lock-in-Falle zu stapfen, meint Dominik Obermaier.

]]>
@@ -254,8 +254,8 @@ Auch TikTok-App soll mit internem iPhone-Browser spionieren können http://heise.de/-7235891 - 2022-08-19T10:31:00+02:00 - 2022-08-19T10:31:00+02:00 + 2099-08-19T10:31:00+02:00 + 2099-08-19T10:31:00+02:00 Nachdem das Problem bereits bei Facebook und Instagram aufgedeckt worden war, hat sich ein Sicherheitsforscher nun auch den chinesischen Videodienst angesehen.

Nachdem das Problem bereits bei Facebook und Instagram aufgedeckt worden war, hat sich ein Sicherheitsforscher nun auch den chinesischen Videodienst angesehen.

]]>
@@ -264,8 +264,8 @@ VW: ab 2024 nur noch vollelektrische Autos für Norwegen http://heise.de/-7235781 - 2022-08-19T10:26:00+02:00 - 2022-08-19T10:26:00+02:00 + 2099-08-19T10:26:00+02:00 + 2099-08-19T10:26:00+02:00 Der norwegische Volkswagen-Importeur Møller Mobility Group will ab 2024 keine Verbrenner und Plug-in-Hybride mehr importieren.

Der norwegische Volkswagen-Importeur Møller Mobility Group will ab 2024 keine Verbrenner und Plug-in-Hybride mehr importieren.

]]>
@@ -274,8 +274,8 @@ Genfer Autosalon 2023 nicht in Genf, sondern in Katar http://heise.de/-7235773 - 2022-08-19T10:06:00+02:00 - 2022-08-19T10:06:00+02:00 + 2099-08-19T10:06:00+02:00 + 2099-08-19T10:06:00+02:00 Die Geneva International Motor Show wird 2023 in Katar ausgerichtet. Die für Genf im Februar 2023 geplante Veranstaltung hat der Veranstalter gestern abgesagt.

Die Geneva International Motor Show wird 2023 in Katar ausgerichtet. Die für Genf im Februar 2023 geplante Veranstaltung hat der Veranstalter gestern abgesagt.

]]>
@@ -284,8 +284,8 @@ Taktiler Sensor ermöglicht Roboter Umgang mit Textilien http://heise.de/-7235688 - 2022-08-19T10:03:00+02:00 - 2022-08-19T10:03:00+02:00 + 2099-08-19T10:03:00+02:00 + 2099-08-19T10:03:00+02:00 Mit einer Kombination aus "fühlendem" ReSkin-Sensor und Machine Learning können Roboter einzelne Stofflagen greifen.

Mit einer Kombination aus "fühlendem" ReSkin-Sensor und Machine Learning können Roboter einzelne Stofflagen greifen.

]]>
@@ -294,8 +294,8 @@ Ältere macOS-Versionen: Apple zieht Safari-Patch für aktiven Exploit nach http://heise.de/-7235847 - 2022-08-19T09:52:00+02:00 - 2022-08-19T09:52:00+02:00 + 2099-08-19T09:52:00+02:00 + 2099-08-19T09:52:00+02:00 Nachdem zunächst nicht klar war, ob nur macOS 12 betroffen ist, steht nun fest: Auch Big Sur und Catalina sind betroffen. Apple reagierte verzögert.

Nachdem zunächst nicht klar war, ob nur macOS 12 betroffen ist, steht nun fest: Auch Big Sur und Catalina sind betroffen. Apple reagierte verzögert.

]]>
@@ -304,8 +304,8 @@ Virenscanner: Schwachstelle von McAfee erleichtert Angreifern das Einnisten http://heise.de/-7235809 - 2022-08-19T09:47:00+02:00 - 2022-08-19T09:47:00+02:00 + 2099-08-19T09:47:00+02:00 + 2099-08-19T09:47:00+02:00 Angreifer hätten aufgrund einer Sicherheitslücke im Virenschutz McAfee Security Scan Plus ihre Rechte erhöhen können. Das erleichterte das Einnisten im System.

Angreifer hätten aufgrund einer Sicherheitslücke im Virenschutz McAfee Security Scan Plus ihre Rechte erhöhen können. Das erleichterte das Einnisten im System.

]]>
@@ -314,8 +314,8 @@ LibreOffice 7.4: Dunkles Gewand, WebP und Language Tool http://heise.de/-7235737 - 2022-08-19T09:45:00+02:00 - 2022-08-19T09:45:00+02:00 + 2099-08-19T09:45:00+02:00 + 2099-08-19T09:45:00+02:00 Die freie Office-Suite LibreOffice 7.4 kommt mit WebP-Grafiken zurecht, erhöht die mögliche Spalten-Anzahl in Calc und liefert für Windows einen Dark Mode.

Die freie Office-Suite LibreOffice 7.4 kommt mit WebP-Grafiken zurecht, erhöht die mögliche Spalten-Anzahl in Calc und liefert für Windows einen Dark Mode.

]]>
@@ -324,8 +324,8 @@ "Höchste Priorität": Eigene UFO-Studie für NASA "sehr wichtig" http://heise.de/-7235753 - 2022-08-19T09:44:00+02:00 - 2022-08-19T09:44:00+02:00 + 2099-08-19T09:44:00+02:00 + 2099-08-19T09:44:00+02:00 Die geplante UFO-Studie sei sehr wichtig, heißt es von der NASA. Niemand genieße so viel Vertrauen und habe so viel Expertise wie die US-Weltraumagentur.

Die geplante UFO-Studie sei sehr wichtig, heißt es von der NASA. Niemand genieße so viel Vertrauen und habe so viel Expertise wie die US-Weltraumagentur.

]]>
@@ -334,8 +334,8 @@ Hinter Deinem Rücken: Der sprechende Furby-Rucksack http://heise.de/-7223997 - 2022-08-19T09:00:00+02:00 - 2022-08-19T09:00:00+02:00 + 2099-08-19T09:00:00+02:00 + 2099-08-19T09:00:00+02:00 Die Makerin achNina baut Roboter und gibt Dingen eine Stimme. Jetzt hat sie einen Rucksack zum Leben erweckt, der nichts unkommentiert lässt.

Die Makerin achNina baut Roboter und gibt Dingen eine Stimme. Jetzt hat sie einen Rucksack zum Leben erweckt, der nichts unko