Encontrar

Pregunta
· 20 hr atrás

Stüssy and the Stüssy Pull: A Deep Dive into Streetwear Legacy

In the ever-evolving landscape of streetwear, few brands have achieved the legendary status of Stüssy. Born in the 1980s from the creative vision of Shawn Stüssy, this brand not only pioneered a new wave of casual yet bold fashion but also played a major role in shaping the modern streetwear aesthetic. Alongside its distinctive logo and influential designs, the term Stüssy pull has emerged in fashion culture, capturing both the physical act of wearing Stüssy apparel and the metaphorical “pull” or appeal the brand exerts over style-conscious individuals. This article explores the origins, growth, and cultural impact of Stüssy, as well as the meaning and relevance of the Stüssy pull in today’s fashion scene.


The Birth of Stüssy

Stüssy began in Laguna Beach, California, in the early 1980s, when Shawn Stüssy, a talented surfer and graphic artist, started customizing surfboards with his signature scrawl — a stylized handwritten logo inspired by his last name. To promote his surfboard business, he began printing the same logo on T-shirts, shorts, and caps.

These early apparel items were not initially intended as a fashion empire, but the bold, graffiti-like logo quickly attracted attention among surfers, skaters, and musicians. Stüssy’s ability to blend California surf culture with a streetwise, urban aesthetic set it apart from mainstream sportswear brands.


From Local Surf Shops to Global Fashion

In 1984, Shawn Stüssy teamed up with Frank Sinatra Jr. (no relation to the singer) to expand production and distribution. Together, they built the Stüssy brand into an international streetwear powerhouse.

By the late 1980s and early 1990s, Stüssy had transcended its surf roots, embracing influences from hip-hop, skateboarding, punk, and club culture. The brand was one of the first to understand that fashion could serve as a unifying language across different subcultures. Its designs incorporated eclectic elements: bold graphics, military-inspired outerwear, workwear silhouettes, and globally influenced patterns.


The Stüssy Logo: A Cultural Icon

The now-famous Stüssy logo, resembling a hand-tagged graffiti signature, became a symbol of authenticity and counterculture cool. Unlike overly polished corporate logos, Stüssy’s logo felt personal and rebellious, resonating with youth who valued individuality over conformity.

The logo’s simplicity made it endlessly adaptable — appearing on T-shirts, hoodies, hats, and even high-fashion collaborations. Owning a piece with that logo wasn’t just about clothing; it was about belonging to a global tribe of style-conscious rebels.


What is the Stüssy Pull?

The term “Stüssy pull” has two main interpretations in fashion circles:

  1. Literal meaning – Pulling on a Stüssy garment, such as putting on a hoodie or jacket, is sometimes colloquially referred to as doing a “Stüssy pull.” This reflects the physical act of choosing the brand as part of one’s outfit.
  2. Cultural meaning – More metaphorically, the “Stüssy pull” refers to the brand’s magnetic influence — its ability to attract fans, collaborators, and trendsetters. Stüssy has a certain pull in fashion culture that makes it desirable across generations, from original fans of the 80s to Gen Z streetwear enthusiasts today.

In both senses, the phrase embodies the unique blend of comfort, style, and cultural credibility that the brand represents.


Collaborations and the Global Reach

One of the major reasons for Stüssy’s enduring appeal — and its strong “pull” — has been its willingness to collaborate. Over the decades, Stüssy has partnered with an array of influential brands, designers, and artists, including Nike, Supreme, Comme des Garçons, Dior, and Levi’s.

These collaborations merge Stüssy’s streetwear DNA with other creative visions, often resulting in limited-edition drops that generate massive hype. The scarcity of such items reinforces the brand’s desirability, creating a cycle where the “pull” only grows stronger.


The Stüssy Tribe

During its rise in the 1990s, Stüssy cultivated a community known as the International Stüssy Tribe (IST). This group included DJs, skaters, artists, and influencers from around the world who embodied the brand’s spirit. Tribe members weren’t just models or ambassadors — they were active participants in shaping streetwear culture.

The IST concept reinforced the idea that wearing Stüssy was more than a fashion choice; it was a badge of membership in a creative, globally connected subculture. This community-driven approach continues to influence streetwear brands today.


Evolution into the Modern Era

In the 2000s, as streetwear entered the mainstream, many early brands struggled to retain authenticity. Stüssy, however, managed to navigate these changes by balancing its core identity with innovation.

Under new leadership after Shawn Stüssy stepped away from the brand in 1996, the company stayed true to its roots while embracing modern design trends. The resurgence of 90s-inspired streetwear in the 2010s and 2020s has brought Stüssy back into the spotlight, with celebrities, stylists, and influencers regularly featuring it in their wardrobes.


Stüssy in Pop Culture

From album covers to music videos, from underground skate films to high-profile runway shows, Stüssy’s visual identity has been embedded in pop culture for decades. Musicians like A$AP Rocky, Travis Scott, and Rihanna have been spotted wearing Stüssy, further cementing its cool factor.

In Japan, Stüssy enjoys cult-like status, with exclusive regional drops fueling intense demand. Its influence extends to art and design as well — Stüssy’s graphics and branding are frequently referenced in creative industries.


Why the Stüssy Pull Still Matters

The “Stüssy pull” matters today because it represents a rare combination of authenticity, history, and adaptability. Many brands can be trendy for a season, but Stüssy’s ability to reinvent itself without losing its core identity is what keeps its pull strong.

For young consumers, Stüssy offers a connection to the origins of streetwear, while for older fans, it provides a sense of nostalgia. The brand’s minimalist yet bold designs ensure that its clothing remains versatile and timeless.


Sustainability and Future Direction

As fashion moves toward sustainability, Stüssy has begun incorporating more eco-friendly materials and ethical production methods. While not as aggressive in sustainability marketing as some brands, Stüssy’s long-lasting quality and timeless designs inherently support a slower fashion cycle — items are meant to be worn for years, not discarded after a season.

Looking ahead, the brand is likely to continue blending global cultural influences with its iconic style, while maintaining the exclusivity and collaborative spirit that fuels the Stüssy pull.


Conclusion

Stüssy’s journey from a surfboard logo to a globally recognized streetwear icon is a testament to the power of authenticity, community, and cultural adaptability. The Stüssy pull — both as an act and as a metaphor — reflects the brand’s enduring ability to draw in fans and inspire creativity across generations.

In a world where trends can shift overnight, Stüssy remains a constant, reminding us that true style comes from staying rooted in one’s identity while embracing change. Whether you’re pulling on a classic Stüssy hoodie or being pulled toward the brand by its legacy, the connection is the same: it’s about belonging to a culture that values originality, self-expression, and timeless cool.

Comentarios (0)1
Inicie sesión o regístrese para continuar
InterSystems Official
· 21 hr atrás

InterSystems Platforms Update Q3-2025

Welcome to the 2025 third quarter update.

Last quarter, we had a few important announcements that are worth reiterating this quarter.

  • RHEL 10 support was added to IRIS 2025.1
  • 2025.3 will use OpenSSL 3 across all operating systems SUSE 15 sp6 will be the minimum OS for orgs using SUSE
  • The minimum CPU standards are going up in 2025.3
  • Older Windows Server operating systems will no longer be supported in 2025.3

If you’re new to these updates, welcome!  This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap. 

InterSystems IRIS Production Operating Systems and CPU Architectures

Minimum Supported CPU Architecture

In 2024, InterSystems introduced a minimum supported CPU architecture for all Intel- & AMD-based servers that allows us to take advantage of new CPU instructions to create faster versions of IRIS.  IRIS 2025.3 will update that list to require the x86-64-v3 microarchitecture level, which requires the AVX, AVX2, BMI, and BMI2 instructions.

  • For users with Intel-based systems, this means that Haswell and up will be required.
  • For users with AMD-based systems, this means that Excavator and up will be required while Piledriver & Steamroller will not be supported.

Are you wondering if your CPU will still be supported?  We published a handy article on how to look up your CPU’s microarchitecture in 2023.

 

Red Hat Enterprise Linux

  • Upcoming Changes
    • RHEL 10 - Red Hat released RHEL 10 on May 20th.  We released a version of IRIS 2025.1.0 that supports RHEL 10 on June 20th.
      • IRIS 2025.2 and up will support RHEL 9 & 10, which means that we stopped supporting RHEL 8.
  • Further reading: RHEL Release Page

Ubuntu

  • Current Update
    • Ubuntu 24.04.2 has just been released and minor OS certification has completed successfully.
  • Further Reading: Ubuntu Releases Page

 

SUSE Linux

  • Upcoming Changes
    • IRIS 2025.3+ will require SUSE Linux Enterprise Server 15 SP6 or greater – SLES 15 sp6 has given us the option to use OpenSSL 3 and, to provide you with the most secure platform possible, we’re going to change IRIS to start taking advantage of it.
    • In preparation for moving to OpenSSL 3 in IRIS 2025.3, there was no IRIS 2025.2 for SUSE.

Further Reading: SUSE lifecycle

 

Oracle Linux

  • Upcoming Changes
    • We’ve started testing Oracle Linux 10.  If history is to be our guide, it should work just fine with any version of IRIS that supports RHEL 10.
  • Further Reading: Oracle Linux Support Policy

 

Microsoft Windows

  • Previous Updates
    • Windows Server 2025 is now supported in IRIS 2025.1 and up.
  • Upcoming Changes
    • IRIS 2025.3+ will no longer support Windows Server 2016 & 2019.
    • Microsoft has pushed back the anticipated release date for Windows 12 yet again.  At this point, it’s best to stop speculating on when it’ll arrive.  Whenever it does arrive, we’ll start the process of supporting the new OS then.
  • Further Reading: Microsoft Lifecycle

 

AIX

  • Upcoming Changes
    • IBM released new Power 11 hardware in July.  We anticipate running the new hardware through the paces over the course of the late summer and early fall.  Look for a full update on our findings in the Q4’25 or Q1’26 newsletter.
  • Further Reading: AIX Lifecycle

 

Containers

  • Previous Updates
    • We changed the container base image from Ubuntu 22.04 to Ubuntu 24.04 with IRIS 2024.2
    • We’re considering changes to the default IRIS container to, by default, have internal traffic (ECP, Mirroring, etc) on a different port from potentially externally facing traffic (ODBC, JDBC, etc).  If you have needs in this area, please reach out and let me know.

 

InterSystems IRIS Development Operating Systems and CPU Architectures

MacOS

  • Recent Changes
    • IRIS 2025.1 adds support for MacOS 15 on both ARM- and Intel-based systems.

 

InterSystems Components

  • Upcoming Releases
    • InterSystems API Manager 3.10 has been released.  Users of earlier versions of the API manager will need an updated IRIS license key to use version 3.10.
    • InterSystems Kubernetes Operator 3.8 has been released.

Caché & Ensemble Production Operating Systems and CPU Architectures

  • Previous Updates
    • A reminder that the final Caché & Ensemble maintenance releases are scheduled for Q1-2027, which is coming up sooner than you think.  See  Jeff’s excellent community article for more info.

InterSystems Supported Platforms Documentation

The InterSystems Supported Platforms documentation is the definitive source information on supported technologies.

 

… and that’s all folks.  Again, if there’s something more that you’d like to know about, please let us know.

1 nuevo comentario
Comentarios (1)1
Inicie sesión o regístrese para continuar
Artículo
· 22 hr atrás Lectura de 8 min

Dynamic Entities and %JSON

Dynamic Entities (objects and arrays) in IRIS are incredibly useful in situations where you are having to transform JSON data into an Object Model for storage to the database, such as in REST API endpoints hosted within IRIS. This is because these dynamic objects and arrays can easily serve as a point of conversion from one data structure to the other.

Dynamic Objects

Dynamic Objects are very similar to the standard ObjectScript object model you get when you create a new instance of a class object, but with some key differences:

  • Dynamic objects have no real type, other than being a DynamicObject or DynamicArray
  • They cannot inherit or be morphed directly into a class object
  • They're much easier to create and come with a host of built-in functions for managing and manipulating them

To create a dynamic object, it's as easy as:

set obj = {}

We now have "obj" as a dynamic object. If you've used Javascript/Typescript before, this will look very similar. This connection to Javascript becomes very important when talking about arrays later.

With our new dynamic object, we can add and manipulate properties of this object just like we can with class objects, which the added flexibility of not having to predefine properties that the object can use.

set obj.message = "This is a test message"
set obj.num = 4
set obj.test = 1

So far, this all looks similar to the standard ObjectScript model. Here's where things get interesting:

set obj.subobj = {}

Now, we've created a completely new dynamic object within our existing dynamic object, with all the same functionality as the existing one.

set obj.subobj.message = "This is a message on the sub-object."

As you can see, we can string the dot notation together to access properties of sub-objects on a dynamic object. We can also assign dynamic objects as sub-objects on an existing object:

set obj1 = {}
set obj1.message = "This is object 1"
set obj2 = {}
set obj2.message = "This is a different object, object 2"
// Set the "subobj" property of obj1 to the entire obj2 object
set obj1.subobj = obj2

// Set the "obj1" on the original "obj" object to the entire "obj1" object, which
// also now includes "obj2"
set obj.obj1 = obj1

You can also use the %Set(), %Get(), and %Remove() methods on the object (and arrays) to manipulate the data stored in object properties, which is especially useful for properties that have long names. %Remove() is the only real way to remove a property or element from a dynamic object or array.

Dynamic Arrays

We've talked about dynamic objects a lot up to this point, but what about dynamic arrays?

These work very similarly to the objects. To create one:

set array = [1,2,"three",true]

Notice that rather than creating the empty array first and then adding items to it, I've given it a starting value. This can also be done with objects:

set test = {"message":"Test message","num":4}

Also notice that when defining objects this way, the property names must be quoted or else you will get a syntax error.

NOTE: It is CRITICAL to understand that dynamic arrays will be 0-indexed, as opposed to standard IRIS arrays which are 1-indexed. All dynamic arrays start at index 0.

Getting back to arrays, once you have your array you have access to some standard methods for interacting with it, such as:

  • %Push(element) - Add a new element to the end of the existing array
  • %Pop() - Remove and return the last element in the array
  • %Size() - Get the number of elements currently in the array
  • %IsDefined(element number) - Returns whether or not the given key (array index number) exists in the array.

 

Combining Objects and Arrays

As is standard in JSON, you can have an object with properties containing arrays and arrays that contain a set of objects. As shown above when setting sub-objects onto other objects, you can do the same for dynamic arrays as well.

Adding an array to an object:

set obj = {"message":"This is a message"}
set array = [1,2,3,4,5]

set obj.array = array

Adding an object to an array:

set newobj = {"message1":"Message 1", "message2":"Message 2"}
set newarray = [1,2,3]
do newarray.%Push(newobj)

 

JSON Conversion and Formatting

More than likely, in a real setting these entities are likely to be quite large and difficult to mentally keep track of what properties are where, and what is in an array.

For instance, let's say we have this code:

set testObj = {}
set testObj.message = "This is a test message"
set testObj.num = 4
set subobj = {}
set subobj.message = "This is a message on the sub-object."
set testObj.subobj = subobj

set array = [1,2,3,4,5]
set newobj = {"six":6}
do array.%Push(newobj)

set testObj.array = array

There is a lot going on here with a mix of arrays and objects that make it difficult to mentally map out. To help with this, we can make use of the built in %ToJSON() method which will convert the object into a properly formatted JSON string:

write testObj.%ToJSON()

Which will produce this output:

{"message":"This is a test message","num":4,"subobj":{"message":"This is a message on the sub-object."},"array":[1,2,3,4,5,{"six":6}]}

This is a good start, but it's not very readable. Let's have a look at the %JSON.Formatter class, which has a Format method. To use this, we can create a new instance of %JSON.Formatter, and then call the Format method which takes the JSON string as an input.

set formatter = ##class(%JSON.Formatter).%New()
do formatter.Format(testObj.%ToJSON())

Which gives us a nicely expanded, properly formatted JSON object display:

{
  "message":"This is a test message",
  "num":4,
  "subobj":{
    "message":"This is a message on the sub-object."
  },
  "array":[
    1,
    2,
    3,
    4,
    5,
    {
      "six":6
    }
  ]
}

 

 

Working with True/False in Dynamic Objects

Standard IRIS does not understand the keywords "true" or "false" typically. To represent these values in IRIS ObjectScript, we must use 1 or 0. 

However, when working with dynamic entities, you begin crossing more into Javascript territory which uses "true" and "false" just fine, but there are some limitations.

When defining an object or array, if you're working with a value or set of values contained within the [ ] or { }, then you can set properties or elements as "true" or "false" with no problem. These values will be represented as the Javascript representation of true and false when defined in this way. Outside of that context, IRIS will convert these values to 1 or 0 when displaying them in an ObjectScript context.

If, however, you're using dot syntax to manually set a property on an object, you can only use the IRIS syntax of 1 or 0, otherwise IRIS will throw a syntax error.This has the unfortunate side effect that the Javascript representation sees 1 and 0 as valid values, but with a very different meaning than what may be intended.

To work around this, you can use the %Set(key, default, type) method which takes the key you want to set (object property or array element), an optional default value, and then a string type value, which can be "null", "string", "number", or most importantly, "boolean". When using the %Set() method with a type of "boolean", the 1 and 0 values are then converted to the Javascript representation of "true" and "false". The %Push() method on dynamic arrays can also take a type parameter in the same way. Arrays also have the %Set() method to set a value of a given array index.

See the documentation on %Set() and %Push() for details.

 

Converting a JSON string into a dynamic object or array

So, this is all great when we want to create a JSON object to perhaps send as a response to a REST API request. Simply setup a dynamic object with all the appropriate properties, and write it out and the downstream system will see it as a proper JSON object.

But, what about that initial request that has a POST body in JSON format? How can that be converted from the JSON string into a dynamic object or array?

Similar to the %ToJSON() method we used earlier, there is also a %FromJSON() method which takes the JSON string as the parameter and sets up the object/array according to the JSON definition.

For example, if we use the same JSON string we got earlier:

set jsonString = {"message":"This is a test message","num":4,"subobj":{"message":"This is a message on the sub-object."},"array":[1,2,3,4,5,{"six":6}]}

We can convert this into an object like this:

set obj = {}.%FromJSON(jsonString)

This will set the "obj" variable to be the dynamic object representation of the given JSON.

Now, let's say we have an array of books that we need to process:

[
	{
		"id": 1,
		"title": "ObjectScript for Dummies",
		"type": "paperback"
	},
	{
		"id": 2,
		"title": "Intermediate ObjectScript",
		"type": "paperback",
	},
	{
		"id": 3,
		"title": "Advanced ObjectScript",
		"type": "hardback",
	},
	{
		"id": 4,
		"title": "IRIS Embedded Python and You",
		"type": "paperback",
	},
]

 Since we're getting this data from another system, we have no way of knowing how many elements will be in this list when we get it. Thankfully, both dynamic arrays and objects are iterable! 

We can use the %GetIterator() method coupled with the %GetNext(.key,.value) method to iterate through each object in the array, or each top-level property of an object, to access the individual data.

set booksJSON = set booksJSON = "[{""id"": 1,""title"": ""ObjectScript for Dummies"",""type"": ""paperback""},{""id"": 2,""title"": ""Intermediate ObjectScript"",""type"": ""paperback""},{""id"": 3,""title"": ""Advanced ObjectScript"",""type"": ""hardback""},{""id"": 4,""title"": ""IRIS Embedded Python and You"",""type"": ""paperback""}]"
set booksArray = [].%FromJSON(booksJSON)

set bookIter = booksArray.%GetIterator()

while bookIter.%GetNext(.key,.value) {
    write !,"Book ",value.id,": ",value.title," (",value.type,")"
}

Which presents our request payload in a nice display list:

Book 1: ObjectScript for Dummies (paperback)
Book 2: Intermediate ObjectScript (paperback)
Book 3: Advanced ObjectScript (hardback)
Book 4: IRIS Embedded Python and You (paperback)

 

Documentation

For more information about how these entities can be used, please read the IRIS guides and class documentation:

Creating and Modifying Dynamic Entities
%Library.DynamicObject
%Library.DynamicArray

1 nuevo comentario
Comentarios (1)2
Inicie sesión o regístrese para continuar
Comentarios (0)1
Inicie sesión o regístrese para continuar
Pregunta
· 23 hr atrás

Removal of Provider.Individual.Addresses from Local.PD.DataGram.Main.Unified using %clearFields

Is there a way to Remove specific all Addresses from a Provider.Individual.Address before reinserting the Addresses from an HL7 message in Provider Directory?

Most fields we can call %clearFields() however since Addresses come from multiple locations we need to isolate and treat Addresses from this HL7 source as a snapshot.

Thanks

Scott

Comentarios (0)1
Inicie sesión o regístrese para continuar