# mac os

Published articles for mac os.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## EMACS Turns 50

DevFeed: [EMACS Turns 50](<https://devfeed.tech/articles/emacs-turns-50-106050.md>)

Original publisher: [Read original article](<https://news.slashdot.org/story/26/10/28/1541214/emacs-turns-50>)

Author: BeauHD

Published: 2026-10-28T17:00:00Z

Content type: article

Language: en

Sources: [Slashdot](<https://devfeed.tech/sources/slashdot.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [code](<https://devfeed.tech/tags/code.md>), [community](<https://devfeed.tech/tags/community.md>), [computer](<https://devfeed.tech/tags/computer.md>), [display](<https://devfeed.tech/tags/display.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [gnu](<https://devfeed.tech/tags/gnu.md>), [gnu-linux](<https://devfeed.tech/tags/gnu-linux.md>), [hard-disk](<https://devfeed.tech/tags/hard-disk.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [mit](<https://devfeed.tech/tags/mit.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [text](<https://devfeed.tech/tags/text.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

Before full-screen text editors, programmers moved from physical machine configuration and punched media to line editors that handled one line at a time. EMACS first ran on video terminals at MIT's Artificial Intelligence Laboratory in 1976, letting users view and modify many lines on screen. It was later rewritten for many operating systems and distributed with Mac OS X. The software-sharing community around EMACS also helped give rise to the free software movement and GNU/Linux. The excerpt describes it as still widely used.

### Source excerpt

"EMACS, the mother of all editors, turns 50!" writes Slashdot reader dr_jerry, sharing a report from MIT Technology Review: Programming used to be a very different experience from the one we know today. In fact, the first programmers didn't write code at all; the six women who worked on the ENIAC, one of the world's first computers, at the University of Pennsylvania in 1946 did it by physically configuring switches, cables, and plugboards. A few years later, MIT engineers programmed the Whirlwind by punching code onto paper tape that was then loaded into the computer's memory -- making it among the first "stored-program" machines. Later, they and others moved on to punch cards, one for each line of code. By the early 1960s, programmers with interactive computers could use a "line editor" to type their code on teletypes -- large, noisy keyboard-and-printer machines. They'd type one line of code at a time, and their work would be saved on a spinning hard disk the size of a modern washing machine. But there was still no such thing as the now-familiar full-screen text editors that allow programmers to see and modify many lines at a time on a display. One of the first such tools, EMACS, turns 50 this year, and it is still widely used. EMACS first ran on the early video terminals at the MIT Artificial Intelligence Laboratory in 1976, but its core concepts were so powerful that it was rewritten for many operating systems in the decades that followed. Apple even distributed it with Mac OS X. Beyond that, the software-sharing community that started around EMACS helped give rise to the modern-day free software movement and the GNU/Linux operating system. Read more of this story at Slashdot.

## NTP, an atomic clock, and having a great time at the world's largest VCF

DevFeed: [NTP, an atomic clock, and having a great time at the world's largest VCF](<https://devfeed.tech/articles/ntp-an-atomic-clock-and-having-a-great-time-at-the-world-s-largest-vcf-55073.md>)

Original publisher: [Read original article](<https://www.jeffgeerling.com/blog/2026/vcf-midwest-21-ntp-time/>)

Author: jeff@jeffgeerling.com (Jeff Geerling)

Published: 2026-09-18T14:00:00Z

Content type: opinion

Language: en

Sources: [Jeff Geerling](<https://devfeed.tech/sources/jeff-geerling.md>)

Topics: [Homelab](<https://devfeed.tech/topics/homelab.md>), [Server](<https://devfeed.tech/topics/server.md>), [Network](<https://devfeed.tech/topics/network.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Ubiquiti](<https://devfeed.tech/topics/ubiquiti.md>), [Wi-Fi](<https://devfeed.tech/topics/wi-fi.md>)

Tags: [clock](<https://devfeed.tech/tags/clock.md>), [gnss](<https://devfeed.tech/tags/gnss.md>), [gps](<https://devfeed.tech/tags/gps.md>), [homelab](<https://devfeed.tech/tags/homelab.md>), [lan](<https://devfeed.tech/tags/lan.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [midwest](<https://devfeed.tech/tags/midwest.md>), [network](<https://devfeed.tech/tags/network.md>), [ntp](<https://devfeed.tech/tags/ntp.md>), [poe](<https://devfeed.tech/tags/poe.md>), [retro](<https://devfeed.tech/tags/retro.md>), [router](<https://devfeed.tech/tags/router.md>), [server](<https://devfeed.tech/tags/server.md>), [time](<https://devfeed.tech/tags/time.md>), [ubiquiti](<https://devfeed.tech/tags/ubiquiti.md>), [vcf](<https://devfeed.tech/tags/vcf.md>), [wi-fi](<https://devfeed.tech/tags/wi-fi.md>)

### AI overview

A personal report on exhibiting an NTP time-synchronization demonstration at VCF Midwest 21. The exhibit connected vintage Macs, an Xserve G5, a TrueTime Pi GNSS reference, and network equipment to illustrate Stratum 0 through Stratum 3 time services.

### Source excerpt

I'm back from VCF Midwest 21, arguably the largest vintage computer festival on the planet. After being blown away last year, I decided to get a table of my own this year, to demonstrate NTP Time on a bunch of old Macs, representing every era up to the pinnacle of the PowerPC, an Xserve G5 (serving duty as a Stratum 2 ntpd server). Attending as an exhibitor is a lot different. In some ways better (I got to interact face-to-face with at least 200 people--after that I ran out of my 'time tokens'), and in some ways worse (I only got to see about 10% of the exhibits--if that).

## How can you not be romantic about UNIX domain sockets?

DevFeed: [How can you not be romantic about UNIX domain sockets?](<https://devfeed.tech/articles/how-can-you-not-be-romantic-about-unix-domain-sockets-52612.md>)

Original publisher: [Read original article](<https://blog.adafruit.com/2026/09/15/how-can-you-not-be-romantic-about-unix-domain-sockets/>)

Author: Anne Barela

Published: 2026-09-15T19:06:45Z

Content type: news

Language: en

Sources: [Adafruit Industries](<https://devfeed.tech/sources/adafruit-industries-makers-hackers-artists-designers-and-engineers.md>)

Topics: [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [boot](<https://devfeed.tech/tags/boot.md>), [bug](<https://devfeed.tech/tags/bug.md>), [counter](<https://devfeed.tech/tags/counter.md>), [crash](<https://devfeed.tech/tags/crash.md>), [defcon](<https://devfeed.tech/tags/defcon.md>), [demo](<https://devfeed.tech/tags/demo.md>), [domain-sockets](<https://devfeed.tech/tags/domain-sockets.md>), [global](<https://devfeed.tech/tags/global.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [logic](<https://devfeed.tech/tags/logic.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [message](<https://devfeed.tech/tags/message.md>), [number](<https://devfeed.tech/tags/number.md>), [operating-system](<https://devfeed.tech/tags/operating-system.md>), [server](<https://devfeed.tech/tags/server.md>), [sockets](<https://devfeed.tech/tags/sockets.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [unix](<https://devfeed.tech/tags/unix.md>), [vm](<https://devfeed.tech/tags/vm.md>)

### AI overview

A first-run crash in a DEFCON 34 demo--a VM running an SSH server inside an iOS app with a userspace TTY built from connected UNIX domain sockets--came from inconsistent inode numbers returned by `fstat()` on the same socket. XNU's `uipc_sense()` lazily assigns inode numbers with `unp_ino++`; because the counter starts at zero, the first assigned value is zero, which is also treated as uninitialized. A later `fstat()` therefore assigns a different inode. The excerpt says the same logic appears in XNU 123.5 (Mac OS X 10.0, 2001) and earlier in 4.3BSD-Tahoe, with the line last touched in 1985.

### Source excerpt

Writing on yuvalino.com, jachashx traced a demo crash at DEFCON 34 down to a 40 year old kernel bug. The demo was a VM running an SSH server inside an iOS app, with a userspace TTY built from a pair of connected UNIX domain sockets. It crashed only on the first run after a fresh [...]

## What 21 five-minute demos looked like at WorkOS Demo Night

DevFeed: [What 21 five-minute demos looked like at WorkOS Demo Night](<https://devfeed.tech/articles/what-21-five-minute-demos-looked-like-at-workos-demo-night-16074.md>)

Original publisher: [Read original article](<https://workos.com/blog/workos-demo-night-august-2026-recap>)

Author: WorkOS

Published: 2026-08-07T00:00:00Z

Content type: article

Language: en

Sources: [WorkOS](<https://devfeed.tech/sources/workos-blog.md>)

Topics: [Demo](<https://devfeed.tech/topics/demo.md>), [Agent Harness](<https://devfeed.tech/topics/agent-harness.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agent-harness](<https://devfeed.tech/tags/agent-harness.md>), [demo](<https://devfeed.tech/tags/demo.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [recap](<https://devfeed.tech/tags/recap.md>)

### AI overview

A recap of WorkOS Demo Night in San Francisco, featuring 21 live five-minute demos. The article highlights Carbon Code, an agent harness running on emulated Mac OS 9 that edited its own source and added an effort selector during the event.

### Source excerpt

A recap of the August 5 Demo Night at our San Francisco office: 21 live five-minute demos, no slides, no pitches, and an agent harness running on Mac OS 9.

## The C Standard Library Function isspace() Depends on Locale

DevFeed: [The C Standard Library Function isspace() Depends on Locale](<https://devfeed.tech/articles/the-c-standard-library-function-isspace-depends-on-locale-20753.md>)

Original publisher: [Read original article](<https://www.evanjones.ca/isspace_locale.html>)

Published: 2023-06-06T13:41:23Z

Content type: article

Language: en

Sources: [Evan Jones](<https://devfeed.tech/sources/evan-jones.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [bug](<https://devfeed.tech/tags/bug.md>), [c](<https://devfeed.tech/tags/c.md>), [function](<https://devfeed.tech/tags/function.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [library](<https://devfeed.tech/tags/library.md>), [locale](<https://devfeed.tech/tags/locale.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>)

### AI overview

The article explains that C's isspace() behavior depends on the active locale. In the default C locale it recognizes six ASCII whitespace characters, while other locales may also recognize Unicode whitespace. The author connects this behavior to a parsing bug involving PostgreSQL Hstore values on Mac OS X.

### Source excerpt

This is a post for myself, because I wasted a lot of time understanding this bug, and I want to be able to remember it in the future. I expect close to zero others to be interested. The C standard library function isspace() returns a non-zero value (true) for the six "standard" ASCII white-space characters ('\t', '\n', '\v', '\f', '\r', ' '), and any locale-specific characters. By default, a program starts in the "C" locale, which will only return true for the six ASCII white-space characters. However, if the program changes locales, it can return true for other values. As a result, unless you really understand locales, you should use your own version of this function, or ICU4C's u_isspace() function. An implementation of isspace() for ASCII is one line: /* Returns true for the 6 ASCII white-space characters: \t \n \v \f \r ' '. */ int isspace_ascii(int c) { return c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r' || c == ' '; } I ran into this because On Mac OS X, Postgres switches to the system's default locale, which is something that uses UTF-8 (e.g. en_US.UTF-8, fr_CA.UTF-8, etc). In this case, isspace() returns true for Unicode white-space values, which includes 0x85 = NEL = Next Line, and 0xA0 = NBSP = No-Break Space. This caused a bug in parsing Postgres Hstore values that use Unicode. I have attempted to submit a patch to fix this (mailing list post, commitfest entry). For a program to demonstrate the behaviour on different systems, see isspace_locale on Github.

## Debugging Python Operator Precedence With MacsBug

DevFeed: [Debugging Python Operator Precedence With MacsBug](<https://devfeed.tech/articles/debugging-python-operator-precedence-with-macsbug-27356.md>)

Original publisher: [Read original article](<https://saagarjha.com/blog/2020/04/22/debugging-python-operator-precedence-with-macsbug/>)

Published: 2020-04-22T00:00:00Z

Content type: article

Language: en

Sources: [Saagar Jha](<https://devfeed.tech/sources/saagar-jha.md>)

Topics: [ctf](<https://devfeed.tech/topics/ctf.md>), [debugging](<https://devfeed.tech/topics/debugging.md>)

Tags: [ctf](<https://devfeed.tech/tags/ctf.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>)

### AI overview

The article recounts solving challenges in PlaidCTF 2020, focusing on The Watness 2 reversing challenge. It describes identifying the challenge as related to a prior WebAssembly-based puzzle and opening its StuffIt archive using The Unarchiver.

### Source excerpt

I'm a Capture the Flag (CTF) player with Shellphish, and last weekend our team participated in PlaidCTF 2020, an event organized by the Plaid Parliament of Pwning (PPP). As a pre-qualifier for the DEF CON CTF 2020, it's historically been a fairly challenging competition-this year our team only managed to place 17th, slightly below our usual performance, as many of our team members were preoccupied with inconveniently-placed project deadlines. However, the rest of us had a great time working on the challenges; I helped solve two, golf.so and The Watness 2. golf.so was released early in the CTF and asked teams to create small shared libraries that would call execve("/bin/sh", ["/bin/sh"], ...) when LD_PRELOADed in to /bin/true; a number of us worked together to solve this fairly quickly, getting under 194 bytes (the requirement for the full 500 points) with some aggressive but straightforward segment overlapping, careful trimming of "required" but leniently checked fields, and stuffing of code into the remaining header bytes that were required but could be set to fairly arbitrary values. Some teams golfed it further to 136 bytes, although I'm not sure how (or why, beside bragging rights) they did so. The Watness 2 took longer and in my opinion was a bit more interesting, and this is the one we'll be talking about here.

## Xcode 11 Migration

DevFeed: [Xcode 11 Migration](<https://devfeed.tech/articles/xcode-11-migration-19681.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/xcode-11-migration/>)

Author: Shai Almog

Published: 2020-03-05T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [migration](<https://devfeed.tech/topics/migration.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [build](<https://devfeed.tech/tags/build.md>), [ios](<https://devfeed.tech/tags/ios.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [migration](<https://devfeed.tech/tags/migration.md>), [server](<https://devfeed.tech/tags/server.md>), [servers](<https://devfeed.tech/tags/servers.md>), [update](<https://devfeed.tech/tags/update.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

The article explains Codename One's migration from Xcode 9.2 as Apple raises Xcode requirements. Catalina is incompatible with Xcode 9.2, so builds explicitly requesting it will fail; the servers are planned for an operating-system upgrade and Xcode 11.3 installation.

### Source excerpt

Apple keeps moving the goal posts of xcode requirements for developers. This is good as it keeps the technology fresh but it means support for older devices becomes untenable. Unfortunately there isn't much we can do and we need to move with the times as Apple will no longer accept apps built with older versions of xcode. The main problem with this is another pain point for iOS developers. Newer versions of code require newer versions of Mac OS. That means we need to update the version of Mac OS on all of our servers. That's a HUGE pain not just because of the drudge of upgrading every server...

## EOF is not a character

DevFeed: [EOF is not a character](<https://devfeed.tech/articles/eof-is-not-a-character-33311.md>)

Original publisher: [Read original article](<https://ruslanspivak.com/eofnotchar/>)

Author: Ruslan Spivak

Published: 2020-03-01T16:53:00Z

Content type: tutorial

Language: en

Sources: [Ruslan Spivak](<https://devfeed.tech/sources/ruslan-spivak.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [IO](<https://devfeed.tech/topics/io.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [computer](<https://devfeed.tech/tags/computer.md>), [example](<https://devfeed.tech/tags/example.md>), [file](<https://devfeed.tech/tags/file.md>), [function](<https://devfeed.tech/tags/function.md>), [library](<https://devfeed.tech/tags/library.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [python](<https://devfeed.tech/tags/python.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [stream](<https://devfeed.tech/tags/stream.md>), [systems](<https://devfeed.tech/tags/systems.md>), [text](<https://devfeed.tech/tags/text.md>), [unix](<https://devfeed.tech/tags/unix.md>), [value](<https://devfeed.tech/tags/value.md>)

### AI overview

This tutorial explains that EOF in C is not a character and is not stored at the end of a file. It examines EOF in Unix I/O, its usual value of -1, and why that value cannot represent a character.

### Source excerpt

I was reading Computer Systems: A Programmer's Perspective the other day and in the chapter on Unix I/O the authors mention that there is no explicit "EOF character" at the end of a file.

## Zulu Desktop Builds

DevFeed: [Zulu Desktop Builds](<https://devfeed.tech/articles/zulu-desktop-builds-19687.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/zulu-desktop-builds/>)

Author: Shai Almog

Published: 2019-04-10T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Java](<https://devfeed.tech/topics/java.md>), [JavaFX](<https://devfeed.tech/topics/javafx.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [deployment](<https://devfeed.tech/tags/deployment.md>), [java](<https://devfeed.tech/tags/java.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The article explains changes to Codename One's Java desktop deployment process. Because ZuluFX packaging produced oversized applications and was unreliable on Windows and macOS, the project is moving to manually generated installers using third-party tools. The new build approach is experimental, and compilation may still fail while issues are resolved.

### Source excerpt

Sometimes you pick up a task and know in advance it's going to be hell to implement it. Sometimes, the hell you were expecting turns out to be WAY worse than you anticipated. This is the case for modern Java desktop deployment. Amazingly, Java was able to take one of the worse deployment processes possible and make it MUCH worse than before. If you haven't used the Codename One desktop port I'll sum it up to you. We use javapackager (formerly javafxpackager) to essentially wrap the jar file as a DMG/pkg on Mac OS and as an EXE/MSI on Windows. This "worked" in the broad sense of the word. It had a lot of issues and we had to create a lot of workarounds.

## Xcode 9.2 Mode

DevFeed: [Xcode 9.2 Mode](<https://devfeed.tech/articles/xcode-9-2-mode-19683.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/xcode-9-mode/>)

Author: Shai Almog

Published: 2018-01-31T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [migration](<https://devfeed.tech/topics/migration.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [build](<https://devfeed.tech/tags/build.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [migration](<https://devfeed.tech/tags/migration.md>), [signing](<https://devfeed.tech/tags/signing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Codename One's build servers now support functional Xcode 9.2 builds after a migration that required updated Mac OS versions and fixes for signing changes. The article explains how to toggle Xcode versions and notes potential splash-screen, notification, and iOS permission issues.

### Source excerpt

Every time we switch a version of xcode in the build servers things go haywire because of minor behavioral changes from Apple. Over the holidays we started a long and painful migration to xcode 9.2 which required an update to the Mac OS versions on our servers. Thankfully this wasn't as bad as the old xcode 5 to 7.3 migration where the old build code literally stopped working...

## Using a "Don't Ask Again" Checkbox in Confirmation Dialogs

DevFeed: [Using a "Don't Ask Again" Checkbox in Confirmation Dialogs](<https://devfeed.tech/articles/tip-don-t-ask-again-19572.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/tip-dont-ask-again/>)

Author: Shai Almog

Published: 2017-06-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [dialog](<https://devfeed.tech/topics/dialog.md>)

Tags: [dialog](<https://devfeed.tech/tags/dialog.md>), [figure](<https://devfeed.tech/tags/figure.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [os](<https://devfeed.tech/tags/os.md>)

### AI overview

The article discusses confirmation dialogs for reversible actions, comparing macOS behavior with systems that repeatedly ask for confirmation. It proposes a dialog with a "don't ask again" checkbox as a compromise between safety and user convenience.

### Source excerpt

One of my favorite things about Mac OS is something subtle that took me a while to notice: it doesn't ask stupid questions. If you delete a file on a Mac it goes to the trashcan immediately, no question. Even though other OS's copied the trashcan concept they didn't embrace it in the same way, most of them still ask whether you are sure about this action even though the action is reversible.

## Elasticsearch and Kibana for Selenium Automation

DevFeed: [Elasticsearch and Kibana for Selenium Automation](<https://devfeed.tech/articles/elasticsearch-and-kibana-for-selenium-automation-27935.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2015-12-02-selenium_with_kibana/>)

Author: Teodor Rupi Follow

Published: 2015-12-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [kibana](<https://devfeed.tech/topics/kibana.md>), [Selenium](<https://devfeed.tech/topics/selenium.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Apache Kafka](<https://devfeed.tech/topics/apache-kafka.md>), [Data visualization](<https://devfeed.tech/topics/data-visualization.md>), [elasticsearch](<https://devfeed.tech/topics/elasticsearch.md>), [Jenkins](<https://devfeed.tech/topics/jenkins.md>), [logstash](<https://devfeed.tech/topics/logstash.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [apache](<https://devfeed.tech/tags/apache.md>), [automation](<https://devfeed.tech/tags/automation.md>), [backend](<https://devfeed.tech/tags/backend.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [ci](<https://devfeed.tech/tags/ci.md>), [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [devops](<https://devfeed.tech/tags/devops.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [java](<https://devfeed.tech/tags/java.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [kibana](<https://devfeed.tech/tags/kibana.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logstash](<https://devfeed.tech/tags/logstash.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [maven](<https://devfeed.tech/tags/maven.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [selenium](<https://devfeed.tech/tags/selenium.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article describes trivago's Selenium-based automated testing infrastructure and its use of Kibana for real-time reporting, filtering, and analysis of test results. It outlines a setup that uses Jenkins, Kafka, Logstash, Elasticsearch, and Kibana, with testing across multiple platforms and browsers.

### Source excerpt

The advances and growth of our Selenium based automated testing infrastructure generated an unexpected number of test results to evaluate. We had to rethink our reporting systems. Combining the power of Selenium with Kibana's graphing and filtering features totally changed our way of working.

## Creating standalone Mac OS X applications with Python and py2app

DevFeed: [Creating standalone Mac OS X applications with Python and py2app](<https://devfeed.tech/articles/creating-standalone-mac-os-x-applications-with-python-and-py2app-31828.md>)

Original publisher: [Read original article](<https://www.metachris.dev/2015/11/create-standalone-mac-os-x-applications-with-python-and-py2app/>)

Author: Chris Hager

Published: 2015-11-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Chris Hager](<https://devfeed.tech/sources/chris-hager.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [App](<https://devfeed.tech/topics/app.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [applications](<https://devfeed.tech/tags/applications.md>), [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [github](<https://devfeed.tech/tags/github.md>), [issue-tracker](<https://devfeed.tech/tags/issue-tracker.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [python](<https://devfeed.tech/tags/python.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial on using py2app to package Python 2 or 3 source code, including a Tkinter interface, as standalone Mac OS X applications. It covers setup, development and testing with alias mode, deployment builds, data files, and troubleshooting a known bug.

### Source excerpt

In this tutorial we'll be using py2app to create a standalone OSX application from a Python 2 or 3 source code with a simple Tkinter user interface. "py2app is a Python setuptools command which will allow you to make standalone application bundles and plugins from Python scripts. py2app is similar in purpose and design to py2exe for Windows." Relevant links about py2app: Documentation Source on BitBucket (last commit 2015-05-05) Issue Tracker, Mailing List This guide is loosely based on the official tutorial.

## OpenMP Support

DevFeed: [OpenMP Support](<https://devfeed.tech/articles/openmp-support-42976.md>)

Original publisher: [Read original article](<https://blog.llvm.org/2015/05/openmp-support_22.html>)

Author: Alexey Bataev

Published: 2015-05-22T08:23:00Z

Content type: release

Language: en

Sources: [LLVM Project](<https://devfeed.tech/sources/the-llvm-project-blog.md>)

Topics: [clang](<https://devfeed.tech/topics/clang.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Parallelism](<https://devfeed.tech/topics/parallelism.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [C](<https://devfeed.tech/topics/c.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [intel](<https://devfeed.tech/topics/intel.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [c](<https://devfeed.tech/tags/c.md>), [clang](<https://devfeed.tech/tags/clang.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [headers](<https://devfeed.tech/tags/headers.md>), [intel](<https://devfeed.tech/tags/intel.md>), [library](<https://devfeed.tech/tags/library.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [openmp](<https://devfeed.tech/tags/openmp.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

LLVM reports completed OpenMP support in Clang, covering all OpenMP 3.1 pragmas and clauses, selected OpenMP 4.0 features, and integration with the LLVM OpenMP runtime. The article explains parallelism, vectorization, supported processor architectures, compiler compatibility, build flags, runtime library paths, and a sample C program.

### Source excerpt

OpenMP support in Clang compiler is completed! Every pragma and clause from 3.1 version of the standard is supported in full, including combined directives (like '#pragma omp parallel for' and '#pragma omp parallel sections'). In addition, some elements of OpenMP 4.0 are supported as well. This includes "almost complete" support for '#pragma omp simd" and full support for '#pragma omp atomic' (combined pragmas and a couple of clauses are still missing). OpenMP enables Clang users to harness full power of modern multi-core processors with vector units. Pragmas from OpenMP 3.1 provide an industry standard way to employ task parallelism, while '#pragma omp simd' is a simple yet flexible way to enable data parallelism (aka vectorization). Clang implementation of OpenMP standard relies on LLVM OpenMP runtime library, available at http://openmp.llvm.org/. This runtime supports ARM® architecture processors, PowerPC™ processors, 32 and 64 bit X86 processors and provides ABI compatibility with GCC and Intel's existing OpenMP compilers. To enable OpenMP, just add '-fopenmp' to the command line and provide paths to OpenMP headers and library with '-I <path to omp.h> -L <LLVM OpenMP library path>'. To run a compiled program you may need to provide a path to shared OpenMP library as well: $ export LD_LIBRARY_PATH=<OpenMP library path>:$LD_LIBRARY_PATH or: $ export DYLD_LIBRARY_PATH=<OpenMP library path>:$DYLD_LIBRARY_PATH on Mac OS X. You can confirm that the compiler works correctly by trying this simple parallel C program: #include <omp.h> #include <stdio.h> int main() { #pragma omp parallel printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads()); } Compile it (you should see no errors or warnings): $ clang -fopenmp -I <path to omp.h> -L <LLVM OpenMP library path> hello_openmp.c -o hello_openmp and execute: $ export [DY]LD_LIBRARY_PATH=<OpenMP library path>:$[DY]LD_LIBRARY_PATH $ ./hello_openmp You will see more than one "Hello" line with dif

## Introducing JVM - The Java Version Manager

DevFeed: [Introducing JVM - The Java Version Manager](<https://devfeed.tech/articles/introducing-jvm-the-java-version-manager-37784.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/introducing-jvm/>)

Author: Carlos Alexandro Becker

Published: 2015-02-22T00:00:00Z

Content type: release

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [version](<https://devfeed.tech/topics/version.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [java](<https://devfeed.tech/tags/java.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [shell-script](<https://devfeed.tech/tags/shell-script.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

The article introduces JVM, a shell script that automatically selects a project's Java version. It detects project files and properties, matches them with installed Java versions, and supports Mac OS X and Ubuntu.

### Source excerpt

In recent years it has become more and more common to work in different projects running on different versions of Java. There are still some running on Java 6, and there are tons already running on Java 8.

## Cross Compile Your Go Programs

DevFeed: [Cross Compile Your Go Programs](<https://devfeed.tech/articles/cross-compile-your-go-programs-22077.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/10/cross-compile-your-go-programs.html>)

Published: 2013-10-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Cross-Compilation](<https://devfeed.tech/topics/cross-compilation.md>), [builds](<https://devfeed.tech/topics/builds.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [branch](<https://devfeed.tech/tags/branch.md>), [builds](<https://devfeed.tech/tags/builds.md>), [checkout](<https://devfeed.tech/tags/checkout.md>), [clone](<https://devfeed.tech/tags/clone.md>), [cross](<https://devfeed.tech/tags/cross.md>), [git](<https://devfeed.tech/tags/git.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [programming](<https://devfeed.tech/tags/programming.md>), [source](<https://devfeed.tech/tags/source.md>), [source-code](<https://devfeed.tech/tags/source-code.md>)

### AI overview

The author describes preparing to cross-compile Go programs for darwin/amd64 and linux/amd64 from a Mac, avoiding a switch to an Ubuntu VM for local Linux builds. The excerpt recommends standard Go distribution packages if cross-compilation is unnecessary; otherwise it begins setup by installing Git, cloning the Go source into a `go` directory under `$HOME`, and checking out Go 1.4.1. The text cuts off just as the author starts describing builds for each target, so it does not provide the actual build steps.

### Source excerpt

Introduction In my post about building and running programs in Iron.Io, I needed to switched over to my Ubuntu VM to build linux versions of my test programs locally. I love the ability to have Ubuntu available to me for building and testing my code. However, if I can stay on the Mac side it is better. I have wanted to learn how to cross compile my Go programs for the two platforms I use, darwin/amd64 and linux/amd64. This way I could create final builds of my programs and publish everything from my Mac OS. After a couple of hours I am finally able to do this. If you don't have the need to cross compile your code then I recommend you stick with the traditional distribution packages and installs for Go. If this is something you need, then it all starts with downloading the current release of the Go source code. Installing Git The Go source code is stored in a DVCS called Github and is located on github.com/golang/go. The first thing you need to do is install Git if you don't already have it. Go to the download page on the Git website: http://git-scm.com/downloads

## OS X Crash Report Symbolication

DevFeed: [OS X Crash Report Symbolication](<https://devfeed.tech/articles/os-x-crash-report-symbolication-25390.md>)

Original publisher: [Read original article](<https://smileykeith.com/2013/08/09/os-x-crash-symbolication/>)

Author: Keith Smiley

Published: 2013-08-09T20:26:00Z

Content type: tutorial

Language: en

Sources: [Keith Smiley](<https://devfeed.tech/sources/keith-smiley.md>)

Topics: [macOS](<https://devfeed.tech/topics/macos.md>), [Crashlytics](<https://devfeed.tech/topics/crashlytics.md>), [experience report](<https://devfeed.tech/topics/experience-report.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [crash](<https://devfeed.tech/tags/crash.md>), [crashlytics](<https://devfeed.tech/tags/crashlytics.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [issue](<https://devfeed.tech/tags/issue.md>), [load](<https://devfeed.tech/tags/load.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [macos](<https://devfeed.tech/tags/macos.md>), [native](<https://devfeed.tech/tags/native.md>), [os](<https://devfeed.tech/tags/os.md>), [release](<https://devfeed.tech/tags/release.md>), [report](<https://devfeed.tech/tags/report.md>), [reports](<https://devfeed.tech/tags/reports.md>), [root](<https://devfeed.tech/tags/root.md>), [sail](<https://devfeed.tech/tags/sail.md>), [version](<https://devfeed.tech/tags/version.md>), [x](<https://devfeed.tech/tags/x.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

The author uses Apple's `atos` to resolve addresses in OS X crash reports, specifying the app's matching archive dSYM, `-arch x86_64`, and the app's load address with `-l`. They locate the dSYM through Xcode Organizer's Archives tab by matching the report's version and build number, then copy it from the archive. The load address may appear as `Load Address`; otherwise, the author finds the app's address range under `Binary Images`. Feeding crash addresses to `atos` identifies methods and source lines, which exposed both an unexpected `dealloc` and an out-of-bounds array access. The account describes the author's experience and notes that OS X symbolication differed from the iOS guidance they found; it does not provide a complete general reference.

### Source excerpt

As you may know I write a small OS X called Sail. Over the past few months that it has been available I've received a few crash reports about an issue I wasn't able to reproduce. Today I decided I wanted to dive into them and see if I could at least figure out the root of the issue and fix it with my next release. This lead me down the rabbit hole of symbolication, something I personally hadn't dealt with myself before (since Crashlytics does it for you). I was hoping I would be able to find something around the internet about this, unfortunately what I mostly came up with was a lot of iOS related answers that didn't seem to work the same way and two links to Apple documentation that have been removed. Other than the process for symbolicating reports for OS X apps seems to be different than iOS apps which there is plenty of documentation for (I'm not bitter). Daniel Jalkut has a post about these but his exact method didn't seem to work for me. Here is what did work for me. For my first abridged crash report I had this Process: Sail [35072] Path: /Applications/Sail.app/Contents/MacOS/Sail Load Address: 0x106823000 Identifier: com.keithsmiley.SailOSX Version: 4 (1.2.0) Code Type: x86_64 (Native) Parent Process: launchd [207] Date/Time: 2013-07-19 16:09:24.097 +0200 OS Version: Mac OS X 10.8.4 (12E55) Report Version: 8 Thread 0: 13 Accounts 0x00007fff839fd1b1 -[ACAccountStore accountTypeWithAccountTypeIdentifier:] + 230 14 Sail 0x00000001068308f7 15 Sail 0x0000000106830798 16 Sail 0x0000000106825249 17 CoreFoundation 0x00007fff82465eda _CFXNotificationPost + 2554 18 Foundation 0x00007fff8611b7b6 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64 31 AppKit 0x00007fff812cc1a3 -[NSApplication run] + 517 32 AppKit 0x00007fff81270bd6 NSApplicationMain + 869 33 libdyld.dylib 0x00007fff869d07e1 start + 0 Binary Images: 0x106823000 - 0x106896fff com.keithsmiley.SailOSX (1.2.0 - 4) <D1F313B6-21F6-341B-8627-5480C5D1DB20> /Applications/Sail.app/Contents/MacOS/Sail

## Handling crashes on Mac OS X: ordering of Mach exceptions versus POSIX signals

DevFeed: [Handling crashes on Mac OS X: ordering of Mach exceptions versus POSIX signals](<https://devfeed.tech/articles/handling-crashes-on-mac-os-x-ordering-of-mach-exceptions-versus-posix-signals-21565.md>)

Original publisher: [Read original article](<http://lackingrhoticity.blogspot.com/2013/08/handling-crashes-on-mac-os-x.html>)

Author: Mark Seaborn (noreply@blogger.com)

Published: 2013-08-07T20:25:00Z

Content type: tutorial

Language: en

Sources: [Mark Seaborn](<https://devfeed.tech/sources/mark-seaborn.md>)

Topics: [Operating system](<https://devfeed.tech/topics/operating-system.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Process](<https://devfeed.tech/topics/process.md>), [Exception](<https://devfeed.tech/topics/exception.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [out-of-process](<https://devfeed.tech/topics/out-of-process.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>)

Tags: [crash](<https://devfeed.tech/tags/crash.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [exception](<https://devfeed.tech/tags/exception.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [handler](<https://devfeed.tech/tags/handler.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [memory](<https://devfeed.tech/tags/memory.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [os](<https://devfeed.tech/tags/os.md>), [out-of-process](<https://devfeed.tech/tags/out-of-process.md>), [posix](<https://devfeed.tech/tags/posix.md>), [process](<https://devfeed.tech/tags/process.md>), [processes](<https://devfeed.tech/tags/processes.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [signal](<https://devfeed.tech/tags/signal.md>)

### AI overview

This article explains how Mac OS X handles hardware exceptions through POSIX signals and Mach exceptions. It reports that Mach exception handlers receive priority, while the kernel uses a first-chance Mach handler, a POSIX signal handler, and a second-chance Mach handler when handling faults and crashes.

### Source excerpt

Mac OS X is a curious operating system because its kernel is derived from two kernel codebases -- the Mach kernel and a BSD kernel -- that have been glued together. From these two ancestors, OS X inherits two different mechanisms for processes to handle hardware exceptions (a.k.a. faults): POSIX signals: In-process only. Registered per-process. The handler is always called on the thread that produced the fault. Mach exceptions: Allow both in-process and out-of-process handling. Can be registered per-thread and per-process. The handler is invoked via Mach RPC. On OS X, it's possible for a process to have both POSIX signal handlers and Mach exception handlers registered. It's not immediately obvious which of the two handlers will take priority and get invoked first, but experimentation shows that it's the Mach handler. If a process faults with a memory access error, the Mach exception handler for EXC_BAD_ACCESS gets invoked first, and if this handler returns KERN_FAILURE, the POSIX signal handler for SIGBUS will then be invoked. However, that's not the full story. OS X has a built-in Crash Reporter service which will create a crash dump if an application crashes and pop up a dialog box. Crash Reporter works via Mach exception handling and runs out-of-process. An application will normally have Crash Reporter's crash handler registered as one of its default Mach exception handlers. But what stops this handler from interfering with normal use of POSIX signals, if Mach exception handlers take priority over POSIX signals? The answer is that OS X's kernel has three steps for handling a hardware exception: First-chance Mach exception handler: The kernel tries to invoke the Mach exception handler registered for the type of fault that occurred, e.g. EXC_BAD_ACCESS. If there's no handler registered, it skips this step. If the handler returns KERN_SUCCESS, the kernel resumes the thread that faulted. POSIX signal handler: If the Mach exception handler was absent or returned KERN_

## Installing Go, Gocode, GDB and LiteIDE

DevFeed: [Installing Go, Gocode, GDB and LiteIDE](<https://devfeed.tech/articles/installing-go-gocode-gdb-and-liteide-22049.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/06/installing-go-gocode-gdb-and-liteide.html>)

Published: 2013-06-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [user guide](<https://devfeed.tech/topics/user-guide.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [Bash](<https://devfeed.tech/topics/bash.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [bash-shell](<https://devfeed.tech/tags/bash-shell.md>), [blog](<https://devfeed.tech/tags/blog.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [installation](<https://devfeed.tech/tags/installation.md>), [installer](<https://devfeed.tech/tags/installer.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [programming](<https://devfeed.tech/tags/programming.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The excerpt gives Mac OS X setup steps for Go: download the installer for the system version and architecture, install it to /usr/local/go, verify the installation, then create a projects directory with src and bin subdirectories and set it as GOPATH in .bash_profile, adding GOPATH/bin to PATH. It also suggests showing hidden files in Finder. The document says its gocode and GDB sections were removed as no longer necessary, and points Windows users to a separate setup guide. The excerpt ends as basic package setup begins.

### Source excerpt

Check out my new installtion document: External resource on ardanlabs.com: https://www.ardanlabs.com/blog/2016/05/installing-go-and-your-workspace.html I removed the sections about gocode and GDB. These are not necessary any longer. I also added links for more editors. Windows This is a great post by Wade Wegner for installing Go on your Windows Machine: External resource on wadewegner.com: http://www.wadewegner.com/2014/12/easy-go-programming-setup-for-windows/ Mac OS X The following instructions will guide you through installing Go on your Mac. Step 1: Download Go Open your favorite browser and go to the following website: External resource on golang.org: http://golang.org/dl/ Screen Shot This will show you all the latest builds for the different operating systems. Darwin is the name for the Mac OS. Download the installer package for your OS version and architecture. Once downloaded go to your Downloads folder in Finder and double click on the pkg file to start the installation. The installation will put Go in /usr/local/go. Once the installation is complete you will want to check the installation. Note: Moving forward we will be using both Terminal and Finder. It helps to be able to see all the files in Finder. Finder by default will not show you everything that is on your hard drive. To show all files in Finder: Open a Terminal session. If you don't know where the Terminal program is go to your Applications folder in Finder and then Utilities. Click on Terminal and a bash shell command window will open. Execute the following commands in Terminal. defaults write com.apple.finder AppleShowAllFiles TRUE killall Finder The killall Finder will reload the Finder program and now you can see all the files. Step 2: Check Installation Open a Terminal session and type the following command go version You should see the following if everything installed correctly go version go1.5 darwin/amd64 Now type the

## Reinventing spinlocks

DevFeed: [Reinventing spinlocks](<https://devfeed.tech/articles/reinventing-spinlocks-38911.md>)

Original publisher: [Read original article](<https://idea.popcount.org/2012-09-12-reinventing-spinlocks>)

Author: Marek

Published: 2012-09-11T22:00:00Z

Content type: article

Language: en

Sources: [Marek Majkowski](<https://devfeed.tech/sources/marek-majkowski.md>)

Topics: [synchronization](<https://devfeed.tech/topics/synchronization.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Library](<https://devfeed.tech/topics/library.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [architectures](<https://devfeed.tech/tags/architectures.md>), [article](<https://devfeed.tech/tags/article.md>), [asm](<https://devfeed.tech/tags/asm.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [c](<https://devfeed.tech/tags/c.md>), [cas](<https://devfeed.tech/tags/cas.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [locks](<https://devfeed.tech/tags/locks.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [memory](<https://devfeed.tech/tags/memory.md>), [os](<https://devfeed.tech/tags/os.md>)

### AI overview

The article replaces a compare-and-swap unlock with an unconditional store of 0, while retaining compare-and-swap to acquire the lock. Its lock loop retries up to 10,000 times before calling sched_yield(). A compiler memory clobber prevents GCC from reordering the unlock write; the author notes other architectures may also need a write barrier. In the reported benchmarks, CAS/store matches pthread spinlock speed, though locks account for only part of the measured work. The excerpt also provides a pthread spinlock shim for platforms lacking pthread_spin_lock and mentions ConcurrencyKit as an alternative.

### Source excerpt

Reinventing spinlocks In the previous article I was playing with the implementation of the concurrent Queue in C. During the experiments I tried to outsmart library and beat the speed of their spinlock implementation. CAS/CAS My first attempt was to use compare-and-swap instruction for the spinlock. Here's the code, basically we spin till the lock is acquired: This approach works well, but we can still do better. CAS/store It's easy to notice that the doesn't actually need the heavy write.

## Desktop Sharing Kits for OS X and Windows

DevFeed: [Desktop Sharing Kits for OS X and Windows](<https://devfeed.tech/articles/desktop-sharing-kits-for-os-x-and-windows-2025.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//desktop-sharing-kits>)

Published: 2012-04-10T00:00:00Z

Content type: release

Language: en

Sources: [SoundCloud Backstage](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [Windows](<https://devfeed.tech/topics/windows.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [open source communities](<https://devfeed.tech/topics/open-source-communities.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [application](<https://devfeed.tech/tags/application.md>), [applications](<https://devfeed.tech/tags/applications.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [download](<https://devfeed.tech/tags/download.md>), [functionality](<https://devfeed.tech/tags/functionality.md>), [github](<https://devfeed.tech/tags/github.md>), [handling](<https://devfeed.tech/tags/handling.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [microsoft-windows](<https://devfeed.tech/tags/microsoft-windows.md>), [open](<https://devfeed.tech/tags/open.md>), [os](<https://devfeed.tech/tags/os.md>), [process](<https://devfeed.tech/tags/process.md>), [share](<https://devfeed.tech/tags/share.md>), [sharing](<https://devfeed.tech/tags/sharing.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

SoundCloud's Desktop Sharing Kits let Windows and OS X applications add "Share to SoundCloud" functionality. Each kit is a separate executable that an application includes and invokes; it provides the sharing interface and handles the upload process. The kits are open source and available on GitHub. The excerpt does not describe differences between the Windows and Mac versions.

### Source excerpt

Last week we announced a new integration with Ableton Live 8, that lets you easily share your sounds from within Ableton Live to SoundCloud. Today we're making the technology behind that integration available to everyone through our new Desktop Sharing Kits. Mac Desktop Sharing Kit

## Clang++ Builds Boost!

DevFeed: [Clang++ Builds Boost!](<https://devfeed.tech/articles/clang-builds-boost-42850.md>)

Original publisher: [Read original article](<https://blog.llvm.org/2010/05/clang-builds-boost.html>)

Author: Doug Gregor

Published: 2010-05-20T13:42:00Z

Content type: news

Language: en

Sources: [LLVM Project](<https://devfeed.tech/sources/the-llvm-project-blog.md>)

Topics: [clang](<https://devfeed.tech/topics/clang.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Library](<https://devfeed.tech/topics/library.md>), [test](<https://devfeed.tech/topics/test.md>), [builds](<https://devfeed.tech/topics/builds.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [test](<https://devfeed.tech/tags/test.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

Clang++ successfully completed the applicable Boost regression tests, compiling more of the C++ library than established compilers in the reported configuration. The article describes the Mac OS X and x86-64 test setup, how to configure Boost.Build to use Clang, and an MPI test limitation caused by Serialization library breakage.

### Source excerpt

Boost is a collection of open-source, peer-reviewed C++ libraries that's well-known for having many good utility components for C++ programmers. It's also well-known for using bleeding-edge C++ techniques, such as extensive template and preprocessor metaprogramming, that have pushed many C++ compilers beyond their breaking point. Beyond just being a library, Boost has become a benchmark and a selling point for C++ compilers: is your compiler standards-confomant enough to build Boost? Clang is. This morning, Clang++ had its first fully-successful Boost regression test run, passing every applicable C++ test on the Boost release branch [*]. According to today's results, Clang is successfully compiling more of Boost than other, established compilers for which Boost has historically been tailored (through various workarounds and configuration switches). In fact, Clang's compiler configuration in Boost is completely free of any of Boost's C++98/03 defect macros. As for the specifics: tests were run on Mac OS X 10.6 (Snow Leopard) with Clang targeting x86-64, debug build of Boost with the Clang toolset and a Release build of Clang from Subversion trunk. If you want to try Boost with Clang, first get Clang from Subversion trunk and then get Boost from Subversion (the release branch is most stable) and edit your ~/user-config.jam file by adding the following line: using clang ; assuming that "clang++" is in your path. Then, you can run bjam toolset=clang to instruct Boost.Build to use Clang as its compiler. [*] For those keeping score, the "build" results are build-system tests, not compiler tests, and the MPI tests are disabled due to breakage in the Serialization library. We are working with the library author to address the Serialization problems in Boost.