sudo cat /opt/outline/access.txt.bak
Category: 컴공
Attempt to get length of null array, 안드로이드 listfiles
https://stackoverflow.com/questions/5280176/make-directory-in-android
android:requestLegacyExternalStorage=”true” 를 추가해주자
안드로이드 스튜디오 설치
0. 서론
컴터 포맷하면서 안드로이드 스튜디오를 새로 설치해야된다. 아이폰을 한 번도 써보지는 않았지만, 내가 원하는 기능의 어플을 바로바로 만들어서 사용할 수 있다는 점에서 안드로이드를 사용하고 있다.
1. 안드로이드 스튜디오 다운로드 + 설치
내 브라우저로 서버 인터넷 사용하기
데이터셋을 유튜브에서 모으다 보면, 다음과 같은 에러에 직면할 때가 있다.
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by ); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Miniconda 설치후 Pycharm과 연동
https://www.jetbrains.com/pycharm/download/#section=windows
qbittorrent
utorrent는 느리고, 무겁고 광고로 가득 찼다. 그만 쓰자 제발
대신 큐빗토렌트를 쓰는건 어떨까? 아래 링크를 누른 뒤
https://www.qbittorrent.org/download.php
이 링크를 눌러서 설치 파일을 받고 설치하자. 설치과정에 이상한 프로그램을 추가 설치 하지 않으므로 괜찮음.
디시 사진 리사이징 안된 상태로 올리기
디시는 사진올릴때 용량 제한이 10mb로 있고, 크기 제한도 없지만, 대신 글을 읽으러 들어가면 리사이징된 사진이 먼저 보인다.
글 본문에는 장축 850으로 리사이징된 상태로 보여지고, 클릭 해야지만, 원본 사진이 보인다 (jpg 한정, png는 그대로 올라옴).
아마 서버 용량보다는 인터넷 트래픽이 더 비싸고, 사용자 입장에서 글이 더 금방금방 뜨도록 하는 이유인거 같다.
뭐 클릭해서 보면 되지만 디씨 앱의 경우 클릭해도 작아진 사진만 보인다.
이를 수정하는 스크립트를 만들었다. 원리는 디씨 서버에 올라간 원본 사진의 URL을 찾아서 글 본문 HTML에서 URL만 원본으로 교체하는 것이다.
- 일단 글을 그냥 올리자.
- 개발자모드, 콘솔에 들어가서 아래 스크립트를 친다.
images = document.getElementsByClassName("writing_view_box")[0].getElementsByTagName('img');
for (let value of images) {
id = value.onclick.toString().split("'")[1].split("id=")[1];
value.src = value.src.split("id=")[0] + "id=" +id;
}
document.getElementsByClassName("writing_view_box")[0].children[2].innerHTML
Jetpack Carousel 수정
ImageMagick 설치
제일 먼저 imagemagick을 설치해주자. WP는 기본적으로 GD library를 사용하는데, 이 경우 thumbnail에서 metadata가 사라진다. 우리는 모든 이미지에 대해서 metadata가 필요하다. 워드프레스는 metadata를 가져올 때, 원본 이미지에서 가져오는데, 모든 metadata를 가져오지 않는다. XMP의 경우 사진 파일이 클 수 록 가져오는 속도가 느리기 때문에, thumbnail에 XMP를 유지 시킨 뒤, thumbnail에서 XMP를 가져올 것이다.
sudo apt-get install php-imagick
sudo apt install imagemagick
sudo service apache2 restart
이후 ImageMagick을 활성화 시키는 플러그인을 설치해 주자. 이 플러그인은 activate만 하면 자동으로 활성화 된다. 다만 이 플러그인은 새로 업로드 한 사진에만 적용된다.
Photon 해제
Photon은 XMP metadata를 지워버리므로 해제 시켜주자.
플러그인 파일 수정
환경설정 -> edit plugin으로 들어가서
jetpack/modules/carousel/jetpack-carousel.php을 선택하자
그 다음 링크를 참조해서,
function getXmpData($filename, $chunkSize)
{
if (!is_int($chunkSize)) {
throw new RuntimeException('Expected integer value for argument #2 (chunkSize)');
}
if ($chunkSize < 12) {
throw new RuntimeException('Chunk size cannot be less than 12 argument #2 (chunkSize)');
}
if (($file_pointer = fopen($filename, 'r')) === FALSE) {
throw new RuntimeException('Could not open file for reading');
}
$startTag = '<x:xmpmeta';
$endTag = '</x:xmpmeta>';
$buffer = NULL;
$hasXmp = FALSE;
while (($chunk = fread($file_pointer, $chunkSize)) !== FALSE) {
if ($chunk === "") {
break;
}
$buffer .= $chunk;
$startPosition = strpos($buffer, $startTag);
$endPosition = strpos($buffer, $endTag);
if ($startPosition !== FALSE && $endPosition !== FALSE) {
$buffer = substr($buffer, $startPosition, $endPosition - $startPosition + 12);
$hasXmp = TRUE;
break;
} elseif ($startPosition !== FALSE) {
$buffer = substr($buffer, $startPosition);
$hasXmp = TRUE;
} elseif (strlen($buffer) > (strlen($startTag) * 2)) {
$buffer = substr($buffer, strlen($startTag));
}
}
fclose($file_pointer);
return ($hasXmp) ? $buffer : NULL;
}
php 7.2로 업그레이드
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-xml php7.2-cli php7.2-zip
sudo cp /etc/php/7.0/apache2/php.ini /etc/php/7.2/apache2/php.ini
sudo systemctl restart apache2.service
sudo a2enmod php7.2
sudo a2dismod php7.1
sudo systemctl restart apache2.service
Linode IP 변경
Linode의 경우 각각의 Linode에 대해서 IP를 바로 변경할 수 는 없게 되어 있지만, 가지고 있는 Linode와 IP를 Swap할 수는 있게 되어 있다.