추상 위키백과/업데이트/2024-01-11

This page is a translated version of the page Abstract Wikipedia/Updates/2024-01-11 and the translation is 100% complete.
추상 위키백과 업데이트 Translate

메일링 리스트를 통한 추상 위키백과 IRC의 추상 위키백과 텔레그램의 위키함수 마스토돈의 위키함수 트위터의 위키함수 페이스북의 위키함수 유튜브의 위키함수 위키함수 웹사이트 Translate

협업의 즐거움

이번 주 월요일에 우리는 월간 자원봉사 코너를 개최했습니다. 그리고 지난 몇 번 그랬듯이 이번 자원봉사 코너에서 개인적으로 가장 하이라이트는 공개 질문과 답변 세션에 이어 새로운 함수를 공동으로 생성한 것이었습니다.

우리가 방금 목록을 공개했다는 점을 고려하면, 이번 주에 우리는 당연히 목록에서 작동하는 함수인 "is any true"를 만들었습니다. 이 함수는 부울 목록을 가져와 그 중 하나라도 true인지 알아내는 함수입니다. 세션 녹화본은 위키미디어 공용에서 볼 수 있습니다.

저는 이러한 협력 세션에서 개인적으로 관찰한 내용을 공유하고 싶습니다.

저는 30년 넘게 소프트웨어를 작성해 왔고, 아주 적은 수의 페어 프로그래밍 세션(매우 즐거웠음) 외에는 항상 그것을 다소 고독한 활동으로 생각하고 있었습니다. 플로에 들어갔을 때 몇 시간 동안 코드를 작성하여 작업 중인 시스템을 구축할 수 있었습니다. 이는 제가 시스템에서 다른 사람들과 함께 작업할 때에도 마찬가지였습니다. 일반적으로 개별 작업을 수행하거나 버그를 수정했습니다. 그리고 저는 평소에 이 작업을 정말 좋아했습니다.

위키함수에서 함수를 만드는 것은 매우 다르게 느껴집니다. 그리고 위키함수를 직접 편집하는지, 아니면 공동 작업 세션에 대해 이야기하는지에 따라 제 경험은 매우 다릅니다.

먼저 독방 세션에 대해 이야기하겠습니다. 위키함수 작업을 할 때(여기에는 베타 위키함수 및 제 로컬 개발 컴퓨터에 대한 경험도 포함됩니다) 한 가지 점은 제가 구성을 좋아한다는 것입니다. 하지만 동시에 제가 하고 싶은 구성에 필요한 일부 함수가 누락되어 있다는 사실을 종종 발견합니다. 그래서 저는 일반적으로 한 번에 전체 함수 그룹을 생성하게 되며, 각각에 대해 최소한 3개의 테스트와 3개의 구현을 생성하려고 합니다. 순식간에 수십 개의 객체를 생성하게 되고, 그렇게 하다가 잠시 길을 잃을 때도 있습니다. 기본 함수를 더 많이 갖추게 되면 아마도 더 좋아질 것입니다.

하지만 더 흥미로운 경험은 우리가 협업 세션을 할 때였습니다. 그리고 이건 제가 기대했던 것보다 훨씬 더 재미있다는 걸 꼭 말씀드리고 싶어요! 함수의 세부 사항에 대해 함께 논의하고 몇 가지 테스트를 시작했지만 다른 사람이 다른 테스트를 만들었기 때문에 구현에 도달하면 이미 더 많은 테스트가 있습니다. 그리고 하나의 구현을 수행하는 동안 더 많은 테스트가 들어오고 이에 대해 논의합니다. 구현을 연결할 때쯤에는 이미 하나 이상이 준비되어 있는 경우도 있습니다. 테스트를 통해 일종의 탁구 코딩처럼 느껴지며, 엣지 케이스를 찾고 동시에 구현이 충분히 견고하도록 보장합니다. 이는 또한 구현 및 기능과 분리된 테스트에서도 실제로 잘 작동하므로 테스트 중심 개발에 도움이 됩니다. 저는 이 세션을 정말 좋아합니다. 그들은 '일반적인' 코딩보다 훨씬 더 협력적인 위키처럼 느껴집니다.

저는 이 경험에 대해 어떻게 생각해야 할지 아직 잘 모르겠습니다. 저 뿐인가요? 이것은 일반적인 경험입니까? 이것이 우리 디자인에 흘러들어가야 하는 것인가요? 그렇다면 어떻게? 지금까지 위키함수에 대한 귀하의 경험은 어떻습니까? 우리에게 알려주십시오. 우리는 귀하의 의견을 듣고 싶습니다. 어쩌면 우리는 이러한 협력을 더 자주 하고 자원봉사 중심으로 해야 할까요?

우리가 지금 시도하기로 결정한 것 중 하나는 다음 자원봉사 코너를 1시간으로 연장하는 것입니다. 매번 매우 촉박했습니다. 다음 자원봉사 코너는 2024년 2월 5일 18:30부터 19:30 UTC까지 진행됩니다. 잠시라도 참여하실 수 있습니다.

새로운 섹션: 금주의 함수

이번 업데이트에서는 매주 하나의 함수를 강조하고 싶습니다. 하이라이트에 대한 제안은 환영할 것이며, 누군가가 "데니가 자신의 변덕에 따라 무언가를 선택하는 것"과 다른 프로세스를 설정하고 싶다면 그러한 제안을 기꺼이 받아들일 것입니다. 그때까지는 매주 한 가지만 골라 여기서 논의하겠습니다.

 
문자열 조작

그리고 저는 그것을 빠르게 제시할 뿐만 아니라 실제로 그것에 대해 논의하고자 합니다. 이 함수로 무엇을 다르게 할 수 있는지, 그것으로부터 무엇을 배울 수 있는지, 어떻게 사용할 수 있는지?

이 섹션을 시작하는 함수는 역방향 문자열입니다. 제가 그렇게 하는 이유는 위키함수를 개발하는 동안 제 딸이 가장 좋아하는 함수였기 때문입니다. 물론 다소 유치한 이유도 있습니다(하지만 딸은 초등학교에 다닙니다). 그녀는 시스템에 나쁜 단어를 입력하지 않아도 컴퓨터가 "나쁜 단어"를 말하게 할 수 있기 때문에 그것을 좋아했습니다. 그래서 아빠가 운영하는 웹사이트에 나쁜 말을 보여주는 것 때문에 '디퓨트' 같은 말다툼을 벌이고 한동안 주체할 수 없이 웃곤 했다.

 
스택을 사용하여 문자열 뒤집기

이 함수는 문자열을 가져와서 첫 번째 문자가 마지막에 있고, 두 번째 문자가 두 번째 마지막 문자인 문자열을 반환하며, 입력의 마지막 문자가 출력의 첫 번째 문자가 될 때까지 모두 반복됩니다. C++와 같은 일부 언어에는 문자열에 대한 역방향 기능이 내장되어 있거나 StringBuilder에 대한 자바가 있습니다. 그러나 현재 우리가 지원하는 두 언어인 자바스크립트와 파이썬 중 어느 언어도 문자열에 대한 표준 역방향 함수를 제공하지 않습니다. 이는 거의 놀라운 일입니다. 두 언어 모두 해당 작업을 수행하는 방법에 대한 다양한 방법을 제공하며 위키함수의 현재 구현은 세 가지 방법을 제공합니다.

  • 자바스크립트 구현은 다소 새로운 분해 구문을 사용하여 입력 문자열을 문자 배열로 바꾼 다음, 문자를 빈 문자열과 결합하여 결과 문자열을 다시 형성하기 전에 배열의 반대 기능을 사용합니다.
  • 다른 자바스크립트 구현에서는 보다 전통적인 접근 방식인 생성자 함수를 사용하여 입력을 배열로 변환한 다음 동일한 일련의 역방향 및 결합을 통해 결과를 얻습니다.
  • 파이썬 구현은 배열을 분할하기 위해 관용적이지만 난해한 구문을 사용합니다(그리고 문자열에 적용하면 문자열을 자동으로 문자 배열로 간주합니다).

또한 자주 사용되는 패턴(기본적으로 자바스크립트 구현에서 본 것과 동일한 패턴)을 사용하여 합성을 사용하는 새로운 구현도 있습니다. 먼저 문자열을 코드포인트 목록으로 변환한 다음, 목록이 공개된 직후 지난 주에 생성된 새로운 역방향 목록 함수를 사용합니다. 그런 다음 해당 코드 포인트 목록을 다시 문자열로 바꿉니다.

이 함수에는 6개의 테스트가 있으며 잠시 동안 7번째 테스트가 있었지만 이후 제거되었습니다. 우리는 조금 후에 그것에 대해 알아볼 것입니다. 세 가지 테스트에서는 간단한 라틴 문자 기반 문자열을 사용합니다: abc, stressed, 및 kayak 중 하나는 긴 16진수 숫자를 특징으로 하고 다른 하나는 이모티콘을 포함합니다. 하나는 매우 간단해야 하는 문자열 Q1을 사용하지만 현재 위키함수의 버그로 인해 실패합니다. 다른 알파벳, 특히 오른쪽에서 왼쪽으로 쓰는 스크립트나 합자가 많은 스크립트에 대한 더 많은 테스트를 보는 것이 좋을 것입니다.

제거된 테스트에는 이모티콘이 포함되어 있었지만 유니코드의 관점에서 보면 이는 매우 다른 이모티콘입니다. 남아 있는 테스트에는 "😂"가 포함되어 있는 반면, 제거된 테스트에는 "🚵🏻‍♀️"가 포함되어 있습니다. 이 두 이모티콘의 차이점은 무엇인가요? 이는 유니코드가 어떻게 작동하는지 자세히 설명합니다. 간단히 말해서 첫 번째 코드 포인트는 단일 코드 포인트 128514로 표시되는 반면 두 번째 코드 포인트는 일련의 5개 코드 포인트(63157, 63157, 8205, 9792, 65039)로 표시됩니다. 이 5개 코드 포인트 차례로 "산악 자전거 타는 사람", "수정 피부색 피츠패트릭 척도 1-2"(예: 흰색 피부), "폭 없는 접합자", "여성 기호", "변형 선택기: 화려하고 이미지와 유사함"을 의미합니다. 이 5개의 코드 포인트는 모두 유니코드 표준에서 호출하는 단일 이모티콘, 즉 문자소를 만듭니다.

이 5개 코드 포인트의 순서를 바꾸면 예상한 것과 다른 결과를 얻게 됩니다: “♀‍🏻🚵”. 이 문제는 자소 수준에서 문자열을 뒤집는 새로운 함수로 해결되고 있지만 아직 작동하는 구현이 없습니다. 나는 그것이 올바른 접근 방식이라고 생각하지만 원래 함수가 코드 포인트 대신 문자소를 이미 처리해야 하는지 궁금합니다. 즉, 후자 함수의 이름을 실제 역방향 문자열 함수가 되도록 바꿀 수 있다는 뜻입니다.

이로 인해 프로젝트 채팅에서 정확히 이 주제에 대한 토론이 이루어졌습니다.

다른 고려 사항은 대문자 사용 및 구두점에 관한 것일 수 있습니다. 예를 들어, 다음 문장은:

“In the dance of life, find your rhythm!”

단순하게 역방향 전환을 사용하면 다음과 같습니다:

“!mhtyhr ruoy dnif ,efil fo ecnad eht nI”

다른 역방향 전환은 구두점과 대문자 사용을 자연스럽게 유지하는 것을 목표로 할 수 있습니다:

“Mhtyhr ruoy dnif, efil fo ecnad eht ni!”

영어의 "ph", "th" 또는 "ch"와 같은 이중음자에는 다른 고려 사항이 적용될 수 있습니다.

끈 뒤집기와 같은 겉보기에 작고 간단한 함수조차도 이미 여러 가지 토끼 구멍을 뚫을 수 있습니다. 유니코드 코드 포인트의 직접적인 역전은 간단하지만, 더 복잡한 기능은 최종 사용자의 기대에 더 가깝고 다른 곳에서는 찾기가 더 어렵기 때문에 최종 사용자에게 훨씬 더 많은 가치를 제공할 가능성이 있습니다.

위키함수 업데이트가 위키함수로 이동

이러한 정규 위키함수 업데이트는 곧 메타에서 벗어나 위키함수 자체에서 호스팅될 예정입니다. 메타는 우리를 호스팅하기에 좋은 곳이었습니다. 감사합니다. 하지만 실제로 위키함수에서 업데이트를 직접 호스팅하는 것이 합리적입니다. 현재로서는 아카이브를 모두 이동할 계획은 없지만, 참고하도록 하겠습니다.

소프트웨어의 최근 변경 사항

지난 분기의 주요 초점은 유형에 대한 더 나은 지원이었습니다(T343469). 지난주에 출시된 목록 지원을 통해 이 영역의 작업은 이제 사용자 지정, 사용자 정의 유형(예: 숫자, 날짜/시간, GPS 위치 또는 커뮤니티가 원하는 모든 것)에 중점을 둘 것입니다. 이 아이디어와 다른 더 큰 아이디어는 앞으로 몇 주 동안 우리 팀의 계획에 포함될 것입니다. 더 많은 아이디어가 곧 보고될 것입니다!

사용자에게 표시되는 주요 오류 유형의 작동 방식을 변경했습니다. 이전에는 Z507/평가 오류Z99/Quote로 래핑된 요청으로 응답했고, 무엇이 잘못되었는지에 대한 오류도 Quote로 래핑되었습니다. 이제 첫 번째 항목만 래핑하므로 이러한 경우 훨씬 더 이해하기 쉬운 오류가 발생합니다(T349026).

고액 항목 외에도 커뮤니티에서 영감을 받아 함수 페이지를 단순화하고 다시 디자인했으며(다음 주에 출시 예정!) 문서 및 설치 가이드를 일부 개선했습니다. 또한 우리는 미디어위키의 일부 업스트림 변경 사항에 따라 코드가 계속 작동하도록 몇 가지 긴급 수정 작업을 수행해야 했습니다.