#Remove Duplicate Characters From a String
Explore tagged Tumblr posts
Text
A Baby Witch's First Grimoire
Grimoire Entry 2 - Creating Sigils
Ah sigils— my bread and butter. I've been working with sigils for a long time and have made many throughout the years for various purposes. Sigils are extremely beginner friendly, I used to use them without even realizing it. So what exactly are sigils you may ask? Sigils are a symbolic representation of our desires. They're used to hold our intent and can range from simple shapes to complex designs. Usually all it takes is focusing on your intention, designing the sigil, and charging it. It's a powerful tool that any beginner can pick up and start using with little to no knowledge of witchcraft beyond the basics.
So, how do I make sigils?
Well there's two common methods for making sigils:
Consonant Letters
An easy way to create a sigil is by using consonants. This method is simple and easy for those who don't have much talent in the art department. To create a sigil using the consonant letters method you only need 1 thing— your intention. First start by writing down your intention, more precise intentions work best but general intentions work just fine. Next, remove the vowels and duplicate letters. For example, if I was making a sigil for wealth the final string of characters would be WLTH. Once you have your string of characters design a sigil that uses all of them. This could be as simple as overlaying all the letters or just connecting the letters together. Finally charge your sigil with your intention via any means you prefer.
Shape Language
Shape language is the more complex method of making sigils. It requires a deeper knowledge of witchcraft, knowledge of shape language, and at least some talent in the art department. Just as you would using the consonant letters method, start by writing down your intention. This method is easiest when you have a very specific intention. Next select a set of shapes that relates to your intention, and design your sigil. Finally charge your sigil just as you would normally via any means you prefer.
If you like posts like this feel free to check out my A Baby Witch's First Grimoire Master Post for more information!
#sigil magic#sigils#baby witch#witch stuff#pagan#witchcraft#magick#paganism#wicca#witchblr#witch#witches#witch community#A Baby Witch's First Grimoire
140 notes
·
View notes
Text
since i keep missing birthdays from that whoevers kins (or greatly enjoys) a character the hardest shares (or gets to pick) their birthday post i made a big list for reference. theres duplicates because the first rule of being born is to dance like no ones watching and never forget to be yourself 👍
if youd like me to add/edit/remove something just let me know! i still have a few in my queue from earlier this year but im not gonna stress about forgetting any or scheduling more unless i feel like it. i encourage you to queue one if youd like though!
birthdays below 🎉
January
12th, skitter-queen: Melancholy (Twig) vat release
23rd, heart-shaped-pupa: Noelle Meinhardt
27th, ganurath: Natalie Matteson
February
1st, thesternest: String Theory
3rd, 753398445a: Circus
9th, imnotverybright: Rachel Lindt
16, ameliadallon: Amelia Dallon
March (lisalindtstillons: Rachel)
14th, xamdsona: Number Man
April
1st, l-wilbourn: Lisa Wilbourn
10th, svetakarelia: Sveta Karelia
13th, hungrychoir: Aisha Laborn
16th, vikugnavikugna: Perdition
May
June
6th, smuglysasha: Rachel Lindt
11th, heyitschartic: Bonesaw
15, ewingstan: Krouse
21st, trantares: Victoria Dallon
July
7th, 42069gay: Alexandria
8th, cpericardium: Number Man
13th, rainfrazier: Rain Frazier (Ward)
26th, hopeinpithos: Dragon definitely born and not compiled
29th, that-one-empty-skull: Leet
August
1st, uninvited-eon: Newter
2nd, cleopatraphouse: Finale (Ward)
11th, stillons: Ashley Stillons (Ward) vat release
18th, henghost: Amy Dallon
25th, ragingcitrustree: Crystal Pelham
September
7th, tranz-regent: Alec Vasil
11th, beckyhotgirl: Cherie Vasil
28th, jewish-skitter: Lisa Wilbourn
October
2nd, crunchbuttsteak: Charlotte
21st, askmannequin: Mannequin
31st, parahumans-online: Ashley Stillons (Ward) claims it is this day
November
13th, zarohk: Theo Anders
December
#i marked ones where just the month was listed but not zodiac sign because that got too confusing#parahumans#wormblr#my favorite part of putting this together was when someone with a persons name as their url picked the characters bday. like. yea. tracks#worm
65 notes
·
View notes
Text
[ ⛩️ ] cursekingly - a roleplay blog for sukuna ryoumen of jujutsu kaisen. written by lucifer.
This is a private & selective roleplay blog for Sukuna Ryomen from the JJK series. Canon compliant and/or canon divergent at my own choice and discretion. By default, I tend to write him as incarnating once again post-series, but into a body of his own and not bound to Yuji or Megumi. Because of this, I tend to write him in his true form by default; however, this can change, depending.
Mutuals only. I only write with people I follow and who follow me in return. Slow activity. I am picky over who I write with. I have no tolerance for fandom drama and will therefore remain only in my own quiet space with those whom I decide to write with.
I have no intentions to follow duplicates or interact with other versions of Sukuna. I prefer to keep my interpretation my own and don't want to be influenced by how someone else reads or perceives his character.
If you copy, steal, or repost my content, I will hardblock you. Art, music, and quotes are fine to reblog, as are memes or inbox ask prompts. Original posts made by me are not to be reblogged by personals. Roleplay thread reposting will get you hard blocked and I will not remove it.
Due to the nature of Sukuna's character and how he is, this blog is only for mature audiences. I will block you if you are underage. I do not use read mores but I do tag all common triggers plus all references to gore & cannibalism. There will be a lot of both of those. If those make you squeamish, don't follow me.
While I am generally indifferent to fictional content, I do not tolerate sexism, racism, or transphobia. I also don't bother with callouts; nine times out of ten, they're bull. I will block you if you try to force drama my way.
Godmoding Sukuna is not going to work, ever. There are very few people who can ever go toe to toe with him and even then, he's one of the most powerful characters in JJK with almost no equal; the only one who is the exception to this is Gojo Satoru.
All graphics & icons on this blog are created by me; templates are credited when used for self promos. Do not take any of my graphics for your own use.
Shipping is chemistry based & always will be. All ships must also grow organically through roleplay; I will not force Sukuna into a relationship and any interest must be something that is mutual on both parts. If shipping does occur, it will be a very long process to get anywhere.
That being said, I have zero issues writing Sukuna having sexual relations with someone. Romance will take work. Sex is a base urge and can be done without strings being attached. NSFW content will abound on this blog and will always be tagged.
Do not complain to me about anything you see on my blog. I tag everything, including my shitposts, so I am not responsible for your discomfort if you blacklist any of my tags and then choose to click on something that's on your blacklist. My blog's content is there to make me happy and I will tell you to blacklist something if you don't enjoy what I have tagged. You can also unfollow me at any time however you want.
carrd. art credit.
2 notes
·
View notes
Text
Kotlin: 100 Simple Codes
Kotlin: 100 Simple Codes
beginner-friendly collection of easy-to-understand Kotlin examples.

Each code snippet is designed to help you learn programming concepts step by step, from basic syntax to simple projects. Perfect for students, self-learners, and anyone who wants to practice Kotlin in a fun and practical way.
Codes:
1. Hello World
2. Variables and Constants
3. If-Else Statement
4. When Statement (Switch)
5. For Loop
6. While Loop
7. Functions
8. Return Value from Function
9. Array Example
10. List Example
===
11. Mutable List
12. Map Example
13. Mutable Map
14. Class Example
15. Constructor with Default Value
16. Nullable Variable
17. Safe Call Operator
18. Elvis Operator
19. Data Class
20. Loop with Index
===
21. Lambda Function
22. Higher-Order Function
23. Filter a List
24. Map a List
25. String Interpolation
26. String Templates with Expressions
27. Read-Only vs Mutable List
28. Check Element in List
29. Exception Handling
30. Null Check with let
===
31. For Loop with Step
32. For Loop in Reverse
33. Break in Loop
34. Continue in Loop
35. Check String Empty or Not
36. Compare Two Numbers
37. Array Access by Index
38. Loop Through Map
39. Default Parameters in Function
40. Named Arguments
===
41. Range Check
42. Function Returning Unit
43. Multiple Return Statements
44. Chained Method Calls
45. Function Inside Function
46. Function Expression Syntax
47. Array Size
48. String to Int Conversion
49. Safe String to Int Conversion
50. Repeat Block
===
51. Sealed Class
52. Object Expression (Anonymous Object)
53. Singleton using Object Keyword
54. Extension Function
55. Enum Class
56. Use Enum in When Statement
57. Type Alias
58. Destructuring Declarations
59. Companion Object
60. Simple Interface Implementation
===
61. Abstract Class
62. Lateinit Variable
63. Initialization Block
64. Secondary Constructor
65. Nested Class
66. Inner Class
67. Generic Function
68. Generic Class
69. Custom Getter
70. Custom Setter
===
71. String Equality
72. Loop with Range Until
73. Using Pair
74. Triple Example
75. Check Type with is
76. Smart Cast
77. Type Casting with as
78. Safe Casting with as?
79. Loop Through Characters of String
80. Sum of List
===
81. Min and Max of List
82. Sort List
83. Reverse List
84. Count Items in List
85. All / Any Conditions
86. Check if List is Empty
87. Join List to String
88. Take and Drop
89. Zipping Lists
90. Unzipping Pairs
===
91. Chunked List
92. Windowed List
93. Flatten List
94. FlatMap
95. Remove Duplicates
96. Group By
97. Associate By
98. Measure Execution Time
99. Repeat with Index
100. Create Range and Convert to List
===
0 notes
Video
youtube
LEETCODE PROBLEMS 1-100 . C++ SOLUTIONS
Arrays and Two Pointers 1. Two Sum – Use hashmap to find complement in one pass. 26. Remove Duplicates from Sorted Array – Use two pointers to overwrite duplicates. 27. Remove Element – Shift non-target values to front with a write pointer. 80. Remove Duplicates II – Like #26 but allow at most two duplicates. 88. Merge Sorted Array – Merge in-place from the end using two pointers. 283. Move Zeroes – Shift non-zero values forward; fill the rest with zeros.
Sliding Window 3. Longest Substring Without Repeating Characters – Use hashmap and sliding window. 76. Minimum Window Substring – Track char frequency with two maps and a moving window.
Binary Search and Sorted Arrays 33. Search in Rotated Sorted Array – Modified binary search with pivot logic. 34. Find First and Last Position of Element – Binary search for left and right bounds. 35. Search Insert Position – Standard binary search for target or insertion point. 74. Search a 2D Matrix – Binary search treating matrix as a flat array. 81. Search in Rotated Sorted Array II – Extend #33 to handle duplicates.
Subarray Sums and Prefix Logic 53. Maximum Subarray – Kadane’s algorithm to track max current sum. 121. Best Time to Buy and Sell Stock – Track min price and update max profit.
Linked Lists 2. Add Two Numbers – Traverse two lists and simulate digit-by-digit addition. 19. Remove N-th Node From End – Use two pointers with a gap of n. 21. Merge Two Sorted Lists – Recursively or iteratively merge nodes. 23. Merge k Sorted Lists – Use min heap or divide-and-conquer merges. 24. Swap Nodes in Pairs – Recursively swap adjacent nodes. 25. Reverse Nodes in k-Group – Reverse sublists of size k using recursion. 61. Rotate List – Use length and modulo to rotate and relink. 82. Remove Duplicates II – Use dummy head and skip duplicates. 83. Remove Duplicates I – Traverse and skip repeated values. 86. Partition List – Create two lists based on x and connect them.
Stack 20. Valid Parentheses – Use stack to match open and close brackets. 84. Largest Rectangle in Histogram – Use monotonic stack to calculate max area.
Binary Trees 94. Binary Tree Inorder Traversal – DFS or use stack for in-order traversal. 98. Validate Binary Search Tree – Check value ranges recursively. 100. Same Tree – Compare values and structure recursively. 101. Symmetric Tree – Recursively compare mirrored subtrees. 102. Binary Tree Level Order Traversal – Use queue for BFS. 103. Binary Tree Zigzag Level Order – Modify BFS to alternate direction. 104. Maximum Depth of Binary Tree – DFS recursion to track max depth. 105. Build Tree from Preorder and Inorder – Recursively divide arrays. 106. Build Tree from Inorder and Postorder – Reverse of #105. 110. Balanced Binary Tree – DFS checking subtree heights, return early if unbalanced.
Backtracking 17. Letter Combinations of Phone Number – Map digits to letters and recurse. 22. Generate Parentheses – Use counts of open and close to generate valid strings. 39. Combination Sum – Use DFS to explore sum paths. 40. Combination Sum II – Sort and skip duplicates during recursion. 46. Permutations – Swap elements and recurse. 47. Permutations II – Like #46 but sort and skip duplicate values. 77. Combinations – DFS to select combinations of size k. 78. Subsets – Backtrack by including or excluding elements. 90. Subsets II – Sort and skip duplicates during subset generation.
Dynamic Programming 70. Climbing Stairs – DP similar to Fibonacci sequence. 198. House Robber – Track max value including or excluding current house.
Math and Bit Manipulation 136. Single Number – XOR all values to isolate the single one. 169. Majority Element – Use Boyer-Moore voting algorithm.
Hashing and Frequency Maps 49. Group Anagrams – Sort characters and group in hashmap. 128. Longest Consecutive Sequence – Use set to expand sequences. 242. Valid Anagram – Count characters using map or array.
Matrix and Miscellaneous 11. Container With Most Water – Two pointers moving inward. 42. Trapping Rain Water – Track left and right max heights with two pointers. 54. Spiral Matrix – Traverse matrix layer by layer. 73. Set Matrix Zeroes – Use first row and column as markers.
This version is 4446 characters long. Let me know if you want any part turned into code templates, tables, or formatted for PDF or Markdown.
0 notes
Text
Version 619
youtube
windows
zip
exe
macOS
app
linux
tar.zst
I had a good week. There's a mix of several sorts of work, and duplicates auto-resolution gets more tools.
Your client is going to clean its tags on update. If you have a lot of tags (e.g. you sync with the PTR), it will take twenty minutes or more to complete.
full changelog
Linux build
The Linux build had a problem last week at the last minute. Github retired the old runner, and I missed the news. I have rolled out a test build that uses 22.04 instead of 20.04, and several users report that the build boots, does not seem to need a clean install, and may even fix some things.
If you use the Linux build, please update as normal this week. If the build does not boot, please try doing a clean install, as here: https://hydrusnetwork.github.io/hydrus/getting_started_installing.html#clean_installs
If today's release does not work at all, not even a fresh extract to your desktop, please let me know the details. If this happens to you, you might like to consider running from source, which solves many Linux OS-compatibility problems: https://hydrusnetwork.github.io/hydrus/running_from_source.html
I've now got a job to check for runner news in future, so this sudden break shouldn't happen again.
misc work
AVIF rendering broke last week, sorry! Should be fixed now, but let me know if it sometimes still fails for you.
I updated the tag-cleaning filter to remove many weird unicode characters like 'zero-width space' that slips in usually because of a bad decode or parse or copy-paste transliteration. On update, your client will scan all of its tags for 'invalid tags', renaming anything bad that it finds. If you sync with the PTR, this will take at least twenty minutes and will likely discover 30,000+ invalid tags--don't worry too much about it. If you want to see exactly what it found, it logs everything.
If you use sidecars for export, I moved the hardcoded 'sort results before sending them out' job to the string processor that's actually in each sidecar. Every sidecar will get this new processing step on update. They work as they did before, but if you do want the results sorted in a particular different way, you can now change it.
duplicates auto-resolution
I had success adding more tools to duplicates auto-resolution. You can now do "A has at least 2x the num_pixels as B" comparisons for some basic metadata types, and also say "A and B have/do not have the same filetype".
I have enabled all the UI and added two new suggested rules for clearing out some pixel-perfect duplicates. If you have been following along, please check these out and let me know what you think. I do not recommend going crazy here, but if you are semi-automatic, I guess you can try anything for fun.
Odd bug I've just noticed while playing around: sometimes, after editing existing rules, the list stops updating numbers for that edited rule. Closing and opening a new duplicates processing page fixes it. I'll fix it properly for next week.
Next step, so we can push beyond pixel-perfect duplicates, is to figure out a rich similarity-measuring tool that lets us automatically differentiate alternates from duplicates. I'm thinking about it!
next week
I might try this 'A is > 99.7% similar to B' tech for duplicates auto-resolution. I've got some IRL that might impact my work schedule in a couple weeks, so I'll otherwise just do some small jobs.
0 notes
Text
Exploring Python's Core Data Structures: A Beginner’s Guide
Have you ever thought of data structures as something complicated and full of code? Well, not really! Let's break down the basic Python data structures with easy-to-understand examples and show how they can make your coding more efficient.
1. Lists: The Handy Shopping Cart
Think of a List as your shopping cart. You can put any item in it, remove things, and even change the order of items whenever you like. It's like an ever-changing basket of goods.
· Key Features:
Ordered (items stay in the order you add them)
Mutable (you can change, add, or remove elements)
· Practical Example: Want to keep track of groceries you're buying? A list is perfect for that.
· Time Complexity:
Adding an item at the end: O(1) (fast)
Removing or adding an item somewhere in the middle: O(n) (slower for large lists)
Use Case: Great for when you need to store items that change over time, like a to-do list, shopping cart, or a collection of names.
2. Tuples: The Fixed Book Collection
A Tuple is like your favorite book collection at home. Once you've selected the books, you don’t change them. It's an immutable collection—you can't add new books or take one out, but you can still read them anytime.
· Key Features:
Ordered (like a list, but can't be changed after creation)
Immutable (no changes after they're created)
· Practical Example: Perfect for holding things you don't want to change, like your birthdate or the fixed coordinates of a city (latitude, longitude).
· Time Complexity:
Accessing any element: O(1) (very fast)
No time complexity for modification (because you can’t modify them!)
Use Case: Use tuples when you need a fixed collection of data. Example: geographic coordinates, dates, and other fixed sets of information.
3. Sets: The Unique Collection of Friends
A Set is like your group of friends at a party. You don’t allow duplicates—each friend is unique! Sets automatically ignore any repeated names you try to add.
· Key Features:
Unordered (don’t care about the order of items)
Mutable (you can add or remove items, but no duplicates are allowed)
· Practical Example: If you want to keep track of unique visitors to your website, a set is perfect because it automatically removes duplicate entries.
· Time Complexity:
Adding and removing items: O(1) (very fast)
Checking if an item is in the set: O(1)
Use Case: Sets are ideal for situations where you only care about unique items, like when you're checking for unique words in a text, or distinct entries in a survey.
4. Dictionaries: The Address Book
A Dictionary is like an address book. You store someone's name (the key) and their phone number (the value). You can find a person's phone number very quickly by looking them up by name.
· Key Features:
Unordered (no specific order of keys and values)
Mutable (you can add, remove, or change values)
· Practical Example: Perfect for when you need to store data in pairs, like a contact list where each name is associated with a phone number.
· Time Complexity:
Accessing a value by key: O(1) (fast)
Inserting or removing a key-value pair: O(1) (fast)
Use Case: Dictionaries are great for storing mappings of one thing to another, like a contact list, employee ID _ name mapping, or any key-value pairing.
5. Strings: The Immutable Text
A String is like a sentence. Once written, you can read it and use it, but you can't change the individual letters directly. Instead, if you need to change something, you must create a new string.
· Key Features:
Ordered (the letters have a defined position)
Immutable (you can't change individual characters once created)
· Practical Example: Used for storing text, like a user’s name or a sentence from a book.
· Time Complexity:
Accessing a character by index: O(1)
Modifying a string (creates a new string): O(n) (since a new string must be created)
Use Case: Strings are used to store and manipulate textual data, like messages, names, or descriptions.
Python's core data structures (Lists, Tuples, Sets, Dictionaries, and Strings) are easy to work with, highly efficient, and help you solve real-world problems. Whether you need a flexible, changeable list of items or a fixed, immutable tuple, Python has got you covered.
What’s Next?
Stay tuned! Next, we’ll dive into Arrays—another powerful container type. We’ll also explore advanced data structures and lesser-known but powerful functions from Python’s collections module to make your code even more efficient.
Feel free to comment or share your favorite Python data structure! What’s your use case? 📝
0 notes
Text
Optimizing URL Structures: Tools and Techniques to Help Employees Succeed
Creating a winning digital strategy involves several key components, one of which is the often-overlooked aspect of URL structure. Whether you're an SEO beginner or an experienced marketer in Salt Lake SEO, crafting an optimized, user-friendly URL can work wonders for your website's ranking and audience engagement.
This guide explains why structured URLs matter, lists the best tools for optimization, and offers actionable tips to help your team implement effective URL strategies.
Why URL Structure Matters for SEO
A properly structured URL serves as a roadmap for both users and search engines. Here’s how it impacts your SEO efforts:
Improved Crawlability: Search engines use URLs to crawl and index your website, so a well-structured URL helps your content rank faster.
Boosted Click-Through Rates (CTR): URLs that are simple and readable encourage users to click, compared to ones filled with confusing alphanumeric strings like "/xyz123".
Enhanced User Experience: A clear, concise URL gives users immediate context about the content they're about to view.
Keyword Relevance: Including keywords in URLs reinforces the content of your pages for search engines like Google.
Optimizing URL structures isn’t just for technical SEO experts; any digital marketer or business owner can (and should) adopt these simple strategies.
Tools for Building Optimized URLs
The right tools can simplify the URL optimization process. Here are some of the best options, each suited for different needs:
1. Yoast SEO
Primarily a WordPress plugin, Yoast SEO offers real-time recommendations for optimizing URLs. It flags long URLs, shows keyword relevance, and integrates seamlessly with other website functions.
2. Screaming Frog
This web crawler tool scans your entire website and analyzes your existing URL structure for duplicate content, broken links, or overly long URLs. Screaming Frog is a must-have for larger websites.
3. Ahrefs
Salt Lake SEO professionals love Ahrefs for its powerful suite of tools, including URL optimization. Use Ahrefs’ Site Audit feature to evaluate how keyword-rich and user-friendly your URLs are compared to competitors.
4. Google Search Console
This free tool from Google helps you understand how search engines perceive your site. Use it to monitor URL performance and detect crawling issues that could hinder rankings.
5. Ubersuggest
Created by marketing guru Neil Patel, Ubersuggest is beginner-friendly and helps identify high-performing keywords to integrate into your URL structure.
These tools make it easy for your team to streamline URLs without getting bogged down in technical jargon. Now that you’re equipped, it’s time to learn the techniques.
Techniques for Effective URL Optimization
1. Keep URLs Short and Simple
Lengthy URLs confuse both users and search engines. Aim for around 50-60 characters or fewer, sticking to words that add context to your page's content. Use hyphens (-) instead of underscores (_) for word separation, as the former is preferred by search algorithms.
Example:
Bad URL - `/category/item1234extra-details-unnecessary-info`
Optimized URL - `/fresh-coffee-beans`
2. Use Relevant Keywords
Including primary keywords in your URL can improve search visibility and user trust. Be cautious not to overstuff it—use only one or two essential keywords.
Example:
If your focus is Salt Lake SEO, an optimized URL would look like this:
`/salt-lake-seo-services`
3. Avoid Dynamic Parameters
Dynamic URLs with parameters like “?id=123&sort=ASC” can confuse users and hinder indexation by search engines. Whenever possible, convert dynamic URLs into static versions that are much cleaner and easier to interpret.
4. Remove Stop Words
Common words like “and,” “the,” or “of” should be avoided in URLs, as they dilute keyword relevance and make URLs unnecessarily long.
Example:
Original URL - `/the-best-ways-for-seo-in-salt-lake`
Optimized URL - `/best-seo-ways-salt-lake`
5. Leverage HTTPS
Not only does HTTPS offer better security protocols, but search engines give ranking preference to secure sites. Ensure your URLs reflect this by migrating to HTTPS via an SSL certificate.
6. Set a Consistent URL Structure
Create a hierarchy that makes sense for your audience. Group related content under parent categories and subcategories, keeping URLs uniform for all pages on the site.
Example:
`/blog/seo-tips` for SEO-related blog articles.
`/services/salt-lake-seo` for service pages.
7. Canonicalize Duplicate URLs
Duplicate URLs confuse search engines about which pages to rank first. Resolve this by specifying a canonical URL for your preferred version using meta tags or Google tools.
Empowering Your Employees with URL Optimization
One of the biggest hurdles in implementing SEO strategies like URL optimization is ensuring everyone on your team is equipped and aligned. Here's how to accomplish this effectively:
Training Sessions: Invest in training sessions focusing on tool usage and SEO fundamentals for team members.
Clear Guidelines: Provide a checklist or documentation that outlines your URL best practices to maintain consistency.
Collaborative Tools: Use task management software like Trello to coordinate efforts between teams, especially marketing and IT departments.
SEO isn't just a task for specialists—it’s a collaborative effort that involves digital marketers, web developers, and content creators working together.
The Impact of Solid URL Structures
A well-optimized URL structure may seem like a small detail, but it can have lasting effects on your website’s success. Improved rankings, easier navigation, and a better user experience are just the tip of the iceberg. And if you're competing in markets like Salt Lake SEO, these techniques are essential to gaining a competitive edge.
If you haven’t already, start analyzing your site’s current URLs. Pick one or two tools from the list above and start experimenting. Before long, you’ll witness the power of a well-crafted URL in driving traffic and engagement.
0 notes
Text
to be a woman is to perform
My face is two unlit cigarettes long. I’ve been breathing the same smoke and air for days now. My bones are weak and I wish I could snap them like a cigarette.
I’ve made my room a prison cell and I haven’t left it for days. I breathe the same air because I’m in a panopticon world and I don’t know when the danger’s eyes are on me. So, I live in the constant fear of the unknown.
When we talk about the concept of gender performativity, we talk about how, in Judith Butler’s words, “gender proves to be performance— that is, constituting the identity it is purported to be. In this sense, gender is always a doing, though not a doing by a subject who might be said to pre-exist the deed”
Society lit the cigarette of gender when I was born. I smoke it out and leave no ash. I breathe the ash and become a woman.
It was when I started to cough, I realised that I am performing even for myself. I have internalised this act so well that I don’t even realise that I am unconsciously adhering to all the stereotypes and maybe somewhere forcing myself to adhere to them so that I feel like a lady.
Remove me from the theatre and I don’t know who I am anymore.
If I am not a reflection of what I see in the media then who am I? Media has created boxes to fit in women and have left the possibility of those boxes co-existing out.

‘The manic pixie dream girl’, ‘the cool girl, ‘the femme fatale’. These are all characters I grew up watching and tried to reproduce them.
It is truly a wonder to think about who I would be and what my limits would be if I didn’t try and duplicate these characters.
Pinocchio got lucky to have been a real boy at some point and have no strings. And that always makes me wonder when I will be able to cut off the strings of gender that I am more often than not holding myself.
It is suffocating to have to do this and just like the cigarette box says- it is injurious to health.
1 note
·
View note
Text
hi
Longest Substring Without Repeating Characters Problem: Find the length of the longest substring without repeating characters. Link: Longest Substring Without Repeating Characters
Median of Two Sorted Arrays Problem: Find the median of two sorted arrays. Link: Median of Two Sorted Arrays
Longest Palindromic Substring Problem: Find the longest palindromic substring in a given string. Link: Longest Palindromic Substring
Zigzag Conversion Problem: Convert a string to a zigzag pattern on a given number of rows. Link: Zigzag Conversion
Three Sum LeetCode #15: Find all unique triplets in the array which gives the sum of zero.
Container With Most Water LeetCode #11: Find two lines that together with the x-axis form a container that holds the most water.
Longest Substring Without Repeating Characters LeetCode #3: Find the length of the longest substring without repeating characters.
Product of Array Except Self LeetCode #238: Return an array such that each element is the product of all the other elements.
Valid Anagram LeetCode #242: Determine if two strings are anagrams.
Linked Lists Reverse Linked List LeetCode #206: Reverse a singly linked list.
Merge Two Sorted Lists LeetCode #21: Merge two sorted linked lists into a single sorted linked list.
Linked List Cycle LeetCode #141: Detect if a linked list has a cycle in it.
Remove Nth Node From End of List LeetCode #19: Remove the nth node from the end of a linked list.
Palindrome Linked List LeetCode #234: Check if a linked list is a palindrome.
Trees and Graphs Binary Tree Inorder Traversal LeetCode #94: Perform an inorder traversal of a binary tree.
Lowest Common Ancestor of a Binary Search Tree LeetCode #235: Find the lowest common ancestor of two nodes in a BST.
Binary Tree Level Order Traversal LeetCode #102: Traverse a binary tree level by level.
Validate Binary Search Tree LeetCode #98: Check if a binary tree is a valid BST.
Symmetric Tree LeetCode #101: Determine if a tree is symmetric.
Dynamic Programming Climbing Stairs LeetCode #70: Count the number of ways to reach the top of a staircase.
Longest Increasing Subsequence LeetCode #300: Find the length of the longest increasing subsequence.
Coin Change LeetCode #322: Given a set of coins, find the minimum number of coins to make a given amount.
Maximum Subarray LeetCode #53: Find the contiguous subarray with the maximum sum.
House Robber LeetCode #198: Maximize the amount of money you can rob without robbing two adjacent houses.
Collections and Hashing Group Anagrams LeetCode #49: Group anagrams together using Java Collections.
Top K Frequent Elements LeetCode #347: Find the k most frequent elements in an array.
Intersection of Two Arrays II LeetCode #350: Find the intersection of two arrays, allowing for duplicates.
LRU Cache LeetCode #146: Implement a Least Recently Used (LRU) cache.
Valid Parentheses LeetCode #20: Check if a string of parentheses is valid using a stack.
Sorting and Searching Merge Intervals LeetCode #56: Merge overlapping intervals.
Search in Rotated Sorted Array LeetCode #33: Search for a target value in a rotated sorted array.
Kth Largest Element in an Array LeetCode #215: Find the kth largest element in an array.
Median of Two Sorted Arrays LeetCode #4: Find the median of two sorted arrays.
0 notes
Text
How to Implement UTM Parameters for Better Tracking in Google Ads

Why Use UTM Parameters in Google Ads?
UTM parameters play a vital role in tracking specific details about where your website traffic is coming from. By tagging your URLs with UTM parameters in Google Ads, you can collect data on:
The campaign that directed users to your website
The keyword or ad copy that triggered the click
The medium or platform of the ad (like CPC for Google Ads)
Adding UTM tags ensures that you have granular data, allowing for improved optimization and better decision-making.
Step-by-Step Guide: How to Implement UTM Parameters in Google Ads
Step 1: Understand the Components of UTM Parameters
A UTM URL consists of five primary tags:
utm_source: Identifies the source of the traffic (e.g., “google”).
utm_medium: Specifies the medium (e.g., “cpc”).
utm_campaign: Indicates the campaign name (e.g., “summer_sale”).
utm_term: Refers to the keyword associated with the ad (useful for tracking keywords in PPC).
utm_content: Differentiates between variations of ads within the same campaign.
These parameters collectively provide insights into which campaigns and ad variations bring the best traffic, thus optimizing your Google Ads UTM Tracking.
Step 2: Set Up UTM Parameters in Google Ads
To enable Google Ads UTM Tracking, follow these steps:
Log into Google Ads and navigate to the campaign you want to set up tracking for.
Under “Settings,” click on Account Settings and then Tracking.
Enable auto-tagging by toggling it on. Auto-tagging will automatically add the gclid parameter to your URLs, which is essential for integrating with Google Analytics.
While auto-tagging is beneficial, custom UTM parameters allow more flexibility. Under the URL options in your ad settings, select Final URL suffix to input custom UTM tags.
Craft a unique UTM string, such as:
makefile
Copy code
utm_source=google&utm_medium=cpc&utm_campaign=summer_sale&utm_term={keyword}&utm_content={ad_id}
Using dynamic parameters like {keyword} and {ad_id} ensures that your tracking reflects the specific keywords and ad variations in your Google Ads.
Step 3: Test and Apply URLs with UTM Tags
Testing your UTM-tagged URLs before going live is essential. Use tools like Google’s Campaign URL Builder to craft your UTM URLs and test them. Input the UTM-tagged URL in the “Final URL” field within your Google Ads campaign to ensure they work correctly.
UTM Tagging Best Practices for Google Ads
For effective Google Ads UTM Tracking and data analysis, adhere to these UTM tagging best practices:
Consistency is Key: Use consistent naming conventions across your Pay Per Click Services to ensure data clarity. For example, always use lowercase letters and avoid special characters or spaces. Instead of “Social Media” or “social-media,” use “social_media.”
Use Auto-Tagging Alongside Manual Tagging: Enable auto-tagging for better integration with Google Analytics. However, add custom UTM parameters for enhanced detail in tracking. The combination allows you to analyze both general and specific campaign insights.
Avoid Redundant Tags: Do not duplicate information. If utm_source=google, there’s no need to add Google in utm_medium or utm_campaign. Redundant tags can complicate reporting.
Define a Naming Convention: If you’re running multiple campaigns, agree on a standardized naming convention with your team. For example:
utm_campaign: Use a clear identifier like “holiday_sale_2024” for a Christmas sale campaign.
utm_term: Use dynamic parameters such as {keyword} to automatically pull keywords into URLs.
Monitor and Adjust Regularly: Periodically audit your UTM parameters to ensure accuracy and relevancy. Remove outdated campaigns or unnecessary tags to keep data streamlined.
Benefits of Optimizing UTM Parameters in Google Ads
Using UTM parameters in Google Ads enhances tracking and provides actionable insights, which are invaluable for a PPC Marketing Agency in Pune or any digital marketer. With Google Ads UTM Tracking, you gain a complete view of your marketing performance, including:
Precise Source Identification: Identify which ads and keywords generate the most conversions and traffic.
Enhanced Ad Optimization: Track ad performance on a granular level, allowing for better ad copy and keyword adjustments.
Better ROI Measurement: Measure the return on investment for your Pay Per Click Services by understanding which campaigns are cost-effective.
Informed Budget Allocation: Redirect funds to the most effective campaigns by analyzing UTM data, ensuring a higher ROI.
Common Challenges and Solutions in Google Ads UTM Tracking
Even with a well-optimized UTM tagging strategy, challenges may arise. Here are some common issues and solutions:
Data Discrepancies: Sometimes, Google Ads and Google Analytics data don’t match due to tracking inconsistencies. Ensure both systems are integrated correctly and that UTM parameters match your Google Analytics setup.
Accidental Overriding of Auto-Tagging: Manually tagged UTMs can override gclid values, leading to discrepancies. Use a Final URL suffix rather than replacing the entire URL to avoid this.
High Bounce Rate from UTM Parameters: Some users click the ad, see a URL with many parameters, and bounce. Keep parameters short and relevant to prevent this.
Conclusion
Implementing UTM parameters in Google Ads is a valuable strategy for any PPC Marketing Agency in Pune looking to optimize tracking. By following UTM tagging best practices and understanding Google Ads UTM Tracking, you can gain critical insights into campaign performance and fine-tune your Pay Per Click Services for greater impact.
#PPC Marketing Agency in Pune#Pay Per Click Services#Google Ads UTM Tracking#Optimize UTM Parameters Google Ads#UTM Tagging Best Practices
0 notes
Text
Creating a New Soundset for Dragon Age Origins
Tools needed: DAO Toolset (sorry, I doubt there's a way around this) Audacity with the TrimExtend plugin FsbExtractor (optional) GDApp
If you haven't already, you might want to look at the Toolset tutorial page on importing audio; we'll be doing all of that plus a little extra. ;)
Due to the toolset automatically assigning string IDs, it's a good idea to make a new module to work in, so you can customize the number these IDs start at. Otherwise, you'll likely get conflicts with other mods that also worked in the Single Player module.
First, open up the toolset, and find the soundset templates. They're under Conversations -> _Core Soundsets.
Choose the one that best fits your project. 'Party' soundsets have the most entries, followed by 'Player', then 'NPC', 'Minor NPC', 'Combat', and 'CombatOnly'. If you're not sure, choose a fuller template - you can leave provided entries empty, but you can't easily add missing entries. You also might find it helpful to open up an existing soundset similar to the one you're building, to see which entries are actually used, and about how many lines there are for each. (bit of syntax: I'll be using 'entry' to refer to the soundset line type - e.g. "Combat Attack", "Combat Taunt" - and 'line' to refer to the actual spoken lines under an entry - "Attack!", "Cowards!", etc)
For instance, you'll see that despite the template having multiple types of "Explore Select", the PC soundsets only have "Explore Select Neutral". You'll need more lines for "Combat Attack" and "Combat Battle Cry" than anything else, but only one or two for things like "Hello", "Cheer", "Cuss", "Explore Stealth", or "Explore Trap Detected". And even though they're listed in PC and Party soundsets, some entries aren't actually used by the game at all: "Poisoned" "Gift Not Want" "Bored" "Goodbye" "Thank You" "Good Idea" "Fighting Without a Weapon" Pretty much everything from "Hello" down (with the exception of "Warcry") is only used in the Character Creator, or very rarely by NPCs. There are a couple mods that restore/utilize these entries, but if you only care about what the vanilla game will use, you can skip all these if you want. ;)
Duplicate the template you've chosen, and name it using Bioware's convention ("ss_[name]" for NPCs/followers, or "ss_pc_[unique identifier]" for PC). Alternatively, you can duplicate an existing soundset, but then you have to be careful to replace/remove all existing lines.
I'm going to assume you already have a set of sound files you plan on using, because that's not something I can help you with. For my forays into soundset creation, I ported from Dragon Age: Inquisition. If you'd like to do the same, various soundset files can be found in: DA3/DesignContent/Conversations/Global/Soundsets DA3/DesignContent/Conversations/Multiplayer/Soundsets DA3/DesignContent/Sound/Assets/Exertions
Go through your sound files, and transcribe them to fill in the template.
You may also want to change the default facial expressions. You can do this under the 'Cinematics' tab, with the 'Emotions' drop-down.
As you go, rename each sound file to "[stringID]_m". Unfortunately, there's no easy way to just copy/paste this number. -_-
For non-verbal lines, like grunts and screams, you can either leave it blank or write a description using [desc][/desc] tags (with carets instead of brackets).
Once you've figured out all your lines, you now need to edit them so that the toolset can process them. If you're going to do a lot of work for DAO in Audacity, you might want to change the default settings by going to Edit, Preferences. In the 'Quality' section, change the default sample rate to 24000Hz (you'll have to choose 'other' and manually type it in), and the default sample format to 16-bit. You also may want to change the default open and export directories in the 'Directories' section.
Open a line in Audacity, and trim the silence by selecting the audio wave, and hitting the 'trim audio outside selection button' (or Ctrl+T).
(The toolset does require a bit of silence before and after the audio for facial expression processing, but I find it better to trim it and then later add a consistent amount of silence to each.)
Now select the silent part(s) and click the scissors to remove them.
Do any other editing you want now as well, like splicing or volume adjusting.
The last steps are to add silence before and after, and then to export it as a .wav.
I usually do this as a macro:
To do it manually, select your audio using the little Select button in the blue panel left of the wave, and then go to Effect, Trim Extend, and then add 0.5 seconds before and after. (the toolset wiki recommends 1 full second before and after, but 0.5 seconds seems to work fine for me, at least for soundsets)
Before we export, make sure the Project Rate in the bottom left is set to 24000 Hz. If it's not, change to it 24000 (it's not one of the default options; you'll have to type it in manually).
Now export it by going to File, Export, Export as WAV. In the bottom center, change the Encoding to 'Signed 16-bit PCM', if it's not already set to that.
Repeat these steps for all your lines.
If there are any template lines you didn't use, delete the blue 'CONTINUE' line above it to remove that branch completely.
If there are entries you don't have any lines for, DON'T delete that entry (it can mess up the exporter). Delete all the blue 'CONTINUE' lines under the entry, and leave the entry there.
Once you have all your lines entered into your soundset template, and all the audio files named & converted, move the audio files to the module toolsetexport folder.
If you're working in a new module, put them in '\Documents\BioWare\Dragon Age\AddIns\[moduleUID]\module\override\toolsetexport' If you're working in the Single Player module, put them in '\Documents\BioWare\Dragon Age\modules\Single Player\override\toolsetexport'
Go back to the toolset and select the Root node of your soundset. Then do Tools, Generate VO, Generate VO Local. The toolset will take a minute to process, and you may see a command window for the FMOD processor pop up. If all went well, the log window at the bottom of the toolset should read something like this:
(unfortunately, it'll also show this if all your lines are missing and were replaced with RoboBrad)
If you were missing some lines, but not all (for me, that usually means I mistyped the string ID), the error will show like this: (the lines "renamed" were missing and replaced with RoboBrad)
If any of your lines are the incorrect format, it'll show something like this:
If it processed successfully (with or without RoboBrad), you'll get an .fev and .fsb file in your module's core/override folder.
Windows Media Player used to be able to play .fsb files, but newer versions don't seem to be able to. So, if you want to check the .fsb for errors, you'll have to find a media player that will play .fsb files, or use FsbExtractor to open it up and check the lines one-by-one.
Back in the toolset, make sure the Root node is still selected, and do Tools, Generate FaceFX, Generate FaceFX Local. You'll be able to watch the log as it processes each line.
You should end up with an .fxe and .fxm for each line, in your module's core/override folder (same place as the .fev & .fsb).
Finally, export the soundset either by right-clicking on the tab in the toolset or clicking Tools, Export, Export without dependent resources. This will generate two GDAs in your module's toolsetexport folder (next to your .wav files).
These GDAs are what the game actually reads when looking for a line to say. sse_ss_*****.gda lists all the lines for each entry type by stringID, and sst_ss_****.gda lists how many lines you have per entry type. These GDAs can only be opened by the toolset, not GDApp, since they for some reason use the older GDA format.
You're almost done! You can keep the files where they are now if you want, or move them all to the main override folder. ('\Documents\BioWare\Dragon Age\packages\core\override')
If you're making a soundset for a companion or NPC, you're pretty much done. You can either find that character's character file (.chr), change the soundset to your new one, and export the .utc; or open up an already-exported .utc with the toolset or TlkEdit, and change the soundset there.
The soundset for a character isn't actually specified in their toolset creature file. When you export the creature file as a .utc, it pulls the soundset from the associated character file (.chr).
If you're making a player soundset, you probably want to make it appear in the CharGen. To do that, you'll need to open up playersoundsets.gda with GDApp. If you don't already have it extracted, it's located in 'C:\Program Files (x86)\Dragon Age\packages\core\data\2da.erf'. You can extract it with either the toolset or pyGFF.
Find a line of the same race/gender you want, and delete the rest. If you want your soundset available for multiple race/gender combos, keep a line for each.
Change the ID to a unique number for each, rename the label to whatever you want to show in the CharGen, and remove the number in StrIDName. Also change the soundset to yours. ;)
Save the gda, but append something unique, like 'playersoundsets_myvoice.gda'. This tells DAO that this is an extension of the original GDA, not a replacement. The length of the GDA name shouldn't be more than 27 characters (not including ".gda").
Put your new GDA in your main override folder.
Fire up DAO, and make a new character to test your soundset!
If you don't want to add your soundset to the CharGen, you can instead change an existing PC's voice by editing the save game. Follow whuffie's tutorial. Alternatively, if you know a bit of scripting, you can make a console command using the SetSoundSet function.
If you plan on releasing your soundset to others, you only need to include the soundset GDAs, the .fev, .fsb, & .fxe files, and playersoundsets_****.gda. The .fxm files are metadata and not needed, and the .wav files have been compressed into the .fsb.
Common problems: --No sound at all: make sure all the info in your GDA is correct. Alternatively, the game may not be finding your .fsb or soundset .gdas. Try moving them to the main override. --Robot voice: the toolset couldn't find your .wav files when you did the VO processing. Make sure they were in the right toolsetexport folder, or try a different one. --Missing from the CharGen: your GDA is probably missing, or the GDA name may be too long. There's also a limit on how many voice options appear, so if you have other mods that add new voices, there might not be room for yours.
1 note
·
View note
Text
Ruby: 100 Simple Codes
Ruby: 100 Simple Codes
beginner-friendly collection of easy-to-understand Ruby examples.

Each code snippet is designed to help you learn programming concepts step by step, from basic syntax to simple projects. Perfect for students, self-learners, and anyone who wants to practice Ruby in a fun and practical way.
Codes:
1. Hello World
2. Add Two Numbers
3. Check Even or Odd
4. Loop Through Numbers
5. Simple Method
6. Array Example
7. Hash Example
8. Class and Object
9. Check If Number Is Positive
10. Simple Calculator
===
11. Subtract Two Numbers
12. Multiply Two Numbers
13. Divide Two Numbers
14. Find Remainder
15. Compare Two Numbers
16. Case Statement
17. While Loop
18. Until Loop
19. Check If String Includes Word
20. Reverse a String
===
21. Capitalize a String
22. Convert String to Uppercase
23. Convert String to Lowercase
24. Get String Length
25. Split String into Words
26. Join Array into String
27. Sort an Array
28. Find Maximum in Array
29. Find Minimum in Array
30. Check if Array Includes Value
===
31. Remove Duplicates from Array
32. Push Item to Array
33. Pop Item from Array
34. Check if Hash Has Key
35. Check if Hash Has Value
36. Iterate Over Hash
37. Convert String to Integer
38. Convert String to Float
39. Convert Integer to String
40. Check if Number is Zero
===
41. Create a Range
42. Check if Value in Range
43. Get Current Time
44. Format Time
45. Sleep for 2 Seconds
46. Generate Random Number
47. Repeat a String
48. Check If Variable is Nil
49. Ternary Operator
50. Define Constant
===
51. Rescue from Error
52. Check Data Type
53. Loop with Times
54. Loop with Upto
55. Loop with Downto
56. Map an Array
57. Select from Array
58. Reject from Array
59. Reduce Array to Sum
60. Symbol vs String
===
61. Convert String to Symbol
62. Check if File Exists
63. Read a File
64. Write to a File
65. Append to a File
66. Delete a File
67. Check if Directory Exists
68. Create a Directory
69. List Files in Directory
70. Delete a Directory
===
71. Check if String is Empty
72. Count Items in Array
73. Create an Empty Hash
74. Merge Two Hashes
75. Nested Hash Example
76. Define a Class with Initialize
77. Check if Object is Instance of Class
78. Check if Number is Negative
79. Count Characters in String
80. Swap Case in String
===
81. Repeat Code with Loop and Break
82. Next in Loop
83. Find Index in Array
84. Flatten Nested Array
85. Delete from Array
86. Compact Array (Remove nils)
87. Check if All Items Match Condition
88. Check if Any Item Matches Condition
89. Get Unique Characters from String
90. Use Constants in Class
===
91. Yield with Block
92. Default Parameter in Method
93. Global Variable
94. Class Variable
95. Check If Method Exists
96. Get First and Last from Array
97. Create Range with Step
98. Random Sample from Array
99. Sort Hash by Key
100. Sort Hash by Value
===
0 notes
Video
youtube
LEETCODE 3 : INDEX MAP WITH SLIDING WINDOW PATTERN : LONGEST SUBSTRING W...
LeetCode Problem 3, Longest Substring Without Repeating Characters, asks you to find the length of the longest substring in a given string that contains no repeating characters. The solution typically involves a sliding window approach. By maintaining a set of characters, we expand the window by adding characters until a duplicate is found, at which point we shrink the window by removing characters from the start until the duplicate is gone. The maximum length of the window during this process is the solution. This problem is optimal with a time complexity of O(n), where n is the string length.
0 notes
Text
Decoding Python's Building Blocks: A Comprehensive Exploration of Essential Data Types
Python, celebrated for its readability and adaptability, introduces a diverse set of fundamental data types that serve as the building blocks for programming proficiency. Whether you're an entry-level programmer entering the Python ecosystem or an experienced developer looking to refine your skills, a deep understanding of these data types is indispensable. Let's embark on a journey to uncover the significance and applications of Python's essential data types.
1. Numeric Foundations: The Power of Integers and Floats
At the core of numerical computations lie integers, representing whole numbers without decimal points. From negative values like -5 to positive ones like 42, Python enables seamless arithmetic operations on integers. Complementing this, floating-point numbers bring precision to calculations involving decimal points or exponential forms, ensuring accuracy in diverse mathematical operations.
2. Textual Mastery: Strings as the Linchpin
Strings, encapsulating sequences of characters within single or double quotes, are indispensable for handling textual data. From basic text manipulations to intricate natural language processing algorithms, strings play a pivotal role in diverse applications, making them a cornerstone data type for any Python developer.
3. Logic at the Core: The Significance of Booleans
Boolean data types, representing truth values (True and False), underpin logical operations and conditional statements. Whether validating user input or implementing decision-making processes, booleans are essential for shaping the logical flow within Python programs.
4. Dynamic Collections: Lists and Their Versatility
Python's lists, dynamic and ordered collections, can hold elements of different data types. Their versatility makes them ideal for managing datasets and storing sequences of values, providing flexibility in handling diverse programming scenarios.
5. Immutable Order: Tuples as Constant Entities
Similar to lists but immutable, tuples are ordered collections denoted by parentheses. This immutability ensures data integrity and makes tuples suitable for scenarios where data should remain constant throughout program execution.
6. Set Efficiency: Unleashing the Power of Sets
Sets, unordered collections of unique elements, excel in scenarios where membership testing and duplicate elimination are crucial. These data types streamline operations like removing duplicates from datasets, offering efficient data manipulation capabilities.
7. Key-Value Mastery: Diving into Python Dictionaries
Dictionaries, composed of key-value pairs, emerge as a powerhouse of efficiency. This data type facilitates swift retrieval of values based on unique keys, ensuring rapid access and manipulation of information. Dictionaries are invaluable for tasks like storing configuration settings or managing complex datasets.
Understanding and mastering these essential data types not only equips Python developers with versatile tools but also empowers them to tackle a broad spectrum of computational challenges. Whether you're venturing into web applications, exploring data science, or diving into machine learning, a robust grasp of Python's data types serves as the foundation for programming excellence. As you navigate the Python landscape, consider these data types as more than mere code elements—they are the fundamental structures shaping your journey towards creating efficient and robust solutions. Embrace Python's data types, and let them guide you towards programming excellence.
0 notes
Text
Progress bar in HUD
The progress bar is a component in the HUD that I'm quite familiar with. For this project the progress bars purpose wasn't as straight forward however.
I thought this until I realised all I needed to do was reference the how loud variable in the thirdperson character as that variable contained the information of how loud the input from the microphone was. This then divided the progress bar by 75 so it matched the clamp in the thirdperson code.
The progress bar's background fill had to be a certain format so I had to copy the material and alter the duplicates format to user interface .
The print string showing the audio level is still active however it will be removed when the game is complete.
0 notes