Angular Munich – Telegram
Angular Munich
177 subscribers
553 photos
41 videos
9 files
705 links
Stay up to date with Angular Framework ;-)

Need more: https://linktr.ee/ngxsamurai
Download Telegram
No more Enums, Namespaces and Class parameter in #TypeScript 👀

Now in TypeScript v5.8, we get a new --erasableSyntaxOnly flag that marks all non erasable syntax as an error.

So what is non erasable syntax? 🤔

TypeScript is a compile time tool and it is stripped away during build time so it doesn't end up in your final application bundles. Enums, Namespaces and Class parameter break this pattern and are compiled to JavaScript when you build your application. This new --erasableSyntaxOnly flag will throw a compile time error during compile time when you use one of this non erasable TypeScript features, effectively disabling the use of these features 🎉


https://www.totaltypenoscript.com/erasable-syntax-only
Angular Munich pinned «No more Enums, Namespaces and Class parameter in #TypeScript 👀 Now in TypeScript v5.8, we get a new --erasableSyntaxOnly flag that marks all non erasable syntax as an error. So what is non erasable syntax? 🤔 TypeScript is a compile time tool and it is…»
🚨 Achtung!🚨

Es ist heutzutage ähnlich wie bei der Wohnungssuche, wo man auf gefälschte Schufa-Formulare stoßen kann – die Situation ist unglaublich unsicher!

Das betrifft nicht nur job-Switcher oder CV-Tester. In jedem Kundenprojekt könnten versteckte Probleme existieren. Ob absichtlich oder durch frühere Entwickler integriert, sollte immer darauf geachtet werden.

Ich empfehle, solche Testaufgaben stets in Sandbox-Umgebungen durchzuführen, um Risiken zu minimieren!!!

#security #cv #jobsuche
Angular Munich
🚨 Achtung!🚨 Es ist heutzutage ähnlich wie bei der Wohnungssuche, wo man auf gefälschte Schufa-Formulare stoßen kann – die Situation ist unglaublich unsicher! Das betrifft nicht nur job-Switcher oder CV-Tester. In jedem Kundenprojekt könnten versteckte Probleme…
Self-Managed:

- Cuckoo -- Cuckoo or modified cuckoo does good job covering different OS platforms.

- drakvuf -- Unlike cuckoo, this is agentless. The setup for this is quiet involved but the results are great.

Sandboxie

- Noriben (not exactly a sandbox but does a decent job in Behavioural) -- A python noscript which montiors via ProcMon. Simple easy to setup in a VM. Again not exactly a Sandbox and you would miss out on lot of memory related things.

Hosted/Commercial

- Hybrid Analysis (Not sure for Student if they give a free base account)
- app.any.run - malware hunting for free
- VMRay (according to me one of the best Commercial Sandbox offering)

Also PacketTotal.com if you're dealing with pcaps
DeepSeek & Datenschutz

Hallo! Wollte euch nur darauf aufmerksam machen, dass wenn ihr DeepSeek nutzen wollt - dann dort bitte erst recht nicht Unternehmens- und persönliche Informationen teilen!

"Technical Information. We collect certain device and network connection information when you access the Service. This information includes your device model, operating system, keystroke patterns or rhythms, IP address, and system language. We also collect service-related, diagnostic, and performance information, including crash reports and performance logs. We automatically assign you a device ID and user ID. Where you log-in from multiple devices, we use information such as your device ID and user ID to identify your activity across devices to give you a seamless log-in experience and for security purposes."


DeepSeek speichert (in der Online Variante) neben ausgeführten Prompts auch Tastatureingaben und wie etwas eingegeben wird - das ist bei ChatGPT bspw. nicht der Fall und ist ein recht weitreichender Eingriff.
Hi 🫶🏻 everyone!!!

Changes are coming, and I want to bring you even more excitement and inspiration to grow 💪🏻 together with me.

I’m looking to improve my channel 🛠 and would love to hear your thoughts. What topics are you most interested in, and what would you like to read more about?

Also, which language do you prefer for the channel: English 🇺🇸 or German 🇩🇪?

Your input is very important to me ❤️, and I want to create content that truly adds value for you!
This media is not supported in your browser
VIEW IN TELEGRAM
🎥 The trailer for the Angular Documentary is here! 🚀

This documentary is a celebration of the people, ideas, and innovation that have made Angular what it is today, a tool that empowers developers around the world to create exceptional web experiences.

🎬 Watch the trailer, get inspired, and share the excitement! Let’s make this a viral moment for the Angular community. 💻❤️
🔥3
MASSIVE & Quick performance WIN with NgOptimizedImage explained by Jarosław Żołnowski in new Angular Space article :) #angular 👇

Article

———
@Memoirs_of_a_ngxSamurai
🚨 AWS UG Munich - January 2025

30.01.2025,18:00...21:00

————————————————

AGENDA
:

18:00 - Doors open, networking, drinks, food

18:30 - Markus Ostertag (AWS Hero): Recent AWS announcements

19:15 - Benjamin Hofmann, Biyan Cicek and Tim Chen (MaibornWolff): Incident Resolution Assistance with AI

20:00 - Ovidiu Hutuleac (Sr. Data Solutions Architect @ AWS): Deep Dive into Amazon Aurora DSQL

20:45 - More drinks, more networking

————————————————

Address:

- MaibornWolff GmbH KARE Kraftwerk
- Drygalski-Allee 25, München (11th Floor)

————————————————

Link: https://www.meetup.com/de-DE/aws-munich/events/305475561/?eventorigin=group_upcoming_events

#meetup #aws #awsMucUG

@Memoirs_of_a_ngxSamurai
The #angular resource API got an upgrade in v19.2!

You can now provide a default value to the resource API. This makes it easy to type the value property of the resource and allows for better handling when no values are returned

Before 'resource()' resolves a value, it's value property is in an unknown state and returns 'undefined', so the type of '.value()' also includes 'undefined'.

When you give it a default value you can prevent this undefined state and type 👏

The default value is added to both resource and rxResource

#ng19 #resourceAPI #rxResource

———
@Memoirs_of_a_ngxSamurai
Let's update the #node (2025-01-30)!

Notable Changes:

- crypto: update root certificates to NSS 3.107
- fs: allow exclude option in globs to accept glob patterns
- module: add ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
- sqlite: support TypedArray and DataView in StatementSync
- src: add --disable-sigusr1 to prevent signal i/o thread
- src,worker: add isInternalWorker
- test_runner: add TestContext.prototype.waitFor()
- test_runner: add t.assert.fileSnapshot()
- test_runner: add assert.register() API

Want to know more? Check out the release notes!

#nodejs

———
@Memoirs_of_a_ngxSamurai
Stop using #APP_INITIALIZER in your #angular apps 🛑

In angular you can preform logic before your application is bootstrapped. This was always done by creating a provider for the APP_INITIALIZER injection token and giving it a factory method 🏗

But angular is moving to a standalone approach, has the inject function and improved on many other fronts.

Because of all these changes, APP_INITIALIZER has been deprecated for the new provideAppInitializer() function!

The provideAppInitializer() function takes a callback function and inside this function you can perform you initialization logic. With the old APP_INITIALIZER you had to declare a dependencies array inside your provider if you needed to use dependencies like the httpClient or some internal service.

With the new provideAppInitializer() you can simply inject whatever service you need, as it run inside the injection context 🔥

Link
#News

🌐 HTTP QUERY: A New Method for Search Queries


In the world of HTTP, there has long been a problem with transmitting complex search queries. When a developer needs to pass a large set of parameters for searching or filtering, there are two not-so-ideal options.

One can use GET and pass everything in the URL:

GET /feed?q=foo&limit=10&sort=-published&filters[]=status:active&filters[]=type:post


However, URLs have inherent length limitations, and encoding complex parameters can become cumbersome.

The second option is to use POST and send the parameters in the request body. However, POST is not intended for such operations: it is not cacheable and not idempotent, complicating interactions with CDNs and resending requests.

This is why the new QUERY method was introduced. It allows sending search parameters in the request body:

QUERY /feed
Content-Type: application/json

{ "q": "foo", "limit": 10, "sort": "-published", "filters": ["status:active", "type:post"] }


The QUERY method retains all the advantages of GET: it is safe, idempotent, and cacheable. It combines support for the request body with caching capabilities.

The method has officially received PROPOSED STANDARD status, indicating that support in browsers and web frameworks is on the horizon.

Summarizing:
    +============+=============+==================+==================+
| | GET | QUERY | POST |
+============+=============+==================+==================+
| Safe | yes | yes | potentially no |
+------------+-------------+------------------+------------------+
| Idempotent | yes | yes | potentially no |
+------------+-------------+------------------+------------------+
| Cacheable | yes | yes | no |
+------------+-------------+------------------+------------------+
| Content | "no defined | expected | expected |
| (body) | semantics" | (semantics per | (semantics per |
| | | target resource) | target resource) |
+------------+-------------+------------------+------------------+


RFC
🔥1
🚀 Enforce a standardized order of attributes in your #angular templates thanks to this #eslint rule.

💡 Consistency in your codebase is more important than the specific order you choose. Pick a standard and stick to it across your team.

Link to rule:

https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/attributes-order.md

PS:

and this supports autofix (--fix)!!!
1🔥1
‼️ "if you sick - stop working" ‼️


1️⃣ When a software developer is sick, productivity drops significantly; complex problem-solving requires clear thinking, which illness compromises.

2️⃣ Sickness can derail project timelines, leading to increased pressure on the team and potential burnout.

3️⃣ Working while unwell often results in reduced code quality, as fatigue may lead to overlooked bugs that require more debugging later.

4️⃣ In a collaborative environment, a sick developer can’t fully participate in code reviews or meetings, hindering communication and slowing down overall progress.

5️⃣ Ignoring the need to rest can lead to severe health issues, resulting in extended absences that further impact the team’s workflow.

6️⃣ While remote work offers flexibility, it can blur the lines between work and rest, making it harder for developers to take the necessary time off when unwell.


In my opinion the cases 5️⃣ and 6️⃣ are very critical and should be taken seriously!

———
@Memoirs_of_a_ngxSamurai
🤖 Github Copilot Agent Mode and more


Important new features:

1️⃣ Agent Mode: Autonomous code iteration, error recognition, and automatic fixes.

2️⃣ Copilot Edits: Intelligent code suggestions and multi-file editing capabilities.

3️⃣ Gemini 2.0 Flash: Access to advanced AI models for improved code generation.

4️⃣ Vision capabilities: #Copilot can now accept screenshots with annotations and drawings and reason about the necessary changes


These updates collectively aim to place developers at the center of the creative process, with #AI handling routine tasks to free up time for more complex challenges.

Read the blog post at github blog
🚀 Boost Your Angular App’s Performance with Lesser-Known Configurations!

As #angular developers, we’re always on the lookout for ways to optimize our applications. One lesser-known but powerful configuration you can enable in your main.ts file is the eventCoalescing and runCoalescing options when calling the bootstrapModule function.

🔧 What do these options do?

𝗲𝘃𝗲𝗻𝘁𝗖𝗼𝗮𝗹𝗲𝘀𝗰𝗶𝗻𝗴: This option helps in reducing the number of change detection cycles by coalescing multiple events into a single change detection cycle. This can significantly improve performance, especially in applications with a lot of user interactions.

𝗿𝘂𝗻𝗖𝗼𝗮𝗹𝗲𝘀𝗰𝗶𝗻𝗴: Similar to eventCoalescing, this option coalesces multiple NgZone runs into a single run, further optimizing the change detection process.

#𝗿𝘂𝗻𝗖𝗼𝗮𝗹𝗲𝘀𝗰𝗶𝗻𝗴 #eventCoalescing #NgZone #changeDetection #cd

———
@Memoirs_of_a_ngxSamurai