# Stackoverflow

Published articles for Stackoverflow.

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

## How CSS direction: rtl Can Reverse Latin Text and Punctuation

DevFeed: [How CSS direction: rtl Can Reverse Latin Text and Punctuation](<https://devfeed.tech/articles/article-34252.md>)

Original publisher: [Read original article](<https://tonsky.livejournal.com/321556.html>)

Published: 2019-05-29T14:39:10Z

Content type: opinion

Language: ru

Sources: [Tonsky Стой под стрелой](<https://devfeed.tech/sources/tonsky.md>)

Topics: [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>)

Tags: [livejournal](<https://devfeed.tech/tags/livejournal.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [tag-5e1c061eda96](<https://devfeed.tech/tags/tag-5e1c061eda96.md>), [tag-c40b78a8c8a6](<https://devfeed.tech/tags/tag-c40b78a8c8a6.md>), [tag-d16a2c26554f](<https://devfeed.tech/tags/tag-d16a2c26554f.md>), [tag-e3028c5e0ab2](<https://devfeed.tech/tags/tag-e3028c5e0ab2.md>)

### AI overview

The article examines how applying the CSS direction property for Arabic text to Latin content can reverse text order and affect numbers, punctuation, and ranges in unexpected ways. It describes a workaround that wraps the affected elements with direction: ltr.

### Source excerpt

Не хочу специально набрасывать, но вот вчера попалось на глаза и я прям прослезился. Смотрю, что если в столбце справа путь "abc+что-то", то все нормально. Как только что-то пропадает, "abc+" превращается в "+abc". При том что в DOM мы отдаем совершенно точно "abc+". Одним текстовым блоком. Никаких там вам флексов, это уж точно. Как так? Что-то с глазами? Как такое вообще возможно? Кто вообще посмел раздербанить мою строку, да еще по каким-то дебильным правилам, и если подобное возможно, на какие гарантии в принципе можно рассчитывать? Начитавшись Лю Цысиня, я решил, что инопланетяне нарочно играются с моим мозгом с целью свести меня с ума. В итоге расследование привело меня типовое решение со StackOverflow. Оказывается (!) веб-разработчикам в целом как-то лень бывает городить лишний вложенный div, и они придумали: а чего бы не заабюзить свойство direction для арабских языков? Только писать в него все равно латиницей. Гениально! Ну да, текст начинает как бы выравниваться по правому краю. Есть правда нюансы. Цифры, разделенные пробелами, переворачиваются. Знаки препинания переезжают налево. Диапазоны показываются задом наперед, от большего к меньшему. Проблема? Проблема. Блин че делать? Читаем: you need to wrap the contained elements in another element with direction: ltr rule to reverse the effect. Классическое "придумал себе проблему и героически ее решил". Ооок. Да, это самый популярный ответ на то, как обрезать текст слева. Да, авторы с удовольствием принимают такой ответ. Ну и веб он весь такой. Сделают что-то задом наперед, заабюзят супер-редкую фичу из даже не смежной области, как-то где-то в каких-то тепличных условиях один раз заработало и так и оставили, а на картину в целом смотреть не интересно. Может, даже на конференции про это расскажут. Не, а что, смекалочка же.

## Kotlin-Java Interop Can Cause Recursive Property Calls

DevFeed: [Kotlin-Java Interop Can Cause Recursive Property Calls](<https://devfeed.tech/articles/kotlin-stackoverflow-error-28672.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2018/11/01/kotlinstackoverflow/>)

Author: info@jeroenmols.com (Jeroen Mols)

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

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Java](<https://devfeed.tech/topics/java.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>)

Tags: [android-studio](<https://devfeed.tech/tags/android-studio.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [legacy-code](<https://devfeed.tech/tags/legacy-code.md>), [puzzle](<https://devfeed.tech/tags/puzzle.md>), [recursion](<https://devfeed.tech/tags/recursion.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>)

### AI overview

This article explains how Kotlin-Java interop can cause a property access to call itself recursively when inheriting from a Java class. It examines the resulting bytecode and notes that Android Studio can warn about the recursion.

### Source excerpt

Java interop is one of the best features of the Kotlin language, yet sometimes this also can cause unforeseen issues... Puzzle # Disclaimer, the example below is a consequence of legacy code and only serves to demonstrate a Kotlin puzzler.

## Year in review 2016

DevFeed: [Year in review 2016](<https://devfeed.tech/articles/year-in-review-2016-28652.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2017/01/09/yearinreview/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2017-01-09T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Google](<https://devfeed.tech/topics/google.md>), [Library](<https://devfeed.tech/topics/library.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [IO](<https://devfeed.tech/topics/io.md>), [Mastodon](<https://devfeed.tech/topics/mastodon.md>), [X (Twitter)](<https://devfeed.tech/topics/twitter.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [blogging](<https://devfeed.tech/tags/blogging.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [conference](<https://devfeed.tech/tags/conference.md>), [github](<https://devfeed.tech/tags/github.md>), [google](<https://devfeed.tech/tags/google.md>), [io](<https://devfeed.tech/tags/io.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [personal](<https://devfeed.tech/tags/personal.md>), [projects](<https://devfeed.tech/tags/projects.md>), [retrospective](<https://devfeed.tech/tags/retrospective.md>), [review](<https://devfeed.tech/tags/review.md>), [side-projects](<https://devfeed.tech/tags/side-projects.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [year-in-review](<https://devfeed.tech/tags/year-in-review.md>)

### AI overview

A personal retrospective of 2016 covering family life and the author's technical activities, including blogging, Android conference speaking, open-source work, social-media growth, Google I/O attendance, and side projects.

### Source excerpt

It's that time of the year again to do a little personal retrospective. 2016 passed by so quickly! I had a fantastic time playing around with (and taking care of) my wife and daughter.

## Year in review 2015

DevFeed: [Year in review 2015](<https://devfeed.tech/articles/year-in-review-2015-28641.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2016/01/29/yearinreview/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2016-01-29T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Xamarin](<https://devfeed.tech/topics/xamarin.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [App](<https://devfeed.tech/topics/app.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [X (Twitter)](<https://devfeed.tech/topics/twitter.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [community](<https://devfeed.tech/tags/community.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [google](<https://devfeed.tech/tags/google.md>), [io](<https://devfeed.tech/tags/io.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [new-job](<https://devfeed.tech/tags/new-job.md>), [review](<https://devfeed.tech/tags/review.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [twitter](<https://devfeed.tech/tags/twitter.md>), [year-in-review](<https://devfeed.tech/tags/year-in-review.md>)

### AI overview

A personal review of 2015 describing major life changes and professional accomplishments, including creating a popular GitHub library, starting a blog, speaking at Droidcon Paris, learning Xamarin, building a cross-platform app, and changing jobs.

### Source excerpt

Finally found the time to write my year in review. #insomnia 2015 was a huge year for me! I even dare to say the biggest one of my life so far as I became a father of a lovely daughter Lene.

## 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>), [mac os](<https://devfeed.tech/topics/mac-os.md>), [App](<https://devfeed.tech/topics/app.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Testing](<https://devfeed.tech/topics/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.

## How to Stay Up To Date On Web Technology

DevFeed: [How to Stay Up To Date On Web Technology](<https://devfeed.tech/articles/how-to-stay-up-to-date-on-web-technology-21182.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2013/01/how-to-stay-up-to-date-on-web-technology/>)

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

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Web](<https://devfeed.tech/topics/web.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [technology](<https://devfeed.tech/tags/technology.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article shares practical suggestions for staying current with web technology, including being social, contributing to online communities, sharing experiences through a blog, and following useful people and resources.

### Source excerpt

Lorem ipsum dolor sit amet

## M-x ack

DevFeed: [M-x ack](<https://devfeed.tech/articles/m-x-ack-34482.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/11/m-x-ack/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-11-22T16:36:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Tool](<https://devfeed.tech/topics/tool.md>)

Tags: [command](<https://devfeed.tech/tags/command.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [debian](<https://devfeed.tech/tags/debian.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integrate](<https://devfeed.tech/tags/integrate.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A tutorial showing how to integrate the ack search tool into Emacs by defining an Emacs Lisp command that configures Emacs's grep interface to use ack or ack-grep.

### Source excerpt

I've been asked about how to integrate the ack tool (you know, the one that is better than grep) into Emacs today. Again. And I just realized that I didn't blog about my solution. That might explain why I keep getting asked about it after all... So here it is, M-x ack: ;;; dim-ack.el --- Dimitri Fontaine ;; ;; http://stackoverflow.com/questions/2322389/ack-does-not-work-when-run-from-grep-find-in-emacs-on-windows (defcustom ack-command (or (executable-find "ack") (executable-find "ack-grep")) "Command to use to call ack, e.g. ack-grep under debian" :type 'file) (defvar ack-command-line (concat ack-command " --nogroup --nocolor ")) (defvar ack-history nil) (defvar ack-host-defaults-alist nil) (defun ack () "Like grep, but using ack-command as the default" (interactive) ; Make sure grep has been initialized (if (>= emacs-major-version 22) (require 'grep) (require 'compile)) ; Close STDIN to keep ack from going into filter mode (let ((null-device (format "< %s" null-device)) (grep-command ack-command-line) (grep-history ack-history) (grep-host-defaults-alist ack-host-defaults-alist)) (call-interactively 'grep) (setq ack-history grep-history ack-host-defaults-alist grep-host-defaults-alist))) (provide 'dim-ack) Enjoy!

## Upcoming software development and performance talks at JAX London, Devoxx, and Stack Overflow Dev Days

DevFeed: [Upcoming software development and performance talks at JAX London, Devoxx, and Stack Overflow Dev Days](<https://devfeed.tech/articles/upcoming-speaking-events-30637.md>)

Original publisher: [Read original article](<http://bad-concurrency.blogspot.com/2011/09/upcoming-speaking-events.html>)

Author: Michael Barker (noreply@blogger.com)

Published: 2011-09-03T11:10:00Z

Content type: news

Language: en

Sources: [Bad Concurrency](<https://devfeed.tech/sources/bad-concurrency.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>)

Tags: [dev](<https://devfeed.tech/tags/dev.md>), [disruptor](<https://devfeed.tech/tags/disruptor.md>), [events](<https://devfeed.tech/tags/events.md>), [london](<https://devfeed.tech/tags/london.md>), [performance](<https://devfeed.tech/tags/performance.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [stackoverflow](<https://devfeed.tech/tags/stackoverflow.md>), [talk](<https://devfeed.tech/tags/talk.md>), [technology](<https://devfeed.tech/tags/technology.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

The author announces upcoming speaking events covering the disruptor, development tools, technology, and performance folklore at JAX London, Devoxx, and Stack Overflow Dev Days in November 2011.

### Source excerpt

I've had a few speaking events confirmed for the end of this year: Trisha Gee and I are speaking at JAX London on November 2nd. I'm presenting the disruptor in a half hour "Tools in Action" slot at Devoxx 2011 on November 14th. I'm speaking on Technology and Performance Folklore at StackOverflow Dev Days on November 15th. Trisha and I are hoping to preview our talk to the LJC sometime in October.