<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ahmad Mukhtar</title>
    <description>The latest articles on DEV Community by Ahmad Mukhtar (@ahmedmukhtar1133).</description>
    <link>https://dev.to/ahmedmukhtar1133</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1490088%2F3820026f-13dd-4e40-bb68-e40332e9c9a9.png</url>
      <title>DEV Community: Ahmad Mukhtar</title>
      <link>https://dev.to/ahmedmukhtar1133</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmedmukhtar1133"/>
    <language>en</language>
    <item>
      <title>How to clean a developer Mac without breaking anything</title>
      <dc:creator>Ahmad Mukhtar</dc:creator>
      <pubDate>Tue, 27 Oct 2026 10:51:07 +0000</pubDate>
      <link>https://dev.to/ahmedmukhtar1133/how-to-clean-a-developer-mac-without-breaking-anything-17p4</link>
      <guid>https://dev.to/ahmedmukhtar1133/how-to-clean-a-developer-mac-without-breaking-anything-17p4</guid>
      <description>&lt;p&gt;A developer Mac fills up in places macOS lumps together as "System Data". Most of it is safe&lt;br&gt;
to remove. Some of it looks like junk and is not. The question for every folder is the same:&lt;br&gt;
&lt;strong&gt;what happens if it is gone?&lt;/strong&gt; There are three answers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It rebuilds itself.&lt;/strong&gt; The tool makes it again when needed. You lose time, not data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It downloads again.&lt;/strong&gt; Safe, but the next install or build needs the network and waits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is yours.&lt;/strong&gt; Nothing makes it again. Look before you remove it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Xcode
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Where&lt;/th&gt;
&lt;th&gt;If it is gone&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build data&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Developer/Xcode/DerivedData&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rebuilds itself on the next build&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Device support&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Developer/Xcode/iOS DeviceSupport&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Downloads again when you connect that device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simulator caches&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Developer/CoreSimulator/Caches&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rebuilds itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archives&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/Library/Developer/Xcode/Archives&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Yours.&lt;/strong&gt; The builds you shipped, with their debug symbols&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Simulators for iOS versions you removed are dead weight. Remove only those:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xcrun simctl delete unavailable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker
&lt;/h2&gt;

&lt;p&gt;Docker keeps images, stopped containers, build cache and volumes. The first three come back;&lt;br&gt;
&lt;strong&gt;volumes are databases and do not&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker container prune   &lt;span class="c"&gt;# stopped containers&lt;/span&gt;
docker image prune       &lt;span class="c"&gt;# images no container or tag uses&lt;/span&gt;
docker builder prune     &lt;span class="c"&gt;# build cache&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Never run &lt;code&gt;docker system prune --volumes&lt;/code&gt; unless you are sure no volume holds data you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  node_modules and other project dependencies
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;.venv&lt;/code&gt; and similar folders are downloaded again by &lt;code&gt;npm install&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;pnpm install&lt;/code&gt; or &lt;code&gt;pip install&lt;/code&gt;. Removing them from projects you have not touched in months is&lt;br&gt;
the biggest safe win on most JavaScript machines. Leave the ones in projects you are working on&lt;br&gt;
this week, or your next run waits for a full install.&lt;/p&gt;

&lt;p&gt;Build output beside a project file (&lt;code&gt;target&lt;/code&gt; next to &lt;code&gt;Cargo.toml&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt; or &lt;code&gt;build&lt;/code&gt; next to&lt;br&gt;
&lt;code&gt;package.json&lt;/code&gt;) rebuilds itself. A folder named &lt;code&gt;build&lt;/code&gt; with no project file beside it may be&lt;br&gt;
someone's documents.&lt;/p&gt;
&lt;h2&gt;
  
  
  Package manager caches
&lt;/h2&gt;

&lt;p&gt;All of these download again:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew cleanup             &lt;span class="c"&gt;# old Homebrew downloads and versions&lt;/span&gt;
npm cache clean &lt;span class="nt"&gt;--force&lt;/span&gt;  &lt;span class="c"&gt;# npm's download cache&lt;/span&gt;
pnpm store prune         &lt;span class="c"&gt;# packages no project uses any more&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cargo's &lt;code&gt;~/.cargo/registry/cache&lt;/code&gt;, Gradle's &lt;code&gt;~/.gradle/caches&lt;/code&gt; and uv's &lt;code&gt;~/.cache/uv&lt;/code&gt; work the&lt;br&gt;
same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI coding tools
&lt;/h2&gt;

&lt;p&gt;AI tools leave three kinds of things behind, and they are not equally safe.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scratch and cache folders&lt;/strong&gt; rebuild themselves. Remove a finished session's, never a
running one's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local models&lt;/strong&gt; (Ollama, LM Studio, Hugging Face) download again, but each one is gigabytes.
Remove the ones you stopped using, not the one you use daily.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worktrees&lt;/strong&gt; are full copies of a repository. One can go only when &lt;code&gt;git status&lt;/code&gt; inside it is
clean and every commit is pushed or merged. Remove it with &lt;code&gt;git worktree remove&lt;/code&gt; so git
forgets it too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session transcripts&lt;/strong&gt; are yours: they are what lets you resume a conversation. Claude Code
deletes old ones by itself after 30 days by default (the &lt;code&gt;cleanupPeriodDays&lt;/code&gt; setting). Keep
any &lt;code&gt;memory&lt;/code&gt; folder next to them; that is what the tool remembers about your projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Doing it with an app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://deskworthy.app/apps/mac-maintenance?ref=devto" rel="noopener noreferrer"&gt;Kempt&lt;/a&gt; and &lt;a href="https://deskworthy.app/apps/disk-space-analyzer?ref=devto" rel="noopener noreferrer"&gt;DiskAtlas&lt;/a&gt; sort Xcode data, dependencies, package caches and AI tool folders by the&lt;br&gt;
same three answers (Docker they leave to Docker). They list every item by name and path before&lt;br&gt;
anything moves and send what you choose to the Trash, so any of it can go back. Dependencies&lt;br&gt;
are never ticked for you, a worktree is offered only when git says it is clean and pushed, and&lt;br&gt;
a running AI session is never offered.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;First published on &lt;a href="https://deskworthy.app/guides/clean-developer-mac?ref=devto" rel="noopener noreferrer"&gt;deskworthy.app&lt;/a&gt;. I make Kempt and DiskAtlas.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>macos</category>
      <category>productivity</category>
      <category>docker</category>
      <category>xcode</category>
    </item>
    <item>
      <title>WHOIS JSON APIs: Simplifying Domain Information</title>
      <dc:creator>Ahmad Mukhtar</dc:creator>
      <pubDate>Mon, 13 May 2024 21:51:41 +0000</pubDate>
      <link>https://dev.to/ahmedmukhtar1133/whois-json-apis-simplifying-domain-information-4bno</link>
      <guid>https://dev.to/ahmedmukhtar1133/whois-json-apis-simplifying-domain-information-4bno</guid>
      <description>&lt;p&gt;In the vast landscape of the internet, understanding the ownership and details of a domain can be crucial. This is where WHOIS comes in. WHOIS is a protocol used to query databases that store the registered users or assignees of an Internet resource, such as a domain name, an IP address block, or an autonomous system. It provides valuable information about domain registration and ownership, which is essential for various purposes, including network troubleshooting, verifying domain ownership, and resolving trademark disputes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is WHOIS JSON API?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://whoisjsonapis.com/"&gt;WHOIS JSON APIs&lt;/a&gt; provide a simplified way to access WHOIS information in &lt;strong&gt;JSON format&lt;/strong&gt;. By offering WHOIS information in JSON format, developers can easily integrate this data into their applications and services, making it more accessible and usable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of WHOIS JSON APIs:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Free and Paid Plans:&lt;/strong&gt; WHOIS JSON APIs offer both free and paid plans to suit your needs. The free plan allows you to get started without requiring a credit card.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Domain Information at Your Fingertips:&lt;/strong&gt; With &lt;a href="https://whoisjsonapis.com/"&gt;WHOIS JSON APIs&lt;/a&gt;, you can quickly retrieve precise domain information, including registration and expiration dates, registrar details, and domain status.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No Credit Card Required:&lt;/strong&gt; The free plan of WHOIS JSON APIs does not require a credit card, making it easy to get started with querying domain information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User-Friendly Documentation&lt;/strong&gt;: WHOIS JSON APIs provide comprehensive &lt;a href="https://whoisjsonapis.com/documentation"&gt;documentation&lt;/a&gt; to help you integrate the API into your applications with ease.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bulk WHOIS Lookup:&lt;/strong&gt; The API supports bulk WHOIS lookup, allowing you to query multiple domains at once, making your research or investigation faster and more efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Use WHOIS JSON APIs?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tackle Online Misbehavior:&lt;/strong&gt; WHOIS information can help identify the owners of websites involved in online misbehavior, such as spamming or phishing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check Domain Availability:&lt;/strong&gt; Quickly check the availability of a domain name to see if it is already registered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access Important Ownership &amp;amp; Date Records:&lt;/strong&gt; Obtain important details about a domain, such as creation and expiration dates, as well as information about the registrar and nameservers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefit from User Geolocation Services:&lt;/strong&gt; Use WHOIS information to determine the geographical location of a domain owner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research Internet Infrastructure:&lt;/strong&gt; WHOIS information can be used to research internet infrastructure and usage patterns, providing valuable insights into the internet's structure and evolution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sample response:
&lt;/h3&gt;

&lt;p&gt;This sample response provides detailed WHOIS information for the domain "facebook.com." It includes data such as the registrar, registration and expiration dates, domain status, registrant details (name, organization, contact information), administrative and technical contact information, name servers, and more. This structured JSON format makes it easy for developers to extract and use this information in their applications or services.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "facebook.com": {
    "domainName": "FACEBOOK.COM",
    "registryDomainId": "2320948_DOMAIN_COM-VRSN",
    "registrarWhoisServer": "whois.registrarsafe.com",
    "registrarUrl": "https://www.registrarsafe.com",
    "updatedDate": "2024-04-24T19:06:13Z",
    "creationDate": "1997-03-29T05:00:00Z",
    "registrarRegistrationExpirationDate": "2033-03-30T04:00:00Z",
    "registrar": "RegistrarSafe, LLC",
    "registrarIanaId": "3237",
    "registrarAbuseContactEmail": "abusecomplaints@registrarsafe.com",
    "registrarAbuseContactPhone": "+1.6503087004",
    "domainStatus": [
      "clientDeleteProhibited",
      "clientTransferProhibited",
      "clientUpdateProhibited",
      "serverDeleteProhibited",
      "serverTransferProhibited",
      "serverUpdateProhibited"
    ],
    "registrantName": "Domain Admin",
    "registrantOrganization": "Meta Platforms, Inc.",
    "registrantStreet": "1601 Willow Rd",
    "registrantCity": "Menlo Park",
    "registrantStateProvince": "CA",
    "registrantPostalCode": "94025",
    "registrantCountry": "US",
    "registrantPhone": "+1.6505434800",
    "registrantEmail": "domain@fb.com",
    "adminName": "Domain Admin",
    "adminOrganization": "Meta Platforms, Inc.",
    "adminStreet": "1601 Willow Rd",
    "adminCity": "Menlo Park",
    "adminStateProvince": "CA",
    "adminPostalCode": "94025",
    "adminCountry": "US",
    "adminPhone": "+1.6505434800",
    "adminEmail": "domain@fb.com",
    "techName": "Domain Admin",
    "techOrganization": "Meta Platforms, Inc.",
    "techStreet": "1601 Willow Rd",
    "techCity": "Menlo Park",
    "techStateProvince": "CA",
    "techPostalCode": "94025",
    "techCountry": "US",
    "techPhone": "+1.6505434800",
    "techEmail": "domain@fb.com",
    "nameServer": "D.NS.FACEBOOK.COM A.NS.FACEBOOK.COM B.NS.FACEBOOK.COM C.NS.FACEBOOK.COM",
    "dnssec": "unsigned",
    "urlOfTheIcannWhoisDataProblemReportingSystem": "http://wdprs.internic.net/",
    "lastUpdateOfWhoisDatabase": "2024-05-08T22:48:00Z &amp;lt;&amp;lt;&amp;lt;"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;In conclusion, WHOIS JSON APIs provide a simple and efficient way to access domain information, making it easier for developers to integrate this data into their applications. Whether you're a developer looking to check domain availability or a researcher studying internet infrastructure, WHOIS JSON APIs offer a valuable resource for accessing and utilizing domain information.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
