▲ 120 r/warszawa+1 crossposts

Żuleriada na przystanku Metro Wilanowska

Cześć, piszę ten post bo muszę to z siebie wyrzucić i pomyśleć jak lepiej mogę reagować w takich sytuacjach.
Jechałem sobie autobusem 709 z Piaseczna do Warszawy. Gdy wsiadłem do autubusu to obok mnie stał brzydko pachnący, awanturujący się mężczyzna. Postanowiłem zatem poszukać sobie innego miejsca do siedzenia. Gdy doechałem i wysiadłem z autobusu ten pierwszy żul zaczął się kłucić z jakimś drugim żulem, poczym odwrócił się do mnie z okrzykiem "ślepy, kurwa" i zaczął pluć w moją stronę. W tym miejscu nadmienię że jestem niewidomy. Gdy to usłyszałem zacząłem iść przed siebie. Nie szybko bo nie chciałem sprowokować u niego dodatkowej agresji ale dość szybko. Słyszałem że chwilę szedł za mną krzycząc coś. Kilkanaście metrów dalej znalazłem innych ludzi którzy powiedzieli mi że tamci są daleko i już za mną nie idą, więc akurat ta sytuacja skończyła się dobrze, ale kiedyś mogę nie mieć tyle szczęścia.
Przepraszam za koślawą pisaninę i trzymajcie się tam.

reddit.com
u/Nuno-zh — 4 days ago
▲ 2 r/emacs

Create compound scoring rules in Gnus?

Hi,
I want to make a scoring rule in Gnus but I need it triggered only if two conditions are true, so essentially if subject equals x and author equals y, increase score.

reddit.com
u/Nuno-zh — 15 days ago
▲ 16 r/Polska

Nadal tworzę moda pozwalającego grać niewidomym w Broken Ranks aka. Taern

Poniżej drobna aktualizacja co do mojego moda pozwalającego niewidomym grać w BR, albowiem mi się nie znudziło i zrobiłem spory postęp i chciałbym się tym z kimś podzielić.
## Praca u podstaw
Pierwsze wersje moda miały jeden zasadniczy problem, a w zasadzie dwa, a w zasadzie... bardzo dużo problemów :slight_smile:
Po pierwsze: gdy zaczynałem miałem zerowe pojęcie o Action Scripcie: wiedziałem że jest, wiedziałem że to Adobe i wiedziałem że nigdy, ale to nigdy nie chcę mieć z tą technologią nic wspólnego. Dlatego co tu dużo mówić, tworząc moda do BR przeniosłem swoje nawyki z innych języków programowania. Przez to powstał ulep którego konserwacja czy dodawanie nowych funkcji graniczyło z cudem.
Po drugie: źle podszedłem do problemu interfejsu. Zamiast dodać dostępność bezpośrednio do Feathers czy Away 3D, patchowałem poszczególne ekrany gry co powodowało, że jeden popup działał świetnie, inny działał tak sobie a trzeci wogóle nie działał, bo zapomniałem dopisać odpowiedniej flagi. Nowa wersja moda patchuje bezpośrednio frameworki odpowiedzialne za wyświetlanie pikseli na ekranie, dzięki czemu mam za darmo wsparcie wielu ekranów, a jeżeli coś potrzebuje specjalnego traktowania to dopisu∆ę tak zwany adapter który zmienia sposób w jaki ekran jest interpretowany przez czytnik ekranu. Na przykład
```actionscript
private var _accessibilityBody:HTMLTextField;

public function accessibilityConfiguration() : Object
{
return {
"label":function():String
{
return accessibilityHeading;
},
"nodes":[
accessibilityHeadingNode("account.reward.heading"),
{
"id":"account.reward.info",
"role":"text",
"label":function():String
{
return _accessibilityBody == null ?
"" : _accessibilityBody.text;
},
"actionMode":"none",
"focusable":false,
"reviewable":true,
"announceFocus":false
},
accessibilityMenuNode("account.reward.accept",0),
accessibilityMenuNode("account.reward.reject",1)
],
"initialFocusId":"account.reward.accept",
"baseTabIndex":5400
};
}
```
To jest definicja ekranu akceptacji nagrody jaką nowy gracz otrzymuje od systemu. Gdyby nie ta definicja, program czytałby dużo śmieci które w niczym by nie pomogły, a jedynie zmieszałyby gracza. Ta technika powoduje, że mod jest bardzo skalowalny i co najważniejsze, gdy wyjdzie nowa wersja gry a ja znowu się połamię (xD) gracze najwyżej nie będą w stanie obsłużyć nowo dodanych ekranów.
Po trzecie: ANE
Stary mod działał w bardzo pokręcony sposób

  1. Gracz uruchamiał mój launcher.
  2. Mój launcher uruchamiał helpera (prosty serwer TCP/IP)
  3. Mój launcher uruchamiał BR.
  4. Dzięki wgranym na krzywy ryj patchom, BR wysyłał do mojego helpera payloady JSON z informacjami do wypowiedzenia.
  5. Helper komunikował się z czytnikiem ekranu dzięki czemu gra mówiła.
    Zrobiłem tak bo myślałem że Adobe Air nie ma mechanizmu FFI, to taki mechanizm który pozwala programom komunikować się z innymi programami (w dużym skrócie). Jest to mechanizm pod każdym względem lepszy od tego syfu który zafundowałem sobie i graczom. Teraz wygląda to tak
    - Wtyczka w C ++ udostępnia Actionscriptowi funkcje umożliwiające kontrolowanie czytnika ekranu.
    - W razie potrzeby wywołuję te funkcje jak każdą inną funkcję gry.
    Nie ma już procesu pośrednika, nie ma już ciężkiego payloadu JSON i nie ma lagów.
    Po czwarte: pochyliłem się nad szczegółami. Dzięki temu BR stało się pierwszą grą która pozwala niewidomemu graczowi w pelni dostępnie ustawić wygląd postaci. gra czyta czy wybieramy włosy krótkie, długie czy kręcone. Wszystkie grafiki zostały opisane. W tym miejscu wielkie podziękowania dla moich kolegów ze szkolnej ławy, którzy głęboko wierzą w mój projekt :). Zrobiliśmy też pełną audiodeskrypcję intra, dzięki czemu gracz ma poczucie, że mod jest natywną częścią gry, a nie czymś co zostało na siłę wepchnięte do jednolitego systemu.
reddit.com
u/Nuno-zh — 24 days ago
▲ 10 r/witcher

A blind witcher fanatic is on a modding frenzy part 1. Throne breaker

I am a programmer who is trying to make some witcher games accessible for the blind. Imagine yourself unplugging the screen from the computer and immersing yourself in the world.
It sounds different, it tastes different, it is different. Doctors tried to reverse engineer my brain to understand why I don't see, they failed so now I reverse engineer games to show people that, with enough effort and dedication blind people can play games too.
I started with Throne Breaker as its the simplest to adapt to a keyboard + screenreader flow. The tts reads menus and game state.
Sounds tell me where objects are, but since the maps are pretty large I can also choose an object from the list and get turn by turn directions. I had to partially rewrite the game's navigation system as only controllers support vectorized movements but it seems to work okayish for now.
After Thronebreaker it will be time for W1, as its my favorite Witcher game. I will try to do 2 as well, and I won't touch 3, for many reasons. Simplest of them is that W3 lost all that made W1 such a great game, and the world would be too difficult to adapt.
Sorry for the mere chaos that is this post, I'm just high.

reddit.com
u/Nuno-zh — 1 month ago
▲ 23 r/emacs

as-sound-switch: blazingly fast audio i/o switcher for Emacs

This is my first ever published package. I wrote it for myself. As a blind software developer and audio engineer I often need to switch audio devices quickly. Whether it is to rest my ears from long hours of wearing headphones, showing something quickly to someone in my house or switching a microphone when on a Zoom call I needed to go out of Emacs and change it within the OS. I decided to take a plunge and create this little package (currently macOS only but I fell in love with Elisp so there are plans...)

Hope you find it useful.

Happy M-xing

https://github.com/Nuno69/as-sound-switch

u/Nuno-zh — 2 months ago

Clean beta install?

Hi,

I would like to ask you how can I install the beta cleanly, meaning that I vipe the harddrive and install it? I can only download the IPSW afaik.

reddit.com
u/Nuno-zh — 2 months ago
▲ 36 r/emacs

Napkin math in Emacs?

I calculate many small things but very often. For years I have used the Soulver calculator for the Mac, but I am migrating all I can to Emacs. I have found LiterateCalcMode, but its features weren't on par with Soulver. So I started building soulver.el, an Emacs package which takes the great Soulver engine and brings it to the Emacs world! What I have so far is soulver-mode which is a minor mode that augments the current mode allowing you to:
- Do overlay calculations: type what is 30% of 200 and have an answer instantly overlaid
- Convenient hotkeys to insert result after expression, copy result to killring etc
- Customize nearly all aspects of the package, like locale, decimal separator and so on.

Sorry for no screenshots but I am blind. I have the following questions

  1. Is that package even worth releasing? Would it be useful to anybody?
  2. SoulverEngine is closed source. If I make my code open and GPL, can I still put on Melpa?
reddit.com
u/Nuno-zh — 3 months ago
▲ 204 r/Polska

Czuję że z wiekiem stałem się głupszy

Hej, nie wiem w sumie jak opisać swój problem. Wydaje mi się że im starszy jestem tym gorzej działa mój umysł. Coraz mniej chce mi się robić research, nawet jak coś mnie zaciekawi to przeczytam pierwsze trzy wyniki w Google i odpuszczam. Nie mam sił na intelektualne rozrywki typu szachy czy puzzle. Ba, już nawet gry komputerowe przestały mnie jarać, nie mówiąc już o np programowaniu. Co jest do cholery? Czy ktoś z Was był w takiej sytuacji? Nie chcę żeby tak było, a jednocześnie nie wiem jak mogę to zmienić.

reddit.com
u/Nuno-zh — 3 months ago
▲ 691 r/Polska

Skandaliczne zachowanie linii lotniczej Wizzair

Cześć!
Wczoraj, t.j. 20 maja mięliśmy zrobić sobie z narzeczoną krótki urrlop w Barcelonie. Obydwoje jesteśmy osobami niewidomymi, a narzeczona miała podróżować ze swoim psem przewodnikiem.
Po zrobieniu rezerwacji wysłaliśmy potrzebne dokumenty na specjalny adres E-mail przeznaczony do takich zgłoszeń. Wysłaliśmy paszport psa a także certyfikat poświadczający jego przeznaczenie jako pies asystujący. Otrzymaliśmy potwierdzenie mailem i pojechaliśmy na lotnisku.
Na lotnisku dowiedzieliśmy się, że linia lotnicza nie wprowadziła naszej asysty specjalnej do systemu, a co gorsze nie wprowadzili tam psa. Prosiliśmy na lotnisku, aby w takim razie zrobili potrzebne zmiany. Pokazaliśmy maila i dokumenty, które wysłaliśmy. Obsługa lotniska skontaktowała się z linią lotniczą ale wedłóg nich nic nie dało się zrobić.
Sprawa skończyła się tak, że po długich pertraktacjach udało się przenieść nasz lot na dzisiaj za darmo, pies niestety musi zostać w domu. Wizzair na początku nie godził się na darmowy rebooking ale na szczęście pracownicy Okęcia szybko załatwili sprawę.
Straciłem dzień urlopu i pieniądze za wczorajszą noc w hotelu. Najbardziej bulwersuje mnie fakt, jak sama linia lotnicza podeszła do całej sytuacji.

reddit.com
u/Nuno-zh — 3 months ago
▲ 65 r/Polska

Odbijam dzieciństwo -- czyli tworzę modyfikację pozwalającą niewidomym grać w Broken Ranks

Cześć.

Tak się jakoś stało że za czasów mojej późnej podstawówki (2012 do 2014) w mojej szkole królował Taern. Ze względu na niepełnosprawność wzroku nie mogłem grać w tę grę samodzielnie, ale jako, że kumpli miałem spoko to grali za mnie. Ja mówiłem co mają robić w walce a oni klikali na odpowiednie elementy, ale zawsze chciałem zagrać w Taerna samemu. Już wtedy interesowałem się programowaniem ale oczywiście nie miałem odpowiedniego zaplecza technicznego aby nawet pomarzyć o tym co właśnie rodzi się na moim dysku teraz.

Taern, czy jak to się teraz nazywa Broken Ranks tworzony jest w technologii Adobe Air, dlatego "rozmontowanie" klienta nie było jakieś przesadnie trudne. Ale prawdziwa zabawa zaczyna się teraz! Jak dostosować grę, która tworzona jest z myślą o grze myszą, błyskawicznym podejmowaniu decyzji, analizowaniu wielu liczb na raz i patrzeniu na ikonki do zupełnie innych realiów?

Problemów nastręczył mi już sam interfejs. Bardzo wiele przycisków bez wyraźnych etykiet, nie logiczne (dla mojego czytnika ekranu) umieszczenie ich w drzewie, rozjeżdżające się tabele i tak dalej. Wpadłem zatem na pomysł wprowadzenia systemu "adapterów". AAdapter to taka rzecz, która bierze surowy interfejs (taki jakim widzicie go wy) i przerabia na formę dostępną dla osoby niewidomej.

Na przykład podczas walki, klawiszem "Tab" mogę zmienić strefę. Zmian mogę dokonywać między wrogami, sojusznikami, polami umiejętności i strefami obrony. Oczywiście używanie taba i strzałek byłoby zbyt wolne dlatego dodałem wiele pomocniczych klawiszy. Z, X, C, V, B przemieszczają mnie na odpowiednie pola umiejętności, A, S, D na pola obrony, a cyfry ustawiają punkty akcji na zaznaczone pole. Klawiszy jest o wiele więcej, ale te są najważniejsze.

A podczas nawigacji na przykład, gra odczytuje strefę, w której się znajduję, a także dźwięki dla NPC, mobów czy przedmiotów. Zrobiłem nawet możliwość "patrzenia" na kompas pokazujący gdzie trzeba się udać z questem. Wciśnięcie CTRL+Q odczytuje z gry odpowiednie dane i mówi kierunek, w jakim muszę się udać.

Już nie mogę się doczekać, gdy zamiast przez 90% łatać różne bugi będę mógł normalnie grać, ale sam proces modowania też jest bardzo ciekawy i będzie mi go chyba brakowało.

Czekam na zielone światło od Whitemoon games, i gdy tylko je otrzymam to cały kod moda będziecie mogli zobaczyć na Githubie.

reddit.com
u/Nuno-zh — 3 months ago