Home Blog

Cease SMB Exploits and Advance Your Profession in Cybersecurity


WannaCry. NotPetya. EternalBlue. These names mark a number of the most devastating cyberattacks in historical past, they usually all exploited flaws in Server Message Block (SMB). Figuring out methods to detect and defend towards SMB vulnerabilities isn’t simply good cybersecurity—it’s important for anybody severe a few profession within the discipline.

Why SMB exploits matter

SMB is a community protocol used primarily by Microsoft for sharing recordsdata, printers, and different sources throughout the community. It permits customers to learn, create, and replace recordsdata on distant servers and talk with different packages over the community. The shift to distant work led many organizations to reveal inner providers like SMB over the web, usually with out satisfactory safety controls, considerably growing the danger of exploitation.

An SMB exploit is a method utilized by cybercriminals to make the most of vulnerabilities within the SMB protocol. For instance, in WannaCry, the assault appeared for uncovered SMB ports (mostly port 445). On this case, they have been uncovered resulting from misconfiguration. As soon as an uncovered port was discovered, the chain of exploits continued. EternalBlue was exploited on susceptible programs to unfold a worm all through the community, in the end deploying ransomware on contaminated machines. The WannaCry ransomware worm unfold to greater than 200,000 computer systems in over 150 nations.

As proven on this instance, when attackers exploit SMB vulnerabilities, they acquire unauthorized entry to programs, run malicious code, and trigger widespread disruption.

Why our Operation SMB Exploit problem issues

Our newest Seize the Flag: Operation SMB Exploit problem in Cisco U. hones the talents you’ll want to determine the SMB vulnerabilities in working programs (reminiscent of Home windows and Linux) that depart your community open to those assaults.

To higher equip your self for a job in offensive safety with this vital talent set, you’ll get hands-on apply analyzing community safety from an attacker’s perspective:

  • Discover password cracking and vulnerability scanning methods.
  • Try a brute-force assault towards SSH to uncover any SMB vulnerabilities.
  • Enumerate SMB shares.

The tip consequence: Perceive potential impacts and the way they can be utilized to determine SMB vulnerabilities that may be exploited in providers like Microsoft’s.

The very best information: When you efficiently full our newest Seize the Flag problem, you’re positive to return out a winner by studying methods to proactively crush any possibilities of exploits in your simulated assault.

New to the Cisco Certificates in Moral Hacking program?

If figuring out SMB exploits sounds intriguing, however you’re new to the certificates program or want a refresher, view the certificates program infographic.

When you’ve handed the Moral Hacker course from Cisco Networking Academy, full the brand new problem to earn a Cisco Certificates in Moral Hacking.

Be part of our new group

Proceed full steam forward and be a part of a group of like-minded friends and consultants within the Cisco Certificates in Moral Hacking Neighborhood. They may help make sure you maintain your momentum going and end sturdy.

It’s the problem that retains on giving badges—gather ‘em all

Plus, you may proceed to gather extra badges with extra Seize the Flag challenges in Cisco U. They’re launched each 90 days. It’s a enjoyable and interesting solution to present you’re all the time a step forward of menace actors within the newest cyberthreat panorama.

Why wait?

Begin the Operation SMB Exploit problem in Cisco U. now to construct vital abilities in moral hacking—an in-demand discipline that simply retains rising.

 

Join Cisco U. | Be part of the  Cisco Studying Community right now without spending a dime.

Comply with Cisco Studying & Certifications

X | Threads | Fb | LinkedIn | Instagram | YouTube

Use  #CiscoU and #CiscoCert to hitch the dialog.

Every thing You Wish to Know About Cisco U. Seize the Flag Challenges

Share:



Using Darkish Fiber to Handle Price of DCI within the AI Period


In my earlier weblog submit, I talked concerning the rising monetary burden that AI-driven information development will place on enterprises. IDC predicts that information era will develop explosively, at a compound annual development fee (CAGR) of 40.5% via 2027, which can result in unprecedented development within the want for extra sturdy information heart interconnect (DCI) options by enterprises.

Historically, enterprises have leased high-capacity circuits from service suppliers for DCI. These leased circuits are sometimes 10G hyperlinks utilizing Service Ethernet or wavelength companies—that are completely enough for assembly enterprises’ present necessities. Nonetheless, AI is beginning to push DCI capability in the direction of high-bandwidth 100G, 400G, and 800G connections. Because the price construction of DCI is often primarily based on bandwidth utilization, prices will shortly multiply, as enterprises will want extra circuits to assist elevated capability calls for. A more cost effective various for enterprises is to lease darkish fiber from service suppliers and create their very own non-public community.

Calculating the price of DCI for AI

The massive query for enterprise IT, particularly for community architects, is when to make the swap from leasing circuits to leasing darkish fiber. Organizations will doubtless attain a tipping level when the price of including extra capability to leased circuits to assist AI workloads will develop into too excessive. That is when a transfer to a special DCI mannequin with a extra sustainable price construction is absolutely justified.

ACG Analysis investigated the three-year complete price of possession (TCO) of Service Ethernet, wavelength companies, and darkish fiber in several use instances throughout metro (50 km), short-haul (200 km), and long-haul (500 km) DCI networks. This evaluation revealed that darkish fiber is probably the most strategic long-term funding for enterprises to handle exponential AI-driven bandwidth development. Listed below are the outcomes of this TCO analysis for the completely different community sorts:

Metro networks TCO benefit

The tipping level for transferring to darkish fiber in metro networks happens when bandwidth wants exceed 100G, with TCO financial savings at 400G of 48% in comparison with Service Ethernet and 55% in comparison with wavelength companies. Not like Service Ethernet or wavelength companies, the flat transport prices of darkish fiber permit enterprises to scale bandwidth with out incurring incremental charges.

Quick-haul networks TCO benefit

In regional networks, darkish fiber exhibits important TCO advantages over Service Ethernet starting at 100G, with 61% financial savings at 400G. For wavelength companies, darkish fiber has a tipping level of 30% TCO financial savings past 400G and 48% TCO financial savings at 800G. Whereas distance-based prices are increased, the flat pricing mannequin of darkish fiber ensures long-term financial savings.

Lengthy-haul networks TCO benefit

For long-haul connections, darkish fiber is 46% cheaper than Service Ethernet at bandwidths better than 400G. It’s 14% cheaper than wavelength companies at bandwidths better than 800G. Nonetheless, when evaluating darkish fiber and wavelength companies, it’s necessary to notice that darkish fiber scales linearly with distance whereas wavelength prices rise in step increments that aren’t at all times proportional to bandwidth. So, in long-haul deployments, wavelength companies could also be cheaper due to the upper price of long-distance fiber development or restricted availability. That’s the reason you will need to consider prices for every service, considering the placement of knowledge facilities.

 

 

How one can make the swap

Given the speedy tempo of AI innovation and the inevitable surge in AI information, forward-thinking enterprises ought to begin planning a swap to darkish fiber now to keep away from future stability sheet hits. The only and most cost-effective manner ahead is to mix darkish fiber with Cisco Routed Optical Networking, which allows optical wavelengths to be delivered straight from high-capacity ports in routers or switches within the information heart. It simplifies the community by changing devoted transponders with industry-standard coherent pluggable optics and easier optical line methods. For point-to-point DCI options, enterprises can deploy Cisco ZR/ZR+ coherent pluggable optics with switches to break down the switching and optical layers at Layer 2. For extra complicated companies, they’ll converge routing and optical layers onto a single IP/MPLS community the place all switching occurs at Layer 3.

This modern strategy brings many advantages for enterprises. The mixture of darkish fiber and Routed Optical Networking presents cost-effective scaling to multi-terabit capacities, whereas streamlining operations and decreasing OpEx. The standardized capabilities of coherent pluggable optics get rid of the necessity for complicated site visitors engineering, whereas delivering the resilient, low-latency connectivity that AI functions want. Moreover, enterprises can now acquire end-to-end observability and management over their DCI community, guarantee SLA compliance with necessities for bandwidth, latency, and availability, and improve DCI efficiency throughout darkish fiber hyperlinks. Cisco Supplier Connectivity Assurance, previously Accedian Skylight, gives enterprises with these capabilities, with steady and real-time telemetry throughout the bodily and logical layers of their DCI connections.

Whereas leasing 10G circuits would possibly meet the present DCI wants of enterprises, it’s not a matter of if however when the associated fee will develop into too excessive. It’s sure that AI workloads will contribute to unprecedented development in information site visitors, which makes switching to darkish fiber now a strategic transfer. Since working DCI over darkish fiber is extra complicated than a managed service, enterprises can accomplice with service suppliers that lease darkish fiber and profit from their operational experience. By investing in scalable DCI infrastructure utilizing darkish fiber at this time, enterprises can place themselves to capably assist the elevated information volumes from AI and different data-intensive workloads tomorrow.

Study extra about Cisco DCI options with Routed Optical Networking.

 

 

Associated blogs:

Share:

Constructing highly effective AI-driven experiences with Jetpack Compose, Gemini and CameraX


The Android bot is a beloved mascot for Android customers and builders, with earlier variations of the bot builder being extremely popular – we determined that this 12 months we’d rebuild the bot maker from the bottom up, utilizing the newest expertise backed by Gemini. At this time we’re releasing a brand new open supply app, Androidify, for studying the way to construct highly effective AI pushed experiences on Android utilizing the newest applied sciences resembling Jetpack Compose, Gemini by means of Firebase, CameraX, and Navigation 3.

Right here’s an instance of the app operating on the machine, showcasing changing a photograph to an Android bot that represents my likeness:

moving image showing the conversion of an image of a woman in a pink dress holding na umbrella into a 3D image of a droid bot wearing a pink dress holding an umbrella

Beneath the hood

The app combines quite a lot of completely different Google applied sciences, resembling:

    • Gemini API – by means of Firebase AI Logic SDK, for accessing the underlying Imagen and Gemini fashions.
    • Jetpack Compose – for constructing the UI with pleasant animations and making the app adapt to completely different display sizes.
    • Navigation 3 – the newest navigation library for increase Navigation graphs with Compose.
    • CameraX Compose and Media3 Compose – for increase a customized digital camera with customized UI controls (rear digital camera assist, zoom assist, tap-to-focus) and taking part in the promotional video.

This pattern app is at present utilizing a normal Imagen mannequin, however we have been engaged on a fine-tuned mannequin that is skilled particularly on the entire items that make the Android bot cute and enjoyable; we’ll share that model later this 12 months. Within the meantime, do not be shocked if the pattern app places out some attention-grabbing trying examples!

How does the Androidify app work?

The app leverages our greatest practices for Structure, Testing, and UI to showcase an actual world, trendy AI utility on machine.

Flow chart describing Androidify app flow

Androidify app circulate chart detailing how the app works with AI

AI in Androidify with Gemini and ML Package

The Androidify app makes use of the Gemini fashions in a mess of how to complement the app expertise, all powered by the Firebase AI Logic SDK. The app makes use of Gemini 2.5 Flash and Imagen 3 below the hood:

    • Picture validation: We be certain that the captured picture incorporates adequate info, resembling a clearly centered particular person, and assessing for security. This characteristic makes use of the multi-modal capabilities of Gemini API, by giving it a immediate and picture on the identical time:

val response = generativeModel.generateContent(
   content material {
       textual content(immediate)
       picture(picture)
   },
)

    • Textual content immediate validation: If the consumer opts for textual content enter as an alternative of picture, we use Gemini 2.5 Flash to make sure the textual content incorporates a sufficiently descriptive immediate to generate a bot.

    • Picture captioning: As soon as we’re certain the picture has sufficient info, we use Gemini 2.5 Flash to carry out picture captioning., We ask Gemini to be as descriptive as doable,specializing in the clothes and its colours.

    • “Assist me write” characteristic: Much like an “I’m feeling fortunate” sort characteristic, “Assist me write” makes use of Gemini 2.5 Flash to create a random description of the clothes and coiffure of a bot.

    • Picture technology from the generated immediate: As the ultimate step, Imagen generates the picture, offering the immediate and the chosen pores and skin tone of the bot.

The app additionally makes use of the ML Package pose detection to detect an individual within the viewfinder and allow the seize button when an individual is detected, in addition to including enjoyable indicators across the content material to point detection.

Discover extra detailed details about AI utilization in Androidify.

Jetpack Compose

The consumer interface of Androidify is constructed utilizing Jetpack Compose, the trendy UI toolkit that simplifies and accelerates UI improvement on Android.

Pleasant particulars with the UI

The app makes use of Materials 3 Expressive, the newest alpha launch that makes your apps extra premium, fascinating, and fascinating. It gives pleasant bits of UI out-of-the-box, like new shapes, componentry, and utilizing the MotionScheme variables wherever a movement spec is required.

MaterialShapes are utilized in numerous areas. These are a preset record of shapes that permit for straightforward morphing between one another—for instance, the lovable cookie form for the digital camera seize button:

Androidify app UI showing camera button

Digicam button with a MaterialShapes.Cookie9Sided form

Past utilizing the usual Materials parts, Androidify additionally options customized composables and pleasant transitions tailor-made to the precise wants of the app:

    • There are many shared ingredient transitions throughout the app—for instance, a morphing form shared ingredient transition is carried out between the “take a photograph” button and the digital camera floor.

      moving example of expressive button shapes in slow motion

    • Customized enter transitions for the ResultsScreen with the utilization of marquee modifiers.

      animated marquee example

    • Enjoyable coloration splash animation as a transition between screens.

      moving image of a blue color splash transition between Androidify demo screens

    • Animating gradient buttons for the AI-powered actions.

      animated gradient button for AI powered actions example

To be taught extra concerning the distinctive particulars of the UI, learn Androidify: Constructing pleasant UIs with Compose

Adapting to completely different gadgets

Androidify is designed to look nice and performance seamlessly throughout sweet bar telephones, foldables, and tablets. The final purpose of creating adaptive apps is to keep away from reimplementing the identical app a number of instances on every kind issue by extracting out reusable composables, and leveraging APIs like WindowSizeClass to find out what sort of structure to show.

a collage of different adaptive layouts for the Androidify app across small and large screens

Numerous adaptive layouts within the app

For Androidify, we solely wanted to leverage the width window dimension class. Combining this with completely different structure mechanisms, we had been capable of reuse or prolong the composables to cater to the multitude of various machine sizes and capabilities.

    • Responsive layouts: The CreationScreen demonstrates adaptive design. It makes use of helper capabilities like isAtLeastMedium() to detect window dimension classes and alter its structure accordingly. On bigger home windows, the picture/immediate space and coloration picker may sit side-by-side in a Row, whereas on smaller home windows, the colour picker is accessed by way of a ModalBottomSheet. This sample, referred to as “supporting pane”, highlights the supporting dependencies between the primary content material and the colour picker.

    • Foldable assist: The app actively checks for foldable machine options. The digital camera display makes use of WindowInfoTracker to get FoldingFeature info to adapt to completely different options by optimizing the structure for tabletop posture.

    • Rear show: Help for gadgets with a number of shows is included by way of the RearCameraUseCase, permitting for the machine digital camera preview to be proven on the exterior display when the machine is unfolded (so the primary content material is often displayed on the interior display).

Utilizing window dimension lessons, coupled with making a customized @LargeScreensPreview annotation, helps obtain distinctive and helpful UIs throughout the spectrum of machine sizes and window sizes.

CameraX and Media3 Compose

To permit customers to base their bots on photographs, Androidify integrates CameraX, the Jetpack library that makes digital camera app improvement simpler.

The app makes use of a customized CameraLayout composable that helps the structure of the standard composables {that a} digital camera preview display would come with— for instance, zoom buttons, a seize button, and a flip digital camera button. This structure adapts to completely different machine sizes and extra superior use circumstances, just like the tabletop mode and rear-camera show. For the precise rendering of the digital camera preview, it makes use of the brand new CameraXViewfinder that’s a part of the camerax-compose artifact.

CameraLayout in Compose

CameraLayout composable that takes care of various machine configurations, resembling desk high mode

CameraLayout in Compose

CameraLayout composable that takes care of various machine configurations, resembling desk high mode

The app additionally integrates with Media3 APIs to load an educational video for displaying the way to get the most effective bot from a immediate or picture. Utilizing the brand new media3-ui-compose artifact, we are able to simply add a VideoPlayer into the app:

@Composable
personal enjoyable VideoPlayer(modifier: Modifier = Modifier) {
    val context = LocalContext.present
    var participant by bear in mind { mutableStateOf(null) }
    LifecycleStartEffect(Unit) {
        participant = ExoPlayer.Builder(context).construct().apply {
            setMediaItem(MediaItem.fromUri(Constants.PROMO_VIDEO))
            repeatMode = Participant.REPEAT_MODE_ONE
            put together()
        }
        onStopOrDispose {
            participant?.launch()
            participant = null
        }
    }
    Field(
        modifier
            .background(MaterialTheme.colorScheme.surfaceContainerLowest),
    ) {
        participant?.let { currentPlayer ->
            PlayerSurface(currentPlayer, surfaceType = SURFACE_TYPE_TEXTURE_VIEW)
        }
    }
}

Utilizing the brand new onLayoutRectChanged modifier, we additionally pay attention for whether or not the composable is totally seen or not, and play or pause the video based mostly on this info:

var videoFullyOnScreen by bear in mind { mutableStateOf(false) }     

LaunchedEffect(videoFullyOnScreen) {
     if (videoFullyOnScreen) currentPlayer.play() else currentPlayer.pause()
} 

// We add this onto the participant composable to find out if the video composable is seen, and mutate the videoFullyOnScreen variable, that then toggles the participant state. 
Modifier.onVisibilityChanged(
                containerWidth = LocalView.present.width,
                containerHeight = LocalView.present.peak,
) { fullyVisible -> videoFullyOnScreen = fullyVisible }

// A easy model of visibility modified detection
enjoyable Modifier.onVisibilityChanged(
    containerWidth: Int,
    containerHeight: Int,
    onChanged: (seen: Boolean) -> Unit,
) = this then Modifier.onLayoutRectChanged(100, 0) { layoutBounds ->
    onChanged(
        layoutBounds.boundsInRoot.high > 0 &&
            layoutBounds.boundsInRoot.backside < containerHeight &&
            layoutBounds.boundsInRoot.left > 0 &&
            layoutBounds.boundsInRoot.proper < containerWidth,
    )
}

Moreover, utilizing rememberPlayPauseButtonState, we add on a layer on high of the participant to supply a play/pause button on the video itself:

val playPauseButtonState = rememberPlayPauseButtonState(currentPlayer)
            OutlinedIconButton(
                onClick = playPauseButtonState::onClick,
                enabled = playPauseButtonState.isEnabled,
            ) {
                val icon =
                    if (playPauseButtonState.showPlay) R.drawable.play else R.drawable.pause
                val contentDescription =
                    if (playPauseButtonState.showPlay) R.string.play else R.string.pause
                Icon(
                    painterResource(icon),
                    stringResource(contentDescription),
                )
            }

Take a look at the code for extra particulars on how CameraX and Media3 had been utilized in Androidify.

Navigation 3

Display transitions are dealt with utilizing the brand new Jetpack Navigation 3 library androidx.navigation3. The MainNavigation composable defines the completely different locations (House, Digicam, Creation, About) and shows the content material related to every vacation spot utilizing NavDisplay. You get full management over your again stack, and navigating to and from locations is so simple as including and eradicating gadgets from a listing.

@Composable
enjoyable MainNavigation() {
   val backStack = rememberMutableStateListOf(House)
   NavDisplay(
       backStack = backStack,
       onBack = { backStack.removeLastOrNull() },
       entryProvider = entryProvider {
           entry { entry ->
               HomeScreen(
                   onAboutClicked = {
                       backStack.add(About)
                   },
               )
           }
           entry {
               CameraPreviewScreen(
                   onImageCaptured = { uri ->
                       backStack.add(Create(uri.toString()))
                   },
               )
           }
           // and so on
       },
   )
}

Notably, Navigation 3 exposes a brand new composition native, LocalNavAnimatedContentScope, to simply combine your shared ingredient transitions while not having to maintain observe of the scope your self. By default, Navigation 3 additionally integrates with predictive again, offering pleasant again experiences when navigating between screens, as seen on this prior shared ingredient transition:

CameraLayout in Compose

Be taught extra about Jetpack Navigation 3, at present in alpha.

Be taught extra

By combining the declarative energy of Jetpack Compose, the digital camera capabilities of CameraX, the clever options of Gemini, and considerate adaptive design, Androidify is a personalised avatar creation expertise that feels proper at house on any Android machine. You’ll find the total code pattern at github.com/android/androidify the place you’ll be able to see the app in motion and be impressed to construct your personal AI-powered app experiences.

Discover this announcement and all Google I/O 2025 updates on io.google beginning Could 22.

Cisco Welcomes Brett McGurk – Cisco Blogs


Technological management is now a defining issue shaping the way forward for our nation and our world, from financial development to worldwide cooperation and nationwide safety. In the present day, improvements in AI, safe connectivity, digital infrastructure, and cloud computing aren’t simply reworking industries—they’re reshaping how nations interact, collaborate, and compete.

That’s the reason we’re excited to welcome Brett McGurk to Cisco as Particular Advisor for the Center East and Worldwide Affairs.

In his new function, Brett will assist deepen our longstanding partnerships within the Center East and globally–serving to to make sure our uniquely trusted expertise is included in all points of the AI revolution, together with the infrastructure buildouts ongoing within the U.S. and globally.

Brett joined Cisco chair and CEO Chuck Robbins on his current tour of the Center East, enjoying an instrumental function in negotiating and finalizing agreements introduced by Cisco. These embrace Cisco turning into a member of the Stargate and AI Infrastructure Partnership (AIP) and serving as a founding associate of Saudi Arabia’s new AI firm, HUMAIN.

Brett brings a uncommon mixture of strategic perception and a long time of world expertise. Over the course of a distinguished profession spanning 4 U.S. administrations, he has served on the highest ranges of nationwide safety and international coverage—most not too long ago as White Home Coordinator for the Center East and North Africa. He has performed a central function in constructing worldwide coalitions, securing the discharge of American hostages, negotiating ceasefires, partaking heads of state, and advising presidents of each events on probably the most consequential issues of diplomatic and nationwide safety affairs.

He additionally understands how essential superior expertise is to fashionable diplomacy. From securing vitality and expertise corridors throughout areas to recognizing the function of AI and digital infrastructure in constructing strategic alliances, Brett has seen firsthand how innovation drives partnerships.

“Brett is an amazing addition to our workforce,” mentioned Robbins.  “His expertise in worldwide affairs is unmatched and we’re excited to work with him to strengthen our world partnerships and additional develop the central function of Cisco’s trusted expertise within the AI revolution.”

It’s a privilege to have Brett be a part of Cisco as we navigate this subsequent chapter of world innovation collectively. You may be taught extra about his background right here.

Share:

Upcoming Kotlin language options teased at KotlinConf 2025


At KotlinConf 2025, JetBrains teased among the new options which are coming to Kotlin within the subsequent replace to the language.

“From thrilling language and ecosystem updates and strong AI instruments that empower Kotlin improvement to main Kotlin Multiplatform milestones and a strategic partnership for the backend, KotlinConf 2025 introduced a wave of reports that set the tone for the yr forward,” JetBrains wrote in a weblog submit

In Kotlin 2.2, builders can sit up for guard circumstances in when-with-subject, multi-dollar interpolation, non-local break and proceed, and context parameters. 

JetBrains additionally revealed some language options that shall be added to future releases after 2.2, together with positional destructuring, name-based destructuring, enhanced nullability, wealthy errors, must-use return values, and ‘CheckReturnValue.’

The K2 compiler is now the default compiler in IntelliJ IDEA 2025.1, leading to vital decreases in compilation time. Based on JetBrains, utilizing K2 for the IntelliJ monorepo that features most JetBrains tasks and incorporates over 12 million strains of Kotlin code decreased compilation time by over 40%. 

JetBrains defined that having the K2 compiler prepared is enabling the Kotlin staff to be extra assured within the stability of compiler internals, permitting them to start work on designing a brand new steady compiler plugin API for the frontend. This can prolong the compiler with customized checks and code era. 

The corporate can also be persevering with improvement of Amper, an experimental Kotlin and JVM construct device. It now has a transparent configuration path, IDE assist, and error reporting. 

Updates to Kotlin Multiplatform embody a brand new plugin for IntelliJ IDEA and Android Studio, an experimental launch of Swift Export that’s coming to Kotlin 2.2.20, steady model of Compose Multiplatform for iOS, and Compose Scorching Reload. 

Different updates from KotlinConf 2025 embody:

  • Open-sourcing of Koog, a framework for creating AI brokers in Kotlin
  • Updates to Kotlin/Wasm, equivalent to quicker incremental builds, smaller output binaries, and a greater developer expertise
  • Partnership with the Spring staff to enhance Kotlin for server-side work
  • Ktor 3 updates like enhanced configuration assist, server-sent occasions, and WebAssembly assist
  • Kotlin Language Server Protocol (LSP) and a brand new Kotlin extension for Visible Studio Code are within the early phases of improvement