high sierra – quicklook skips around in the beginning when playing foreign audio formats (flac, mp3)

If I generate preview of an audio file of foreign format, for example, flac or mp3, quicklook skips around 2 times in the first 10~15 seconds of playing. This does not happen for native formats like aiff or m4a (alac).

Sample file (original plus quicklook output): https://github.com/sclsj/quicklook or https://scls-my.sharepoint.cn/:f:/g/personal/joyjin_scls-sh_org/EvhC-EDGb9hMhRaLViY3tzgBR4W20ggQTu6eKqx0Li6DXQ?e=fbqHn9

Sample output (qlmanage -d 4 -p)

qlmanage -d 4 -p /volumes/Seagate 5T (Joy Jin)/tmp/QQ音乐/東方花映塚/上海アリス幻樂団 (上海爱莉丝幻乐团)-六十年目の東方裁判~Fate of Sixty Years.mp3 

Testing Quick Look preview with files:
    /volumes/Seagate 5T (Joy Jin)/tmp/QQ音乐/東方花映塚/上海アリス幻樂団 (上海爱莉丝幻乐团)-六十年目の東方裁判~Fate of Sixty Years.mp3
(DEBUG) Registering <QLGenerator Web.qlgenerator> for com.apple.webarchive
(DEBUG) Registering <QLGenerator Web.qlgenerator> for public.html
(DEBUG) Registering <QLGenerator Web.qlgenerator> for public.xhtml
(DEBUG) Registering <QLGenerator Web.qlgenerator> for public.svg-image
(DEBUG) Registering <QLGenerator Clippings.qlgenerator> for com.apple.finder.textclipping
(DEBUG) Registering <QLGenerator Clippings.qlgenerator> for com.apple.finder.pictclipping
(DEBUG) Registering <QLGenerator Clippings.qlgenerator> for com.apple.pict
(DEBUG) Registering <QLGenerator Clippings.qlgenerator> for com.apple.internet-location
(DEBUG) Registering <QLGenerator Package.qlgenerator> for com.apple.package
(DEBUG) Registering <QLGenerator Image.qlgenerator> for public.image
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/SceneKit.qlgenerator> for public.3d-content
(DEBUG) Registering <QLGenerator Text.qlgenerator> for public.plain-text
(DEBUG) Registering <QLGenerator Text.qlgenerator> for public.rtf
(DEBUG) Registering <QLGenerator Text.qlgenerator> for com.apple.rtfd
(DEBUG) Registering <QLGenerator Text.qlgenerator> for org.oasis-open.opendocument.text
(DEBUG) Registering <QLGenerator Text.qlgenerator> for com.apple.property-list
(DEBUG) Registering <QLGenerator Text.qlgenerator> for public.xml
(DEBUG) Registering <QLGenerator Font.qlgenerator> for public.font
(DEBUG) Registering <QLGenerator PDF.qlgenerator> for com.adobe.pdf
(DEBUG) Registering <QLGenerator Audio.qlgenerator> for public.audio
(DEBUG) Registering <QLGenerator StandardBundles.qlgenerator> for com.apple.application
(DEBUG) Registering <QLGenerator StandardBundles.qlgenerator> for com.apple.systempreference.prefpane
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/iBooks.qlgenerator> for org.idpf.epub-folder
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/iBooks.qlgenerator> for com.apple.ibooks-folder
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/iBooks.qlgenerator> for org.idpf.epub-container
(DEBUG) Registering <QLGenerator LivePhoto.qlgenerator> for com.apple.private.live-photo-bundle
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Security.qlgenerator> for public.x509-certificate
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Security.qlgenerator> for public.x509-printable-encoded-archive
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Security.qlgenerator> for com.rsa.pkcs-12
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Security.qlgenerator> for com.apple.keychain
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/iChat.qlgenerator> for com.apple.ichat.ichat
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/iChat.qlgenerator> for com.apple.ichat.transcript
(DEBUG) Registering <QLGenerator Movie.qlgenerator> for public.movie
(DEBUG) Registering <QLGenerator Bookmark.qlgenerator> for com.apple.safari.bookmark
(DEBUG) Registering <QLGenerator Bookmark.qlgenerator> for com.apple.safari.history
(DEBUG) Registering <QLGenerator iCal.qlgenerator> for com.apple.ical.bookmark
(DEBUG) Registering <QLGenerator iCal.qlgenerator> for com.apple.ical.bookmark.todo
(DEBUG) Registering <QLGenerator iCal.qlgenerator> for com.apple.ical.ics
(DEBUG) Registering <QLGenerator iCal.qlgenerator> for com.apple.ical.ics.event
(DEBUG) Registering <QLGenerator iCal.qlgenerator> for com.apple.ical.ics.todo
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Mail.qlgenerator> for com.apple.mail.email
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Mail.qlgenerator> for com.apple.mail.emlx
(DEBUG) Registering <QLGenerator EPS.qlgenerator> for com.adobe.encapsulated-postscript
(DEBUG) Registering <QLGenerator EPS.qlgenerator> for com.adobe.illustrator.ai-image
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.word.doc
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.word.dot
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.word.stationery
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.excel.xls
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.excel.xlt
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.powerpoint.ppt
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.powerpoint.pot
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for com.microsoft.powerpoint.pps
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.wordprocessingml.document
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.wordprocessingml.template
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.wordprocessingml.document.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.wordprocessingml.template.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.spreadsheetml.sheet
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.spreadsheetml.template
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.spreadsheetml.sheet.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.spreadsheetml.template.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.presentationml.presentation
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.presentationml.template.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.presentationml.template
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.presentationml.presentation.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.presentationml.slideshow
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for org.openxmlformats.presentationml.slideshow.macroenabled
(DEBUG) Registering <QLGenerator /System/Library/QuickLook/Office.qlgenerator> for public.comma-separated-values-text
(DEBUG) Registering <QLGenerator Icon.qlgenerator> for com.apple.iconset
(DEBUG) Registering <QLGenerator Contact.qlgenerator> for public.vcard
(DEBUG) Registering <QLGenerator Contact.qlgenerator> for com.apple.addressbook.person
(DEBUG) Registering <QLGenerator Contact.qlgenerator> for com.apple.addressbook.group
(DEBUG) Registering <QLGenerator LocPDF.qlgenerator> for com.apple.localized-pdf-bundle
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.numbers.numbers
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.numbers.sffnumbers
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.numbers.numbers-tef
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.numbers.sfftemplate
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.numbers.template
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.pages.pages
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.pages.sffpages
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.pages.pages-tef
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.pages.sfftemplate
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.pages.template
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.keynote.key
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.keynote.key
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.keynote.sffkey
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.keynote.key-tef
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.keynote.sffkth
(DEBUG) Registering <QLGenerator /Library/QuickLook/iWork.qlgenerator> for com.apple.iwork.keynote.kth
(DEBUG) Registering <QLGenerator /Library/QuickLook/QuickNFO.qlgenerator> for org.planbnet.nfo
(DEBUG) Registering <QLGenerator /Library/QuickLook/iBooksAuthor.qlgenerator> for com.apple.ibooksauthor.book
(DEBUG) Registering <QLGenerator /Applications/Xcode.app/Contents/Library/QuickLook/DVTProvisioningProfileQuicklookGenerator.qlgenerator> for com.apple.mobileprovision
(DEBUG) Registering <QLGenerator /Applications/Xcode.app/Contents/Library/QuickLook/DVTProvisioningProfileQuicklookGenerator.qlgenerator> for com.apple.provisionprofile
(DEBUG) Registering <QLGenerator /Applications/Parallels Desktop.app/Contents/Library/QuickLook/ParallelsQL.qlgenerator> for com.parallels.vm.vmpackage
(DEBUG) Registering <QLGenerator /Applications/Parallels Desktop.app/Contents/Library/QuickLook/ParallelsQL.qlgenerator> for com.parallels.vm.vmpackage.compressed
(DEBUG) Registering <QLGenerator /Applications/Parallels Desktop.app/Contents/Library/QuickLook/ParallelsQL.qlgenerator> for com.vmware.foreign.pvm
(DEBUG) Registering <QLGenerator /Applications/Parallels Desktop.app/Contents/Library/QuickLook/ExeQL.qlgenerator> for com.microsoft.windows-executable
(DEBUG) Registering <QLGenerator /Applications/Sibelius.app/Contents/Library/QuickLook/SibeliusScore.qlgenerator> for com.sibelius.score
(DEBUG) Registering <QLGenerator /Applications/GarageBand.app/Contents/Library/QuickLook/GarageBandQLGenerator.qlgenerator> for com.apple.garageband.project
(DEBUG) Registering <QLGenerator /Applications/GarageBand.app/Contents/Library/QuickLook/GarageBandQLGenerator.qlgenerator> for com.apple.garageband.template.magic
(DEBUG) Registering <QLGenerator /Applications/GarageBand.app/Contents/Library/QuickLook/GarageBandQLGenerator.qlgenerator> for com.apple.garageband.template.magicmentor
(DEBUG) Registering <QLGenerator /Applications/GarageBand.app/Contents/Library/QuickLook/LogicXQLGenerator.qlgenerator> for com.apple.logicx.project
(DEBUG) file:///Applications/Logic%20Pro%20X.app/Contents/Library/QuickLook/LogicXQLGenerator.qlgenerator/ is older than <QLGenerator /Applications/GarageBand.app/Contents/Library/QuickLook/LogicXQLGenerator.qlgenerator>. Ignoring
(DEBUG) Registering <QLGenerator /Applications/Parallels Toolbox.app/Contents/Library/QuickLook/ParallelsToolboxQuickLookPlugin.qlgenerator> for com.apple.application-bundle
(DEBUG) Registering <QLGenerator /Applications/Parallels Toolbox.app/Contents/Library/QuickLook/ParallelsToolboxQuickLookPlugin.qlgenerator> for com.apple.application
(DEBUG) Registering <QLGenerator /Applications/Polyspace/R2019b.app/Contents/Library/QuickLook/quickLookSLX.qlgenerator> for com.mathworks.simulink-model-slx
(DEBUG) Registering <QLGenerator /Applications/Polyspace/R2019b.app/Contents/Library/QuickLook/quickLookSLX.qlgenerator> for com.mathworks.matlab-app
(DEBUG) Registering <QLGenerator /Applications/Polyspace/R2019b.app/Contents/Library/QuickLook/quickLookSLX.qlgenerator> for com.mathworks.matlab-app-install
(DEBUG) Registering <QLGenerator /Applications/Polyspace/R2019b.app/Contents/Library/QuickLook/quickLookSLX.qlgenerator> for com.mathworks.matlab-toolbox
(DEBUG) Registering <QLGenerator /Applications/Polyspace/R2019b.app/Contents/Library/QuickLook/quickLookSLX.qlgenerator> for com.mathworks.simulink-template
(DEBUG) Registering <QLGenerator /Applications/Polyspace/R2019b.app/Contents/Library/QuickLook/quickLookSLX.qlgenerator> for com.mathworks.matlab-data-export
(DEBUG) Preview test for file:///volumes/Seagate%205T%20(Joy%20Jin)/tmp/QQ%E9%9F%B3%E4%B9%90/%E6%9D%B1%E6%96%B9%E8%8A%B1%E6%98%A0%E5%A1%9A/%E4%B8%8A%E6%B5%B7%E3%82%A2%E3%83%AA%E3%82%B9%E5%B9%BB%E6%A8%82%E5%9B%A3%20(%E4%B8%8A%E6%B5%B7%E7%88%B1%E8%8E%89%E4%B8%9D%E5%B9%BB%E4%B9%90%E5%9B%A2)-%E5%85%AD%E5%8D%81%E5%B9%B4%E7%9B%AE%E3%81%AE%E6%9D%B1%E6%96%B9%E8%A3%81%E5%88%A4%EF%BD%9EFate%20of%20Sixty%20Years.mp3. Content type UTI: public.mp3
(DEBUG) Previewing file:///volumes/Seagate%205T%20(Joy%20Jin)/tmp/QQ%E9%9F%B3%E4%B9%90/%E6%9D%B1%E6%96%B9%E8%8A%B1%E6%98%A0%E5%A1%9A/%E4%B8%8A%E6%B5%B7%E3%82%A2%E3%83%AA%E3%82%B9%E5%B9%BB%E6%A8%82%E5%9B%A3%20(%E4%B8%8A%E6%B5%B7%E7%88%B1%E8%8E%89%E4%B8%9D%E5%B9%BB%E4%B9%90%E5%9B%A2)-%E5%85%AD%E5%8D%81%E5%B9%B4%E7%9B%AE%E3%81%AE%E6%9D%B1%E6%96%B9%E8%A3%81%E5%88%A4%EF%BD%9EFate%20of%20Sixty%20Years.mp3. Content type UTI: public.mp3. Generator used: <QLGenerator Audio.qlgenerator>
(DEBUG) Loading <QLGenerator Audio.qlgenerator>
(DEBUG) Previewing file:///volumes/Seagate%205T%20(Joy%20Jin)/tmp/QQ%E9%9F%B3%E4%B9%90/%E6%9D%B1%E6%96%B9%E8%8A%B1%E6%98%A0%E5%A1%9A/%E4%B8%8A%E6%B5%B7%E3%82%A2%E3%83%AA%E3%82%B9%E5%B9%BB%E6%A8%82%E5%9B%A3%20(%E4%B8%8A%E6%B5%B7%E7%88%B1%E8%8E%89%E4%B8%9D%E5%B9%BB%E4%B9%90%E5%9B%A2)-%E5%85%AD%E5%8D%81%E5%B9%B4%E7%9B%AE%E3%81%AE%E6%9D%B1%E6%96%B9%E8%A3%81%E5%88%A4%EF%BD%9EFate%20of%20Sixty%20Years.mp3 finished
(DEBUG) Thumbnailing file:///volumes/Seagate%205T%20(Joy%20Jin)/tmp/QQ%E9%9F%B3%E4%B9%90/%E6%9D%B1%E6%96%B9%E8%8A%B1%E6%98%A0%E5%A1%9A/%E4%B8%8A%E6%B5%B7%E3%82%A2%E3%83%AA%E3%82%B9%E5%B9%BB%E6%A8%82%E5%9B%A3%20(%E4%B8%8A%E6%B5%B7%E7%88%B1%E8%8E%89%E4%B8%9D%E5%B9%BB%E4%B9%90%E5%9B%A2)-%E5%85%AD%E5%8D%81%E5%B9%B4%E7%9B%AE%E3%81%AE%E6%9D%B1%E6%96%B9%E8%A3%81%E5%88%A4%EF%BD%9EFate%20of%20Sixty%20Years.mp3 (try #1)
(DEBUG) Thumbnailing file:///volumes/Seagate%205T%20(Joy%20Jin)/tmp/QQ%E9%9F%B3%E4%B9%90/%E6%9D%B1%E6%96%B9%E8%8A%B1%E6%98%A0%E5%A1%9A/%E4%B8%8A%E6%B5%B7%E3%82%A2%E3%83%AA%E3%82%B9%E5%B9%BB%E6%A8%82%E5%9B%A3%20(%E4%B8%8A%E6%B5%B7%E7%88%B1%E8%8E%89%E4%B8%9D%E5%B9%BB%E4%B9%90%E5%9B%A2)-%E5%85%AD%E5%8D%81%E5%B9%B4%E7%9B%AE%E3%81%AE%E6%9D%B1%E6%96%B9%E8%A3%81%E5%88%A4%EF%BD%9EFate%20of%20Sixty%20Years.mp3. Content type UTI: public.mp3. Generator used: <QLGenerator Audio.qlgenerator>
(DEBUG) Thumbnailing file:///volumes/Seagate%205T%20(Joy%20Jin)/tmp/QQ%E9%9F%B3%E4%B9%90/%E6%9D%B1%E6%96%B9%E8%8A%B1%E6%98%A0%E5%A1%9A/%E4%B8%8A%E6%B5%B7%E3%82%A2%E3%83%AA%E3%82%B9%E5%B9%BB%E6%A8%82%E5%9B%A3%20(%E4%B8%8A%E6%B5%B7%E7%88%B1%E8%8E%89%E4%B8%9D%E5%B9%BB%E4%B9%90%E5%9B%A2)-%E5%85%AD%E5%8D%81%E5%B9%B4%E7%9B%AE%E3%81%AE%E6%9D%B1%E6%96%B9%E8%A3%81%E5%88%A4%EF%BD%9EFate%20of%20Sixty%20Years.mp3 did not produce anything
2020-07-02 18:05:16.462 qlmanage(46072:1791597) *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x1d603, name = 'com.apple.coredrag'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2020-07-02 18:05:16.606 qlmanage(46072:1791597) *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x19e1f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.

qlmanage generated preview does not have the skipping around problem. qlmanage does produce a few more errors if I drag the time slice:

2020-07-02 18:07:36.486 qlmanage(46109:1793590) CMTimeMakeWithSeconds(27.947 seconds, timescale 1): warning: error of -0.947 introduced due to very low timescale
2020-07-02 18:07:36.487 qlmanage(46109:1793590) CMTimeMakeWithSeconds(28.215 seconds, timescale 1): warning: error of -0.215 introduced due to very low timescale
2020-07-02 18:07:37.824 qlmanage(46109:1793590) CMTimeMakeWithSeconds(67.678 seconds, timescale 1): warning: error of -0.678 introduced due to very low timescale
2020-07-02 18:07:37.825 qlmanage(46109:1793590) CMTimeMakeWithSeconds(67.946 seconds, timescale 1): warning: error of -0.946 introduced due to very low timescale

I don’t know how to troubleshoot this problem. Does anyone have any idea to why this occur or possible solutions?

System: macOS High Sierra 10.13.6

How can I pull off being two separate characters at the beginning of a campaign?

I will be playing a Changeling in an upcoming campaign (homebrew setting). I’m interested in hiding not only my race, but also having one or more "retainers" — alternate identities/personas that my changeling can slip into and out of as needed.

The catch is, I wish to conceal (at least at first) the fact that the PC and the NPC retainers are actually a single entity! The most straightforward way of doing this would seem to be observers seeing "both" characters arrive to the starting town at the same time. I would want this to deceive NPCs and fellow PCs.

What magic/mundane/class features do I need to pull off such a deception at level 1? If not, what’s the earliest level you could realistically pull the wool over NPC eyes, solo? The ruse must be able to confound casual observers, but bonus points if it can stand up to additional scrutiny!

I don’t have a set class for this character, but am leaning towards Bard, Rogue, or Wizard. Since I’m trying to fool the party as well, count on no help from them.





[ Politics ] Open Question : Is 2020 the beginning of the end of America ?

With the coronavirus and civil unrest going on I see things getting worse, this one YouTuber who’s a strong believer of Jesus Christ and a trump supporter and also did drugs like shrooms and dmt and saw god, anyways he was going on that Democrats could collapse the economy and society and blame it on Trump and the streets will be like the movie “the purge” and lost of law and order,

java – How to support alternative behaviour at the end of a pipeline when the new behaviour is decided at the beginning?

Let’s assume we have a few loosely coupled components that form a pipeline. At the end is an file generating component. A new requirement comes in that requires an parallel alternative behaviour for the last component. The interface doesn’t change, only the internal behaviour.
Great! This is what OOP and Dependency injection is all about. I create a seperate implementation, and then it’s just about wiring it all up. But, here’s the issue: the new behaviour is decided by user input and thus is aaaall the way at the “start” of the pipeline. I can’t think of a clean way on how to wire things up. Here’s the approaches I thought of and why I dislike them:

1 – Pass the argument through the entire pipeline and then decide on the new behaviour in the second to last component. Obviously the worst choice, since I augment every single interface. Yikes.

2 – Save the user input in some form of global (request-scoped) variable and retrieve it in the module that would call the possible alternative implementation. Pretty bad option since globals are usually a no-no and I modify a class that doesn’t even really have anything to do with the behaviour

3 – Do what’s OOP actually good at and simply inject the different behaviour at wire-up time. But for that I need to have a second calling object that has the different injected object… and inject that new object in another second object that’s one level higher up in the pipeline… all the way up to the top, where I then can easily start the “chosen” pipeline based on the user input. While this would be imho the “clean” solution of not having to modify any code except the entry point and the new injected class, I’d have to create a lot of Beans (Spring/Java here) that are in the end nothing more than a duplicate version of the already existing pipeline object, basically creating a parallel pipeline that’s completely identical except the ending. And that seems incredibly dirty and unflexible.

So, what did I miss? There must be some better or established way to deal with this. Perhaps inject different behaviour at runtime, but that could still requires me to pass through some strategy through modules that got nothing to do with this.

What is the purpose of the beginning of HL1, from the perspective of game design?

At the beginning of Half Life 1, player is locked into watching an introductory film that can’t be skipped and doesn’t teach anything about game mechanics. Player can only move their camera around. A similar technique was applied in Deus Ex 4. Given that it’s irritating not to be able to skip it on subsequent gameplays, what is the purpose of those?

textbox – Why can’t you reduce a selection from the beginning after selecting everything in a text input field?

The reason is consistency.

I do not have official reference literature on this, however, I believe it is possible for us to come to a comfortable reasoning, regardless.

Let’s walk through what we know from other user text-selection interactions in the same environment:

  • Any other selection you perform on a quantity of text places the cursor somewhere. The cursor is not ever placed ambiguously—it’s always in a predictable location after every user interaction.

  • There is only ever one “caret” or “insertion point”.

Thus, following the aforementioned established pattern, CTRL+A has to make a decision as to where the cursor shall be placed upon selection. Should the cursor be placed at the beginning of the selection, the end, or somewhere in the middle?

Let’s just go ahead and agree that “somewhere in the middle” is not going to yield predictable results, and nix that option.

We’re left with two options: the beginning or end.

Since the text being selected reads left to right, an assumption that most people select text with a cursor from left to right, and most active text editing happens at the end of a block of text, it seems like placing it at the end might be the best option.

textbox – Why can’t you reducing a selection from the beginning after selecting everything in a text input field?

I’ve noticed that when you select all (using ctrl+a, or some other method) you can only reduce the selection from the end. ie: by holding shift and pressing left you can reduce the selection from the end, but it does not work from the beginning (pressing right)

From a UX standpoint, wouldn’t it be better if it worked both ways?

when i copy events from Outlook calendar to SharePoint calendar it changes all names adding "copy" at the beginning

when i copy events from Outlook calendar to SharePoint calendar it changes all names by adding "copy" at the beginning of each event
— I followed these steps:
1- Open your SharePoint online site
2- Open the Calendar and click on the "Calendar" tab in the upper left corner.
3- Click on "Connect to Outlook". Then it will ask for confirmation, click "Yes".
4- Open your Outlook calendar
5- Click the "View" tab at the top> "change view" tab> choose "List"
6- select the required calendar you want to import
7- change it back to the list view> select all + copy
8- select SharePoint online calendar within Outlook
9- change the view to list view> paste

WordPress that adds 1 to the beginning of all ajax response

enter the image description here

Please say how can I debug this,
I recently added an ajax call but have commented on it still, this 1 persists.
can i post the code i added