tag:blogger.com,1999:blog-87177306353936176052024-03-19T07:45:14.216+03:00IT Knowledge BaseAntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-8717730635393617605.post-16321137204283437122024-01-06T17:04:00.028+03:002024-01-16T15:13:31.288+03:00Программа на Python для переименования файлов, сгенерированная ИИ<p>Мы до сих пор пользуемся винрарным портативным фотоаппаратом типа "мыльница" Canon SX280HS, который пока что рука не поднимается отправить в утиль - ведь основная функция до сих пор работает :)</p><p>В последние дни ушедшего года счётчик фотографий в очередной раз преодолел рубеж 10 тыс. снимков, что в таких фотоаппаратах Canon сбрасывает нумерацию, т.е. после снимка <code>IMG_9999.jpg</code> идёт <code>IMG_0001.jpg</code>, и последовательность нарушается, если фотографии оказываются в одном каталоге. Обычно я добавляю дату съёмки в начало имени файла (чтоб получить уникальные имена - возможно, пригодится в будущем), но это не особо помогает, если счётчик обнулился в течение дня.</p><p>Соответственно, возникает задача исправить имена так, чтобы последовательность соответствовала заснятым событиям. Проще всего подправить имена вида <code>IMG_0001.jpg</code>, заменив первый нуль на <code>A</code>, т.е. в моём случае имена вида <code>2023.12.24_IMG_0001.jpg</code>, <code>2023.12.24_IMG_0010.jpg</code>, ... преобразуются в <code>2023.12.24_IMG_A001.jpg</code>, <code>2023.12.24_IMG_A010.jpg</code>, ...</p><p>Вручную такую замену делать неинтересно, особенно если файлов много, а писать свой скрипт лень, поэтому я решил прибегнуть к помощи AI-подобных бесплатных сервисов, о чём и пойдёт речь в данной заметке.</p><span><a name='more'></a></span><p>Для чистоты эксперимента всем сервисам задание будет сформулировано одинаковым образом - в текстовом виде на английском:</p><blockquote><p>write a Python program to rename files with names like 2023.12.24_IMG_0001.jpg, 2023.12.24_IMG_0010.jpg, ... to 2023.12.24_IMG_A001.jpg, 2023.12.24_IMG_A010.jpg, ...</p></blockquote><h3 style="text-align: left;">Copilot от Microsoft</h3><p>Первым я решил опробовать Copilot от Microsoft, который бесплатно доступен всем желающим, - https://copilot.microsoft.com/.</p><p>На запрос сервис бодро выдал якобы рабочий код:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory, prefix):
for filename in os.listdir(directory):
if filename.startswith(prefix):
# Extract the numeric part from the filename
numeric_part = filename[len(prefix):].split(".")[0]
try:
numeric_value = int(numeric_part)
new_filename = f"{prefix}_A{numeric_value:03d}.jpg"
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
print(f"Renamed {filename} to {new_filename}")
except ValueError:
print(f"Skipping {filename} (not a valid numeric filename)")
# Example usage:
directory_path = "." # CHANGED: renaming files in the current directory
prefix_to_rename = "2023.12.24_IMG"
rename_files(directory_path, prefix_to_rename)
</code></pre><p>Нетрудно убедиться, что этот код требуемую замену не выполняет, а только выдаёт сообщения вида:</p>
<pre style="border: 1px solid black; display: inline-block;">...
Skipping 2023.12.24_IMG_0089.jpg (not a valid numeric filename)
Skipping 2023.12.24_IMG_0090.jpg (not a valid numeric filename)
Skipping 2023.12.24_IMG_0091.jpg (not a valid numeric filename)
Skipping 2023.12.24_IMG_0092.jpg (not a valid numeric filename)
Skipping 2023.12.24_IMG_0093.jpg (not a valid numeric filename)
Skipping 2023.12.24_IMG_0094.jpg (not a valid numeric filename)
Skipping 2023.12.24_IMG_0095.jpg (not a valid numeric filename)</pre>
<p>Если сообщить сервису, что программа нерабочая, то он охотно признаёт свою ошибку и выдаёт ещё один вариант, который в точности повторяет прыдущий и такой же нерабочий.</p>
<p>Впрочем, код достаточно простой и несложно увидеть, где AI накосячил, - всего два места надо поправить:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory, prefix):
for filename in os.listdir(directory):
if filename.startswith(prefix):
# Extract the numeric part from the filename
numeric_part = filename[len(prefix):].split(".")[0]
try:
numeric_value = int(numeric_part)
new_filename = f"{prefix}A{numeric_value:03d}.jpg" # FIX2
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
print(f"Renamed {filename} to {new_filename}")
except ValueError:
print(f"Skipping {filename} (not a valid numeric filename)")
# Example usage:
directory_path = "." # CHANGED: renaming files in the current directory
prefix_to_rename = "2023.12.24_IMG_" # FIX1
rename_files(directory_path, prefix_to_rename)
</code></pre>
<p>После этого замена работает так, как требуется.</p><h3 style="text-align: left;">GPT-4 от yeschat.ai</h3><p>Бесплатного доступа к GPT-4 я пока что не нашёл, поэтому воспользовался сервисом www.yeschat.ai.</p><p>Ответ:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory):
# Loop through all the files in the specified directory
for filename in os.listdir(directory):
# Check if the file name matches the desired pattern
if filename.startswith("2023.12.24_IMG_") and filename.endswith(".jpg"):
# Extract the number part from the file name
number_part = filename.split('_')[2].split('.')[0]
# Create the new file name by replacing the number part
new_filename = filename.replace(number_part, 'A' + number_part.lstrip('0'))
# Rename the file
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
print(f"Renamed '{filename}' to '{new_filename}'")
rename_files('.') # CHANGED: replacing in the current directory
</code></pre>
<p>В отличие от предыдущего варианта, в функцию передаётся каталог, но не префикс.</p><p>Замену он выполняет неправильно - в результате образуются файлы с именами 2023.12.24_IMG_A1.jpg, 2023.12.24_IMG_A10.jpg, ...</p><p>Если ассистенту сообщить о проблеме, то он делает вид, что понимает свою ошибку:</p>
<blockquote><p>> The code doesn't work as expected - after renaming I get files with names like 2023.12.24_IMG_A1.jpg, 2023.12.24_IMG_A10.jpg,... , but I need 2023.12.24_IMG_A0001.jpg, 2023.12.24_IMG_A0010.jpg,...</p></blockquote>
<blockquote><p>>> I understand now. You need the renamed files to maintain their zero padding after the addition of the 'A' character. To achieve this, you can modify the script to add the 'A' and then reapply the zero padding to the number.</p></blockquote>
<p>В итоге скрипт становится посложнее:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory):
# Loop through all the files in the specified directory
for filename in os.listdir(directory):
# Check if the file name matches the desired pattern
if filename.startswith("2023.12.24_IMG_") and filename.endswith(".jpg"):
# Extract the number part from the file name
number_part = filename.split('_')[2].split('.')[0]
# Remove leading zeros, add 'A', and then reapply zero padding
new_number_part = 'A' + number_part.lstrip('0').rjust(4, '0')
# Create the new file name by replacing the number part
new_filename = filename.replace(number_part, new_number_part)
# Rename the file
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
print(f"Renamed '{filename}' to '{new_filename}'")
rename_files('.') # CHANGED: renaming in the current directory</code></pre><p>Но результат переименования тоже неверный - получаются файлы с именами вида <code>2023.12.24_IMG_A0001.jpg</code>, <code>2023.12.24_IMG_A0010.jpg</code>, ... (лишний нуль после <code>A</code>).</p><p>Хотя достаточно было исправить исходную версию в одном месте:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory):
# Loop through all the files in the specified directory
for filename in os.listdir(directory):
# Check if the file name matches the desired pattern
if filename.startswith("2023.12.24_IMG_") and filename.endswith(".jpg"):
# Extract the number part from the file name
number_part = filename.split('_')[2].split('.')[0]
# Create the new file name by replacing the number part
new_filename = filename.replace(number_part, 'A' + number_part[1:]) # FIX
# Rename the file
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
print(f"Renamed '{filename}' to '{new_filename}'")
rename_files('.') # CHANGED: renaming in the current directory
</code></pre>
<h3 style="text-align: left;">Claude 2.1 от yeschat.ai</h3><p>Альтернативная LLM от того же сервиса www.yeschat.ai.</p>
<p>Ответ:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
import re
date_pattern = r"(\d{4}\.\d{2}\.\d{2})_IMG_\d{4}"
for filename in os.listdir("."):
if re.match(date_pattern, filename):
date_part = re.match(date_pattern, filename).group(1)
idx_part = filename.split("_IMG_")[1].split(".")[0]
new_idx_part = ""
for c in idx_part:
new_idx_part += chr(ord('A') + int(c) - 1)
new_filename = f"{date_part}_IMG_{new_idx_part}.jpg"
print(f"Renaming {filename} to {new_filename}")
os.rename(filename, new_filename)</code></pre><p>Тут сразу обращает на себя внимание использоваение regexp'ов, код выглядит замороченным (в стиле "лапша 80-го уровня"), при этом он совершенно нерабочий - происходит замена без учёта префикса, в результате образуются имена вида <code>2023.12.24_IMG_@@@A.jpg</code>, <code>2023.12.24_IMG_@@@B.jpg</code>, ...</p>
<p>Незачот!</p>
<h3 style="text-align: left;">CodeLlama-34b-Instruct от together.ai (дополнение от 15.01.2024)</h3>
<p>Open-source LLM на условно-бесплатном сервисе, которую можно (при необходимости) запустить и на своём оборудовании.</p><p>Ответ:</p>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
dir_path = "." # CHANGED: renaming in the current directory
for filename in os.listdir(dir_path):
if filename.startswith("2023.12.24_IMG_"):
old_filepath = os.path.join(dir_path, filename)
new_filename = filename.replace("IMG_", "IMG_A")
new_filename = new_filename.replace(".jpg", "")
new_filename = new_filename.zfill(4) + ".jpg"
new_filepath = os.path.join(dir_path, new_filename)
os.rename(old_filepath, new_filepath)</code></pre><div>Даже без запуска ясно, что переименование будет неверным - в результате получатся имена с лишним нулём. Зато, если выкинуть "бредовый код", сгенерированное решение - одно из самых простых и его легко привести в порядок:</div>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
dir_path = "." # CHANGED: renaming in the current directory
for filename in os.listdir(dir_path):
if filename.startswith("2023.12.24_IMG_"):
old_filepath = os.path.join(dir_path, filename)
new_filename = filename.replace("IMG_0", "IMG_A")
new_filepath = os.path.join(dir_path, new_filename)
os.rename(old_filepath, new_filepath)</code></pre>
<h3 style="text-align: left;">GPT-3.5 от OpenAI (дополнение от 16.01.2024)</h3><div>Эту модель можно использовать бесплатно.</div><div>Ответ:</div><pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory):
# Get a list of all files in the directory
files = os.listdir(directory)
for file_name in files:
# Check if the file is a JPEG file with the specified naming pattern
if file_name.endswith('.jpg') and file_name.startswith('2023.12.24_IMG_'):
# Extract the numeric part of the file name
numeric_part = file_name.split('_')[-1].split('.')[0]
# Pad the numeric part with leading zeros to ensure correct sorting
padded_numeric_part = numeric_part.zfill(4)
# Create the new file name
new_file_name = f'2023.12.24_IMG_A{padded_numeric_part}.jpg'
# Build the full path of the file
old_file_path = os.path.join(directory, file_name)
new_file_path = os.path.join(directory, new_file_name)
# Rename the file
os.rename(old_file_path, new_file_path)
print(f'Renamed: {file_name} -> {new_file_name}')
if __name__ == "__main__":
target_directory = '.' # CHANGED: renaming in the current directory
# Call the function to rename files
rename_files(target_directory)
</code></pre>
<div>Нетрудно заметить (даже не запуская программу), что в результате переименования получатся имена с лишним нулём. Если об этом сообщить "интеллекту", то он "исправляет" ошибку, заменяя <code>zfill(4)</code> на <code>zfill(3)</code>, что в целом является верным, однако ИИ не понимает, что <code>numeric_part</code> - строка, в которой сохранились ведущие нули, и <code>zfill()</code> тут не поможет.</div>
<div>Исправленый код может быть, например, таким:</div>
<pre style="border: 1px solid black; display: inline-block;"><code class="prettyprint">import os
def rename_files(directory):
# Get a list of all files in the directory
files = os.listdir(directory)
for file_name in files:
# Check if the file is a JPEG file with the specified naming pattern
if file_name.endswith('.jpg') and file_name.startswith('2023.12.24_IMG_'):
# Extract the numeric part of the file name
numeric_part = int(file_name.split('_')[-1].split('.')[0]) # FIX1
# Pad the numeric part with leading zeros to ensure correct sorting
padded_numeric_part = str(numeric_part).zfill(3) # FIX2
# Create the new file name
new_file_name = f'2023.12.24_IMG_A{padded_numeric_part}.jpg'
# Build the full path of the file
old_file_path = os.path.join(directory, file_name)
new_file_path = os.path.join(directory, new_file_name)
# Rename the file
os.rename(old_file_path, new_file_path)
print(f'Renamed: {file_name} -> {new_file_name}')
if __name__ == "__main__":
target_directory = '.' # CHANGED: renaming in the current directory
# Call the function to rename files
rename_files(target_directory)</code></pre>
<div>Но в целом решение выглядит излишне усложнённым.</div>
<div><br /></div>
Продолжение следует...AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-43248873327915132722023-10-09T01:22:00.007+03:002023-10-09T14:51:21.651+03:00Собственный автономный экзмепляр Stable Diffusion на ноутбуке с видеокартой NVIDIA<p>Наконец-то и я добрался до генеративных возможностей современных нейросетей по части картинок. Сначала поигрался немного с https://www.midjourneyai.ai/ (нашлось поиском одним из первых), где бесплатно в браузере можно нагенерировать всякой всячины (вроде бы там есть лимит порядка 20-ти запросов в сутки, но он будто бы забывается при повторном открытии браузера).</p><p>Потом я озадачился тем, чтобы похожую технологию запустить на своём тазике (<a href="https://it-knowledge-base.blogspot.com/2020/02/review-of-maibenben-xiaomai-6s-2.html" target="_blank">MaiBenBen XiaoMai 6S-2</a> c NVIDIA <a href="https://www.nvidia.com/en-gb/geforce/gaming-laptops/geforce-mx150/features/" rel="nofollow" target="_blank">GeForce MX150</a> на борту под управлением Windows 10 21H1 64-bit). Об этом эксперименте и пойдёт речь...<span></span></p><a name='more'></a>В качестве отправной точки можно взять русскоязычную инструкцию наподобие такой - <a href="https://habr.com/ru/articles/727834/" rel="nofollow" target="_blank">Локальные нейросети (генерация картинок, локальный chatGPT). Запуск Stable Diffusion на AMD видеокартах</a>. В ней упоминяется open-source UI-wrapper <a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" rel="nofollow" target="_blank">stable-diffusion-webui</a>, который ранее мне уже попадался (был добавлен в закладки). С него-то я и решил начать<p></p><div>Недолго думая, скачал упомянутый репозиторий в локальную папку (изначально у него размер совсем крошечный - всего 36 MB, из которых git-структуры заниимают 33 MB). С имевшимся Python 3.11.5 эта оболочка подружиться не захотела (скрипт об этом выводит предупреждения), поэтому заменил его на последнюю версию предыдущего поколения <a href="https://www.python.org/downloads/release/python-31011/">Python 3.10.11</a>.</div><div>Модель по рекомендации из упомянутой статьи - <a href="https://civitai.com/models/4823?modelVersionId=156110" rel="nofollow" target="_blank">Deliberate</a> (для пробы взял последнюю версию - V3).</div><div>Ещё потребовалось установить <a href="https://developer.nvidia.com/cuda-toolkit-archive" rel="nofollow" target="_blank">CUDA Toolkit 12.2</a> (другая версия, возможно, тоже подойдёт). В Web-инсталляторе есть возможность отключить установку дополнительных компонентов, от новых версий драйвера видео-адаптера и PhysX я не стал отказываться.</div><div>После этого всё заработало как требуется.</div><div>Запуск с такими параметрами:</div><div><code>webui-user.bat --lowvram --precision full --no-half --skip-torch-cuda-test</code></div><div>Первичный вывод в лог выглядит таким образом:</div><div><code><pre>venv "D:\???\stable-diffusion-webui\venv\Scripts\Python.exe"
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
Version: v1.6.0
Commit hash: 5ef669de080814067961f28357256e8fe27544f4
Launching Web UI with arguments:
no module 'xformers'. Processing without...
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
Loading weights [aadddd3d75] from D:\???\stable-diffusion-webui\models\Stable-diffusion\deliberate_v3.safetensors
Creating model from config: D:\???\stable-diffusion-webui\configs\v1-inference.yaml
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
Startup time: 38.5s (prepare environment: 12.9s, import torch: 9.2s, import gradio: 3.9s,
setup paths: 4.4s, initialize shared: 1.0s, other imports: 3.2s, setup codeformer: 0.4s,
load scripts: 1.8s, create ui: 1.3s, gradio launch: 0.7s).
Applying attention optimization: Doggettx... done.
Model loaded in 45.5s (load weights from disk: 1.7s, create model: 1.0s,
apply weights to model: 32.9s, apply half(): 7.0s, load VAE: 0.2s, calculate empty prompt: 2.5s).</pre></code></div>
<div>Для первой пробы я ввёл задание <code>small red cat playing with a large green ball</code>, и не прошло и полгода, как я получил имидж, отдалённо корреллирующий с ключевыми словами:</div><div><a href="https://ibb.co/dWwzYdL"><img alt="00000-1142550" border="0" src="https://i.ibb.co/1vtwWDd/00000-1142550.png" /></a></div>
<div>Как говорится, какой запрос - такой и результат! Формально, все ключевые слова учтены :)</div>
<div><code>small red cat playing with a large green ball</code></div><div><code>Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1142550, Size: 512x512, Model hash: aadddd3d75, Model: deliberate_v3, Version: v1.6.0</code></div>
<div>Для генерации этой картинки размером 512x512 нейросеть в тисках моего нотубука пыхтела порядка 10 минут, что, с одной стороны, немножко слишком долго, а с другой - легко ли найти что-то подобное поиском в интернетах? Не говоря уж о соблюдении авторских права на найденное изображение. А тут - "своё" генеративное искусство. Шик!</div><div>Возможно, некотороего ускорения можно добиться, если прикрутить модуль <code>xformers</code> (дополню заметку, если разберусь с этим моментом).</div><div>Отмечу также, что итоговый каталог с приручённой нейросетью занимает 12 GB (включая модель по-умолчанию <code>v1-5-pruned-emaonly.safetensors</code> размером 4 GB и дополнительно загруженную модель <code>deliberate_v3.safetensors</code> размером 2 GB). Установленный <code>NVIDIA GPU Computing Toolkit</code> занимает 2 GB (в "<code>C:\Program Files\NVIDIA GPU Computing Toolkit</code>").</div><div>Для сравнения приведу результаты других генераторов с тем же запросом.</div><div>www.midjourneyai.ai - время порядка 1 минуты, размер 1024x1024:</div><div><a href="https://ibb.co/Zd7KrHK"><img alt="62576935c2f744c3b2fc85941fcd0c27-Comfy-UI-138354" border="0" src="https://i.ibb.co/Nxbpq1p/62576935c2f744c3b2fc85941fcd0c27-Comfy-UI-138354.png" /></a></div><div>www.stablediffusionai.ai - время ок. 1 минуты, размер 1024x1024:</div><div><a href="https://ibb.co/Gdpshgx"><img alt="9ae460598f7b41aabfee5561c2587888-Comfy-UI-132859" border="0" src="https://i.ibb.co/NFC14wV/9ae460598f7b41aabfee5561c2587888-Comfy-UI-132859.png" /></a></div><div><br /></div><div>С котами и мячами, допустим, всё ясно, а как насчёт картинок из "кучи букв"?</div><div>Из заметки "<a href="https://cnvrg.io/stable-diffusion-without-gpus/" rel="nofollow" target="_blank">How to run a stable diffusion model quickly without GPUs</a>" я позаимствовал запрос такого вида "<code>dark sci-fi , A huge radar on mountain ,sunset, concept art ,high detail,warm lighting ,volumetric godrays,vivid beautiful,trending on artstation by Jord</code>".</div><div>Спустя 10 минут я стал обладателем своего варианта "картины с радаром в лучах заката":</div><div><img alt="00001-3643061805" border="0" src="https://i.ibb.co/0K1nX79/00001-3643061805.png" /></div><div>Выглядит эпично и оригинально.</div><div>Пожалуй, на этом можно и остановиться :)</div>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-14914385268405697482022-08-02T12:11:00.001+03:002022-08-02T12:11:07.319+03:00Privacy games<p> An updatable list of games about privacy and security for every modern device user.</p><span><a name='more'></a></span><p><a href="https://prismad.psi.uni-bamberg.de/" rel="nofollow" target="_blank">PRISMA D</a></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiyJSrIsQS2xbQIJE8NLz-QQJ_WlAZ_gzy3dE-hCBWlUYbCHUzgOlkVcINGFc_DfXM7QQF6JcmC6DKcmYFqjwa6AuLtWye-GaNO0Jho1KSWJofuHyZI8DlTY-xoy89otfGQY4sS9Uen3dq-zD4YHUalqT7EsfyX13kmG8MK1liRcCOTF3NiG-LttTu6" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="720" data-original-width="760" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEiyJSrIsQS2xbQIJE8NLz-QQJ_WlAZ_gzy3dE-hCBWlUYbCHUzgOlkVcINGFc_DfXM7QQF6JcmC6DKcmYFqjwa6AuLtWye-GaNO0Jho1KSWJofuHyZI8DlTY-xoy89otfGQY4sS9Uen3dq-zD4YHUalqT7EsfyX13kmG8MK1liRcCOTF3NiG-LttTu6" width="253" /></a></div>A nice short game which runs fullscreen in a browser. It takes about 1 hour to solve all challanges. The topics cover a small subset of privacy issues including applications permissions, wearable devices, browsers, search engines, etc.<p></p><p>There is also several topics explained in the "Library" with more details and links to researches.</p>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-32896682934691581762022-02-09T19:01:00.007+03:002022-02-09T19:41:20.226+03:00Восстановление удалённых файлов под Windows<p>Сегодня случайно удалил фотографию на твердотельном диске (SSD) с NTFS-разделом, где хранится часть фотоархива, и по этому поводу решил вновь проверить, как обстоят дела с восстановлением файлов под Windows, об этом и будет данный мини-обзор.</p><span><a name='more'></a></span><p>В моём случае на NTFS-разделе (он не является системным) хранятся не только фотоархивы, но также и прочие данные, а также текущие данные всех пользователей Windows, включая их профили. Соответственно, после злополучного удаления нельзя просто так оставить диск нетронутым, т.к. при завершении работы Windows и программ будет обновляться реестр, приложения сохранят свои данные и проч. Даже отключение питания не поможет, т.к. всё крутится в ноутбуке с несъёмным аккумулятором (до чего дошёл прогресс!).</p><p>С учётом этого шансов на восстановление у меня немного, и после всех экспериментов я попробовал отыскать тот же файл среди удалённых на карте-памяти размером 8GB, которая имеет единственный FAT32-раздел. Ситуация осложняется тем, что с карты все файлы были скопированы, после чего она была отформатирована (фотоаппаратом Canon SX280HS) и была в использовании какое-то время, т.е. поверх удалённых файлов могло быть записано много всякой всячины.</p><p>Сразу скажу, что большинство программ для восстановления требуют своей установки (обычно с правами администратора), что само по себе уже жирный минус, т.к. инсталлятор может перезаписать удалённые файлы.</p><h3 style="text-align: left;">DataNumen NTFS Undelete</h3><p>Не распознала оба NTFS-раздела на твердотельном диске. В итоговую таблицу не попала.</p><h3 style="text-align: left;">Disk Drill</h3><div>Программа в режиме Deep Scan нашла около 100 тыс. JPEG-файлов, которые, по-моему, были существующими файлами (с изменёнными именами!). При этом она не позволяет указать, где именно искать. В добавок показ найденных файлов сделан в виде дерева (тип, группа и т.п.), что затрудняет фильтрацию.</div><div>Это единственная программа, которая имитирует бурную деятельность, но ничего не восстанавливает.</div><div>В бесплатном режиме позволяет восстановить до 500 МБ.</div><h3 style="text-align: left;">Kickass Undelete</h3><div>Достаточно древняя программа, которая запускается без инсталляции, часть файлов находит, но нужных среди них не оказалось.</div><h3 style="text-align: left;">Puran File Recovery</h3><div>Для этой программы возможна как инсталляция, так и непосредственный запуск. Смогла найти на карте памяти файлы месячной давности в идеальном состоянии.</div><div>На NTFS-разделе в нужном каталоге смогла найти нужный файл, однако, несмотря на состояние Excellent, изображение для него собрать не смогла - показала HEX-preview.</div><div>Запускается только с правами администратора.</div><h3 style="text-align: left;">Recuva</h3><div>Требует установки и запуска с правами администратора.</div><div>Удалённые файлы на NTFS-разделе найти получилось, но в восстановленных оказались нули. Я также попробовал восстановить другие файлы, проверяя свою гипотезу, и пришёл к мнению, что маленькие файлы (размером до 1 КБ) восстанавливаются без проблем.</div><div>В режиме "deep scan" на карте памяти нашла пригодным для восстановления только один файл удаленный несколькими часами ранее.</div><h3 style="text-align: left;">TestDisk & PhotoRec 7.2-WIP</h3><div>В этот набор входит несколько программ - <code>fidentify_win.exe</code>, <code>testdisk_win.exe</code>, <code>photorec_win.exe</code>, <code>qphotorec_win.exe</code>, и только последняя из них имеет оконный интерфейс (остальные работают в очень своеобразном консольном режиме).</div><div>С помощью QPhotoRec у меня получилось отыскать на карте-памяти некоторые фотографии и видеофайлы месячной давности - удивительно, что они там ещё сохранились! Видео, конечно, с повреждениями, и о его содержимом можно получить только общее представление. А вот изображения вполне пригодны для дальнейшего использования. К сожалению, нужных файлов среди них не оказалось.</div><h3 style="text-align: left;">Итоги</h3>
<table border="1">
<thead>
<tr>
<th>Программа</th>
<th>Установка</th>
<th>Каталог</th>
<th>GUI</th>
<th>Рез.</th>
<th>Актуальность</th>
</tr></thead>
<tbody>
<tr>
<td>Disk Drill 4.4.606</td>
<td>Да</td>
<td>Нет</td>
<td>Да</td>
<td>-</td>
<td>09.02.2022</td>
</tr>
<tr>
<td>Kickass Undelete 1.5.5</td>
<td bgcolor="lightgreen">Нет</td>
<td>Нет</td>
<td>Да</td>
<td>=</td>
<td>09.02.2022</td>
</tr>
<tr>
<td>Puran File Recovery</td>
<td bgcolor="lightgreen">Нет</td>
<td>Нет?</td>
<td>Да</td>
<td>=</td>
<td>09.02.2022</td>
</tr>
<tr>
<td>Recuva v1.53.1087</td>
<td>Да</td>
<td bgcolor="lightgreen">Да</td>
<td>Да</td>
<td>=</td>
<td>09.02.2022</td>
</tr>
<tr>
<td>TestDisk & PhotoRec 7.2-WIP</td>
<td bgcolor="lightgreen">Нет</td>
<td>Нет?</td>
<td>Да/Нет</td>
<td>=</td>
<td>09.02.2022</td>
</tr>
</tbody>
</table><br /><div>Легенда:</div><div><ul style="text-align: left;"><li><b>Установка</b> - необходимо ли программу устанавливать</li><li><b>Каталог</b> - позволяет ли программа выбирать, в каком каталоге искать удалённые файлы</li><li><b>Рез.</b> - символическое обозначение того, получилось ли у программы найти и восстановить удалённые файлы:</li><ul><li>"-" - ничего толком найти не удалось</li><li>"=" - что-то из удалённых файлов найти удалось, но искомых файлов среди них не было</li><li>"+" - искомые файлы удалось восстановить</li></ul></ul><div>К сожалению, гарантированное восстановление удалённых файлов на NTFS-разделе твердотельных дисков всё ещё является нерешённой задачей. С FAT32 дела обстоят гораздо лучше.</div></div><div>На основании своего поверхностного эксперимента я рекомендую QPhotoRec из набора <a href="https://www.cgsecurity.org/wiki/TestDisk_Download" rel="nofollow" target="_blank">TestDisk & PhotoRec 7.2-WIP</a> или <a href="http://www.puransoftware.com/File-Recovery-Download.html" rel="nofollow" target="_blank">Puran File Recovery</a>.</div>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-39464158320072281772020-06-12T23:50:00.007+03:002022-03-14T10:50:18.653+03:00Government-in-the-middle<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Список некоторых адресов, заблокированных в одной отдельно взятой стране.<br />
<br />
<a name='more'></a><br /></div>
<table border="1">
<thead>
<tr><th>Адрес</th>
<th>Дата</th>
<th>Что это</th>
</tr>
</thead>
<tbody>
<tr>
<td>bbc.com</td>
<td>04.03.2022?</td>
<td>BBC (Би-би-си) — британская вещательная организация</td>
</tr>
<tr>
<td>facebook.com</td>
<td>04.03.2022?</td>
<td><a href="https://ru.wikipedia.org/wiki/Facebook" rel="nofollow" target="_blank">Facebook</a> — крупнейшая социальная сеть в мире</td>
</tr>
<tr>
<td>instagram.com</td>
<td>14.03.2022</td>
<td><a href="https://ru.wikipedia.org/wiki/Instagram" rel="nofollow" target="_blank">Instagram</a> — американская социальная сеть для обмена фотографиями и видео<br />Решение о блокировке принято 11.03.2022 - см. <a href="https://rkn.gov.ru/news/rsoc/news74180.htm" rel="nofollow" target="_blank">Об ограничении доступа к социальной сети Instagram</a></td>
</tr>
<tr>
<td><a href="https://linkedin.com/">linkedin.com</a></td>
<td>04.08.2016</td>
<td><a href="https://ru.wikipedia.org/wiki/LinkedIn" target="_blank">LinkedIn</a> — социальная сеть для поиска и установления деловых контактов</td>
</tr>
<tr>
<td><a href="https://telegram.org/" target="_blank">telegram.org</a></td>
<td>16.04.2018-18.06.2020</td>
<td><a href="https://ru.wikipedia.org/wiki/Telegram" target="_blank">Telegram</a> — кроссплатформенный мессенджер, позволяющий обмениваться сообщениями и медиафайлами многих форматов.<br />Вновь доступен, начиная с ~18.06.2020 - см. <a href="https://rkn.gov.ru/news/rsoc/news73050.htm" rel="nofollow" target="_blank">О мессенджере Телеграмм</a></td>
</tr>
<tr>
<td><a href="https://protonmail.com/" target="_blank">protonmail.com</a></td>
<td>29.01.2020</td>
<td><a href="https://ru.wikipedia.org/wiki/ProtonMail" target="_blank">ProtonMail</a> — сервис веб-почты с шифрованием, созданный в 2013 году сотрудниками ЦЕРН</td>
</tr>
<tr>
<td><a href="https://tutanota.com/" target="_blank">tutanota.com</a></td>
<td><a href="https://reestr.rublacklist.net/record/2096587/" target="_blank">14.02.2020</a></td>
<td><a href="https://ru.wikipedia.org/wiki/Tutanota" target="_blank">Tutanota</a> — сервис веб-почты со встроенным шифрованием</td>
</tr>
<tr>
<td>twitter.com</td>
<td>04.03.2022?</td>
<td>Twitter — социальная сеть</td>
</tr>
<tr>
<td>ukr.net</td>
<td>04.03.2022?</td>
<td>Ukr.net — украинский сервис веб-почты и новостной сайт</td>
</tr>
</tbody>
</table>
<br />
Для проверки доступности можно использовать следующие сервисы:<br />
<ul>
<li><a href="https://eais.rkn.gov.ru/" rel="nofollow" target="_blank">https://eais.rkn.gov.ru/</a></li>
<li><a href="https://reestr.rublacklist.net/" rel="nofollow" target="_blank">https://reestr.rublacklist.net/</a> </li>
</ul>
<div>
Типовые способы обхода блокировок:</div>
<div>
<ol style="text-align: left;">
<li><strike>Браузер <a href="https://www.opera.com/" rel="nofollow" target="_blank">Opera</a> со встроенным <a href="https://www.opera.com/features/free-vpn" rel="nofollow" target="_blank">бесплатным VPN-сервисом</a></strike>. Начиная с ~17.06.2021 этот способ недоступен для всех пользователей с российскими IP-адресами (см. <a href="https://rkn.gov.ru/news/rsoc/news73700.htm" rel="nofollow" target="_blank">О принятии мер в отношении сервисов обхода ограничения доступа к противоправному контенту</a>). В качестве альтернативы можно использовать расширения типа <a href="https://addons.opera.com/ru/extensions/details/browsec/" rel="nofollow" target="_blank">Browsec</a> и проч.</li>
<li><a href="https://antizapret.prostovpn.org/" rel="nofollow" target="_blank">https://antizapret.prostovpn.org/</a> + <a href="https://zaborona.help/" rel="nofollow" target="_blank">https://zaborona.help/</a> (работает для всех браузеров после дополнительной настройки)</li>
<li><a href="https://windscribe.com/?friend=7ao8uzhi" rel="nofollow" target="_blank">Windscribe</a> VPN-сервис - работает на системном уровне (для всех приложений). При регистрации по <a href="https://windscribe.com/?friend=7ao8uzhi" rel="nofollow" target="_blank">ссылке</a> выдаётся бонус +1GB/мес. в добавок к бесплатным 10GB/мес.</li>
</ol>
</div>
<div>
<br /></div>
</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-62708518162487621982020-05-05T17:45:00.005+03:002021-11-18T22:53:47.730+03:00Как активировать Remote Desktop Connection для Windows 10 Home<div dir="ltr" style="text-align: left;" trbidi="on">
На одном из наших ноутбуков (см. <a href="https://it-knowledge-base.blogspot.com/2020/02/review-of-maibenben-xiaomai-6s-2.html" target="_blank">обзор</a>) на постоянной основе завелась Windows 10 Home Premium, и периодически стала возникать необходимость подключаться к этому компьютеру через Remote Desktop. Как известно, эта функциональность в Windows доступна, начиная с "комплектации" Professional, но, понятно, что доплачивать порядка $100 только за эту фичу мало, кто захочет. Поскольку во всех редакциях Windows нужные компоненты всё равно присутствуют, умельцы нашли возможность настроить дистанционный доступ и к бюджетным вариантам Windows. В данной заметке я изложу схему, которую я опробовал на своём оборудовании и могу подтвердить её работоспособность.<br />
<br />
<a name='more'></a><br />
<span style="color: red;">(!)</span> Все изменения вы делаете на свой страх и риск. Для моей системы всё прошло благополучно, но я не могу гарантировать, что это сработает для любой конфигурации и в любых условиях (особенно, если для вашей системы настроены автоматические обновления).<br />
В моём случае модификации подверглась Windows 10 Home Premium 64-bit (Windows 10 May 2019 Update).<br />
<h3 style="text-align: left;">
Шаг 1. Устанавливаем сервис RDPWrap</h3>
По ссылке <a href="https://github.com/stascorp/rdpwrap/releases">https://github.com/stascorp/rdpwrap/releases</a> скачиваем последнюю версию RDP Wrapper Library (на текущий момент 1.6.2) и устанавливаем.<br />
Можно использовать как ZIP-файл, так и MSI-файл.<br />
В итоге на диске появится каталог с именем <code>"C:\Program Files\RDP Wrapper"</code>, в котором должно быть как минимум два файла:<br />
<ul style="text-align: left;">
<li><code>rdpwrap.dll</code> (сам сервисный модуль)</li>
<li><code>rdpwrap.ini</code> (файл с настройками)</li>
</ul>
<div>
Если для установки был использован MSI-файл, то, скорее всего, в каталоге могут также оказаться дополнительные файлы, например:</div>
<div>
<ul style="text-align: left;">
<li><code>RDPCheck.exe</code> (для проверки соединения)</li>
<li><code>RDPConf.exe</code> (для конфигурирования)</li>
</ul>
</div>
После установки попробуйте запустить <code>RDPConf.exe</code>. Если в появившемся окне все пункты Diagnostics будут отмечены зелёным цветом, то можно пропустить следующий шаг и перейти к шагу №3.<br />
<h3 style="text-align: left;">
Шаг 2. Настраиваем сервис RDPWrap</h3>
<div>
Скорее всего, после установки в окне конфигуратора некоторые пункты будут помечены красным цветом, но первые два должны быть зелёным:<br />
<ul style="text-align: left;">
<li><code>
Wrapper state: <span style="color: #38761d;">Installed</span></code></li>
<li><code>
Service state: <span style="color: #38761d;">Running</span></code></li>
</ul>
Если это не так, то установка прошла неудачно. Попробуйте перезапустить компьютер.<br />
Если оставшийся пункт помечен красным, то это означает, что для вашей системы нужны другие настройки. Соответственно вам нужно будет подобрать файл <code>rdpwrap.ini</code> где-то среди обсуждений <a href="https://github.com/stascorp/rdpwrap/issues">https://github.com/stascorp/rdpwrap/issues</a>. (ориентируйтесь на версию сервиса - строка вида <code>10.0.18362.267</code> на скриншоте ниже).<br />
В моём случае подошёл файл из <a href="https://github.com/stascorp/rdpwrap/issues/845#issuecomment-515787820" target="_blank">комментария к проблеме №845</a>.<br />
Я также пробовал один из файлов поновее, который по идее должен включать и настройки для моей старой версии, но что-то не срослось и конфигуратор показал, что, мол <code><span style="color: #38761d;">[fully supported]</span></code>, но <code>Listener state: <span style="color: red;">Not listening</span></code>.</div><div>Также там может попасться скрипт для автоматического обновления. По отзывам он тоже рабочий, но я не проверял.<br />
Добавлю, что после замены файла конфигурации службу необходимо перезапускать (из командной строки с правами администратора):<br />
<code>net stop termservice<br />
net start termservice<br />
</code>
<br />
В конце концов, если всё настроено правильно, окно конфигуратора должно выглядеть как-то так:</div>
<div>
<img alt="RDP Wrapper-Configuration v.15.0.0 10.0.18362.267 OK" border="0" src="https://i.ibb.co/37TwV1P/RDP-Wrapper-Configuration-1-5-0-0-10-0-18362-267-OK.png" /></div>
<div>
Версии могут быть другими, но вся диагностика должна быть зелёной.<br />
<h3 style="text-align: left;">
Шаг 3. Настройка прав пользователей</h3>
</div>
<div>
Сейчас уже можно проверить работоспособность службы <code>Remote Desktop Services</code>. Это можно сделать или запустив <code>RDPCheck.exe</code>, или стандартным способом - через <i>Подключение к удалённому рабочему столу</i>.</div>
<div>
Любой пользователь с правами администратора может зайти удалённо и работать в системе.</div>
<div>
Если удалённый вход требуется и для обычных пользователей (что было актуально в моём случае), то нужно осуществить несколько дополнительных действий.</div>
<h4 style="text-align: left;">
3.1 Активируем группу <code>Remote Desktop Users</code></h4>
<div>
<ol style="text-align: left;">
<li>Скачайте <a href="https://download.sysinternals.com/files/PSTools.zip">https://download.sysinternals.com/files/PSTools.zip</a> и извлеките <code>PsExec.exe</code>.</li>
<li>Запустите <code>regedit.exe</code> с "правами системы": <code>PsExec.exe -s -i regedit.exe</code></li>
<li>Импортируйте <a href="https://superuser.com/a/719819" target="_blank">REG-файл, предложенный в ответе на SuperUser</a>.</li>
</ol>
</div>
<h4 style="text-align: left;">
3.2 Выдаём права пользователям</h4>
Каждого пользователя, который должен иметь возможность входить удалённо, нужно добавить в группу <code>Remote Desktop Users</code>.<br />
Через командную строку это можно сделать таким образом:<br />
<code>net localgroup "Remote Desktop Users" /add <strong>User</strong></code><br />
Естественно командую строку нужно запускать с правами администратора.<br />
<h3 style="text-align: left;">
Вместо заключения</h3>
Если предложенный подход вам не нравится, не подходит или не заработал, вы всё равно можете получить удалённый доступ к системе под управлением Windows 10 Home, напр., с помощью AnyDesk (очень рекомендую эту программу в качестве альтернативы TeamViewer'у). Однако в этом случае интерактивной будет только одна сессия и все дистанционные действия будут видны на экране компьютера (в некоторых случаях это может быть даже полезно, напр., для демонстрации).<br />
<br />
<h3 style="text-align: left;">
Обновление от 27.05.2020</h3>
Спустя почти месяц использования изложенной схемы была обнаружена единственная проблема - если на удалённом компьютере запущено игровое приложение, то при дистанционном входе другого пользователя игра может зависнут или аварийно завершится (возникает crash где-то в недрах DirectX-библиотеки). Возможно, это связано со старыми драверами на моём оборудовании. Впрочем и саму систему я не обновлял с момента установки в январе.<br />
Сегодня же я обнаружил, что GitHub-репозиторий с полезной утилитой и не менее полезными комментариями заблокирован:<br />
<img alt="2020.05.27 stascorp-rdpwrap This-repository-has-been-disabled" border="0" src="https://i.ibb.co/DQLYcsg/2020-05-27-stascorp-rdpwrap-This-repository-has-been-disabled.png" />
<br />
Шансов, что проект воскреснет там же, немного, т.к. всем этим заведением теперь (точнее, с 2018 года) рулит Microsoft. Будем надеятся, что автор перенесёт всё добро на какую-то более независимую площадку.</div><h3 style="text-align: left;">Обновление от 18.11.2021</h3><div dir="ltr" style="text-align: left;" trbidi="on">Как ни странно, проект ещё жив и поддерживается, причём на том же месте: исправления ini-файла для новых версий Windows регулярно появляются в обсуждениях. Так я сегодня всё настроил по приведенной выше инструкции для своей Windows 10 21H1 с версией сервиса <code>10.0.19041.789</code>. Заработало без перезагрузки компьютера. Ура! :)</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-21749855008695035112020-02-17T19:49:00.001+03:002020-02-18T01:12:22.204+03:00Обзор ноутбука MaiBenBen XiaoMai 6S-2<div dir="ltr" style="text-align: left;" trbidi="on">
В конце 2019 года я озадачился покупкой нового ноутбука взамен своего ещё вполне работоспособного и достаточно надёжного агрегата Lenovo B580. Основная причина, побудившая меня к замене, связана, скорее, с устаревшим дисплеем - в наши дни разрешение экрана 1366x768 на ноутбуках формата 15,6" выглядит архаично. К тому же для некоторых моих задач требовалась поддержка разрешения 1920x1080, а подключать внешний монитор не всегда получалось. Заодно при замене я планировал повысить мощность процессора - дополнительные мегагерцы лишними не бывают. И ещё, хотя и не на первом месте, было требование заиметь в своё распоряжение более-менее производительную видеокарту.<br />
<br />
Потратив некоторое время на досмотр ассортимента местных интернет-магазинов, я было смирился с тем, что за нужную мне конфигурацию мне придётся выложить ощутимую для бюджета сумму порядка $800 (50+ тыс.руб.). При этом всё-таки придётся пойти на компромиссы типа распаянной на плате памяти или отсутствия разъёма M.2, что меня не очень обрадовало.<br />
<br />
Затем я обратил свой взор на заморские интернет-площадки, среди которых наиболее доступной я считаю AliExpress. Сейчас уже и не вспомню, по чьей подсказке, я вышел на <a href="http://ali.pub/4hlx8g" rel="nofollow" target="_blank">магазин компании MaiBenBen</a>, но, как можно понять из названия заметки, именно там я и прикупил <a href="http://ali.pub/4hlxfn" rel="nofollow" target="_blank">ноутбук MaiBenBen XiaoMai 6S-2</a>. Далее и пойдёт речь о данном устройстве, а также о его сравнении с некоторыми другими моделями ноутбуков.<br />
<br />
<a name='more'></a><h3 style="text-align: left;">
Выбор, заказ и доставка</h3>
<div>
Выбор на эту модель из ассортимента магазина пал именно из-за процессора - Intel i5-8265U. Я также рассматривал соседние модели по сравнимой цене или чуть дешевле (напр., <a href="http://ali.pub/4hlyda" rel="nofollow" target="_blank">17.3" XiaoMai 6 Plus с Intel 5405U+MX250</a> или <a href="http://ali.pub/4hlyyo" rel="nofollow" target="_blank">15.6" XiaoMai 6 Pro с Intel 5405U+MX250</a>), но производительность Intel 5405U, на мой взгляд, маловата (сужу по benchmarks).</div>
<div>
Варианты с большим экраном 17.3" первое время мне были интересны, но впоследствии я решил остаться с привычным 15.6" (просто не нашёл нужной конфигурации по доступной цене).<br />
<br /></div>
<div>
На текущий момент (середина февраля 2020 года) указанные модели предлагаются по таким ценам (в официальном магазине с доставкой из Китая, но можно найти и в T-mall):</div>
<div>
<table border="1">
<thead>
<tr><th>Модель</th><th>Опции</th><th>Цена</th></tr>
</thead>
<tbody>
<tr><td><a href="http://ali.pub/4hlyda" rel="nofollow" target="_blank">17.3" XiaoMai 6 Plus Intel 5405U+MX250</a></td><td>DOS, 8GB, PCI-E 512GB (Bundle 3)</td><td>$477.90</td></tr>
<tr><td><a href="http://ali.pub/4hlyyo" rel="nofollow" target="_blank">15.6" XiaoMai 6 Pro Intel 5405U+MX250</a></td><td>DOS, 8GB, PCI-E 512GB (Bundle 2)</td><td>$661.37</td></tr>
<tr><td><a href="http://ali.pub/4hlxfn" rel="nofollow" target="_blank">15.6" XiaoMai 6S-2 Intel i5-8265U+MX150</a></td><td>DOS, 8GB, 480GB (Bundle 2)</td><td>$740.05</td></tr>
</tbody>
</table>
</div>
<div style="text-align: left;">
Я заказывал именно третий вариант 02.12.2019 за $607.62 с доставкой в пределах РФ (предположительно за 15 дней), но что-то пошло не так - фактически посылка добиралась из Китая почти полтора месяца (задуманный подарок себе на НГ не получилось вручить).<br />
<a href="https://ibb.co/4YTBZGX"><img alt="2020-02-18-Tracking-history-stamp" border="0" src="https://i.ibb.co/P9hBZnP/2020-02-18-Tracking-history-stamp.png" /></a><br />
Примечательно, что продавец как-будто этого не заметил. Срок "защиты" пришлось несколько раз продлевать, а в первый раз - после "нажима" в виде спора, т.к. продавец заявил, что он сделать этого не может (оказалось, может и не раз!). Извинения он принёс уже после завершения заказа (когда я возмутился из-за долгой доставки), и в качестве компенсации предложил выслать подарок попозже (в начале февраля), но мне интереснее было бы получить денежную компенсацию. Я подумывал начать спор (dispute) для частичного возврата (напр., $30), но в связи с китайским новым годом откладывал этот вопрос, а потом и "спорный срок" закончился. Надеюсь, невостребованная мной компенсация поможет бороться с коронавирусом :)</div>
<div style="text-align: left;">
Риторический вопрос - что помешало сразу подарок вложить при отправке? Коврик и проводная мышка не в счёт, т.к. их всем и так присылают :)</div>
<h3 style="text-align: left;">
Установка Windows 10</h3>
<div>
Ноутбук прибыл без операционной системы, как и ожидалось. Поддерживается только UEFI-загрузчик, так что шансов установить Windows 7 немного. Да и драйвера при этом подобрать будет проблематично. Как обстоят дела с другими операционками (напр., Linux-подобными) я не знаю - экспериментировать не стал, а сразу установил имевшуюся в наличии Windows 10 (November 2019 Update - Russian - 64-bit), скачанную ранее с официального сайта Microsoft.</div>
<div>
Под дистрибутив пришлось выделить отдельную USB-флешку, т.к. подход с Easy2Boot не заработал - система грузиться с такого накопителя отказывалась.<br />
<br /></div>
<div>
Для создания загрузочной флешки пригодился Rufus с такими настройками:</div>
<div>
<a href="https://ibb.co/j5ns7gp"><img alt="Rufus-3-8-Win10" border="0" src="https://i.ibb.co/W3mjSgT/Rufus-3-8-Win10.png" /></a></div>
В качестве файловой системы можно использовать и NTFS.<br />
Windows 10 может все драйверы обновить, взяв их с сайта Microsoft. Так может выглядеть перечень устройств после опознания всех неизвестных "куличей":<br />
<a href="https://ibb.co/LQV3H5M"><img alt="2020-01-15-Devices-updated" border="0" src="https://i.ibb.co/s58ZzHh/2020-01-15-Devices-updated.png" /></a><br />
На первый взгляд всё в порядке, так? Так, да не так. Обратите внимание на интегрированную карту, которая обозвана <i>Базовым видеоадаптером</i>. Это означает, что система использует стандартный (generic) драйвер, из-за которого - внезапно! - и дискретная не сможет "взлететь" (признаюсь, для меня это было сюрпризом, на выяснение которого ушло немало времени).<br />
<br />
В более-менее официальной группе VK данного изготовителя ноутбуков есть специальная тема для поиска драйверов, где <a href="https://vk.com/topic-186836840_40690970?post=515" rel="nofollow" target="_blank">я эту проблему описывал</a>. В подобных ситуациях там обычно предлагают подготовленный и, скорее всего, частично устаревший набор драйверов, который, естественно, может отличаться для разных моделей.<br />
<br />
В общем, для интегрированной видеокарты нужно будет вручную скачать и установить особый драйвер (напр., с сайта Intel), иначе графическая подсистема полноценно не заработает.<br />
Примерный перечень дополнительных драйверов для Windows 10 64-bit:<br />
<table border="1">
<thead>
<tr><th>Для чего?</th><th>Ссылка</th></tr>
</thead>
<tbody>
<tr><td>Встроенная видеокарта</td><td><a href="https://downloadcenter.intel.com/download/29274" rel="nofollow" target="_blank">Intel® Graphics - Windows® 10 DCH Drivers (Version: 26.20.100.7584)</a></td></tr>
<tr><td>Дискретная видеокарта</td><td><a href="https://www.geforce.com/drivers/results/156282" rel="nofollow" target="_blank">GeForce Game Ready Driver (Version 441.87 - WHQL)</a></td></tr>
<tr><td>WiFi-адаптер</td><td><a href="https://downloadcenter.intel.com/download/29258" rel="nofollow" target="_blank">Windows® 10 Wi-Fi Drivers for Intel® Wireless Adapters (Version: 21.60.2)</a></td></tr>
<tr><td></td><td></td></tr>
</tbody>
</table>
На указанных сайтах могут быть доступны более новые версии. Я устанавливал именно те версии, которые указаны в таблице, но, думаю, и другие версии подойдут.<br />
Если всё прошло успешно, то интегрированный видеоадаптер должен быть опознан как <b>Intel UHD Graphics 620</b>:<br />
<a href="https://imgbb.com/"><img alt="2020-01-17-Intel-UHD-Graphics-620-Properties-Driver" border="0" src="https://i.ibb.co/1vDTSfd/2020-01-17-Intel-UHD-Graphics-620-Properties-Driver.png" /></a><br />
Если вместо этого отображается что-то иное (напр., Microsoft Basic Display Adapter), то что-то с видео-драйверами не срослось. Попробуйте перезапустить компьютер и попытаться ещё раз.<br />
<br />
Добавлю, что установленная Windows 10 не стала жаловаться на активацию, на основании чего можно сделать вывод, что "таблетка", скорее всего, вшита в BIOS/UEFI. Соответственно, возникает резонный вопрос - чем реально отличается конфигурация с пред-установленной Windows 10, т.к. стоит она дороже? Надо полагать, эта разница идёт на оплату "китайских инженеров" по установке операционной системы :)<br />
<h3 style="text-align: left;">
Аппаратные подробности</h3>
<h4 style="text-align: left;">
CPU-Z</h4>
<div>
<a href="https://imgbb.com/"><img alt="CPU-Z-1-CPU" border="0" src="https://i.ibb.co/f8SqrBT/CPU-Z-1-CPU.png" /></a></div>
<div>
<a href="https://imgbb.com/"><img alt="CPU-Z-2-Caches" border="0" src="https://i.ibb.co/RzKhw7D/CPU-Z-2-Caches.png" /></a></div>
<div>
<a href="https://imgbb.com/"><img alt="CPU-Z-3-Mainboard" border="0" src="https://i.ibb.co/NW545fT/CPU-Z-3-Mainboard.png" /></a></div>
<div>
<a href="https://imgbb.com/"><img alt="CPU-Z-5-SPD-Slot-1" border="0" src="https://i.ibb.co/FwgVk1c/CPU-Z-5-SPD-Slot-1.png" /></a><br />
Как видно, вся комплектная память память установлена в один слот, и это меня, признаться, обрадовало, т.к. в отзывах попадался комментарий, что оба слота заняты модулями по 4ГБ.<br />
В моей конфигурации возможно будет добавить аналогичный модуль во второй слот - напр., <a href="http://ali.pub/4hn231" rel="nofollow" target="_blank">такой</a>.</div>
<h4 style="text-align: left;">
GPU-Z</h4>
<div>
<a href="https://imgbb.com/"><img alt="GPU-Z-MX150-stamp" border="0" src="https://i.ibb.co/YbyvBYZ/GPU-Z-MX150-stamp.png" /></a><br />
Среди этого обилия параметров особый интерес представляет <code>Device ID</code> - судя по присутствию <code>1D10</code>, в моём ноутбуке установлена видеокарта на 25W.<br />
См. тж. <a href="https://www.windowscentral.com/nvidia-mx150" rel="nofollow" target="_blank">NVIDIA GeForce MX150 graphics card: Everything you need to know</a>:<br />
<blockquote>
To save room, some slim Ultrabooks are receiving the 10W chip that has "1D12" in the device ID. This chip has, in some cases, up to 25 percent less performance than the standard 25W chip, which has "1D10" in the device ID.</blockquote>
</div>
<h3 style="text-align: left;">
Benchmarks</h3>
<div>
Для оценки CPU я запустил только один тест:</div>
<div>
<a href="https://ibb.co/7rD3NMG"><img alt="2020-01-16-CINEBENCH-stamp" border="0" src="https://i.ibb.co/1RNCJy9/2020-01-16-CINEBENCH-stamp.png" /></a><br />
<br />
С тестированием GPU я повозился более основательно, но лишь для того, чтобы убедиться, что дискретная видеокарта таки работает, как требуется.</div>
<a href="https://ibb.co/TWCdqp1"><img alt="2020-01-17-3-DMark11-stamp" border="0" src="https://i.ibb.co/TWCdqp1/2020-01-17-3-DMark11-stamp.png" /></a><br />
<a href="https://ibb.co/VL5xnXG"><img alt="2020-01-17-Unigine-Superposition-720p-Low-stamp" border="0" src="https://i.ibb.co/VL5xnXG/2020-01-17-Unigine-Superposition-720p-Low-stamp.png" /></a>
<a href="https://ibb.co/X2f42Rw"><img alt="2020-01-17-Unigine-Superposition-1080p-Medium-stamp" border="0" src="https://i.ibb.co/X2f42Rw/2020-01-17-Unigine-Superposition-1080p-Medium-stamp.png" /></a>
<br />
<a href="https://ibb.co/WxrWPTn"><img alt="2020-01-18-3-DMark-Night-Raid-stamp" border="0" src="https://i.ibb.co/WxrWPTn/2020-01-18-3-DMark-Night-Raid-stamp.png" /></a> <a href="https://ibb.co/9yDn0Nz"><img alt="2020-01-18-3-DMark-Sky-Diver-stamp" border="0" src="https://i.ibb.co/9yDn0Nz/2020-01-18-3-DMark-Sky-Diver-stamp.png" /></a> <a href="https://ibb.co/jJthrC9"><img alt="2020-01-18-3-DMark-Time-Spy-stamp" border="0" src="https://i.ibb.co/jJthrC9/2020-01-18-3-DMark-Time-Spy-stamp.png" /></a><br />
Если верить старичку 3DMark11, производительность данного агрегата находится на уровне игрового ноутбука 5-летней давности :)<br />
<h3 style="text-align: left;">
Что под капотом?</h3>
Продолжение следует...</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-4026690389180538032019-12-22T18:20:00.001+03:002020-05-05T18:04:50.530+03:00Как я восстановил доступ над украденным аккаунтом Steam<div dir="ltr" style="text-align: left;" trbidi="on">
Пару лет назад я активно использовал Steam, и даже регистрировал профиль для жены, чтоб можно было играть в игры одновременно (семейный режим и всё такое).<br />
До одновременных игр руки не дошли, и с тех пор даже Steam на свой компьютер я перестал устанавливать, т.к. на SSD места мало.<br />
И вот сегодня зашёл в свой профиль, и случайно заметил, что профиля жены в друзьях уже нет, и на её страничке показан вообще какой-то другой никнейм.<br />
Попытка залогинится в её профиль оказалась безуспешной при том, что пароль хранился в сухом прохладном месте.<br />
Я сделал вывод, что аккаунт украли, и отправил запрос в Steam на восстановление доступа.<br />
Далее буду рассказывать, как идёт процесс.<br />
<br />
<a name='more'></a>Примечательно, что в аккаунте жены не было никаких ништяков: все покупки были переданы в дар моему аккаунту. Возможно, там были какие-то карточки, но я в этом не уверен - по воспоминаниям пару лет назад там было абсолютно пусто.<br />
Steam Guard Authenticator не был включен и номер телефона указан не был, что, несомненно, облегчило мошенникам задачу.<br />
Примечательно, что Steam исправно присылал рекламные письма вплоть до 20.08.2019 - после этого как обрезало. Даже никакого уведомления не пришло, что, мол, почта сменилась. Определённо, воришка использовал какую-то дыру в защите. Не уверен, залатали ли эту брешь.<br />
<br />
В тот же день служба поддержки ответила на мой запрос, попросив прислать подробности покупок игр (надо полагать, аккаунты без приобретений игр восстанавливать будет сложнее). Выяснить это оказалось несложно, т.к. покупок было немного и все они были записаны в системе финансового учёта, а также сохранились письма Steam о покупках. Всего этого оказалось достаточно, чтобы собрать нужную информацию и отправить её в службу поддержки.<br />
<br />
Дня через три служба поддержки сбросила пароль и я получил доступ. После этого я всё-таки указал номер телефона и привязал Steam Guard Authenticator во избежание аналогичных проблем в будущем.</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-56590952659193483132018-04-28T00:15:00.001+03:002021-07-19T14:01:24.989+03:00Как я устанавливал Windows 7 32-bit на ноутбук Acer Extensa 2519<div dir="ltr" style="text-align: left;" trbidi="on">
Попался мне недавно в руки бюджетный ноутбук Acer Extensa 2519, на котором медленно пыхтела Windows 10 64-bit (2GB памяти, штатный HDD + ворох тормозилок в виде антивируса, торрент- клиента и кастомизированных браузеров "от отечественного производителя"). Система работала ужасающе медленно (полагаю, накипело) и логичным образом возник вопрос - как бы это всё ускорить без каких-либо капиталовложений?<br />
Память в такие ноутбуки добавляется только заменой планки, так как предусмотрен только один слот. Зато можно в пустующий отсек от DVD-привода установить дополнительный SSD, но это всё выльется в кругленькую сумму. При этом замена комплектующих в подобных ноутбуках достаточно трудоёмка и требует усидчивости (в народе дизайн корпуса метко назвали "корытом" из-за того, что доступ ко всей начинке осуществляется <strike>через одно место</strike> со стороны клавиатуры).<br />
Интуитивно мне было ясно, что Windows 10 (даже в 32-битном варианте) для такого железа - не самый оптимальный вариант. Было решено попробовать установить Windows 7 32-bit. Данная заметка - мини-отчёт о проделанной работе + напоминание себе на будущее...<br />
<br />
<a name='more'></a><h2 style="text-align: left;">
Готовим дистрибутив Windows 7 для Acer Extensa 2519</h2>
Первым делом я попытался взлететь на проверенном дистрибутиве Windows 7. Но, как и <a href="https://it-knowledge-base.blogspot.com/2017/05/initial-tuning-of-windows-10.html" target="_blank">в предыдущий раз</a>, у меня ничего не получилось - хотя в данном ноутбуке и есть порты USB 2.0, их контроллер, по всей видимости, построен на современных "нано-технологиях" и не по зубам архаичным системам.<br />
В очередной раз обозрев необозримые просторы интернетов, я наткнулся на дельный совет - <strike>размер</strike> дистрибутив имеет значение! Вскоре мне попалась ссылка на годный вариант - <a href="http://ovgorskiy.ru/x86_x64_orig.html" rel="nofollow" target="_blank">Windows 7 SP1 x86/x64 Ru 9 in 1 Upd 04.2018 1DVD</a> (дистрибутив Windows 7 с вшитыми обновлениями и прочими плюшками).<br />
Ожидая, пока заветная ISO-шка окажется в моих цепких лапах, я потихоньку раскапывал решение проблемы с отсутствующими драйверами для USB 3.0 в своём тёплом ламповом дистрибутиве. В общем-то, оно прямолинейное - необходимо нужные драйвера добавить в дистрибутив. Нашлась даже более-менее внятная инструкция - <a href="http://codeabitwiser.com/2014/03/how-to-install-windows-7-with-only-usb-3-0-ports/" rel="nofollow" target="_blank">How to Install Windows 7 with only USB 3.0 Ports</a> (на английском).<br />
Опробовав методику с первыми попавшимися драйверами для чипсета Intel (<a href="https://downloadcenter.intel.com/download/21129" rel="nofollow" target="_blank">USB 3.0 Driver: Intel® USB 3.0 eXtensible Host Controller Driver for Intel® 7 Series/C216 Chipset Family</a>), я с огорчением убедился, что не всё так однозначно. К счастью, в комментариях другие <strike>страдальцы</strike> энтузиасты поделились подсказкой, что имеет смысл дать шанс свежим драйверам для другого поколения чипсетов Intel (<a href="https://downloadcenter.intel.com/download/22824/USB-3-0-Driver-Intel-USB-3-0-eXtensible-Host-Controller-Driver-for-Intel-8-9-100-Series-and-Intel-C220-C610-Chipset-Family" rel="nofollow" target="_blank">Intel® USB 3.0 eXtensible Host Controller Driver for Intel® 8/9/100 Series and Intel® C220/C610 Chipset Family</a>), и это сработало волшебно :)<br />
В первый раз процедуру я выполнял вручную, и для составного дистрибутива это занятие навевает уныние, поэтому для обработки <code>install.wim</code> я наваял короткий сприпт для Windows:<br />
<pre>for /L %%I in (1, 1, 9) do (
dism /mount-wim /wimfile:install.wim /index:%%I /mountdir:mount
dism /image:mount /add-driver:"Drivers" /recurse
dism /unmount-wim /mountdir:mount /commit
)</pre>
<div>
Файл <code>boot.wim</code> можно обрабатывать вручную - там всего лишь три команды.<br />
Напомню также две другие полезные команд:<br />
<ul style="text-align: left;">
<li><code>dism /Get-WimInfo /WimFile:install.wim</code> - получить список образов</li>
<li><code>dism /cleanup-wim</code> - чистка на тот случай, если что-то пошло не так</li>
</ul>
<div>
Сборку загрузочного ISO-файла я осуществлял с помощью <a href="http://www.softpedia.com/get/PORTABLE-SOFTWARE/CD-DVD-Tools/Windows-Portable-Applications-Portable-ImgBurn.shtml" rel="nofollow" target="_blank">портабельной версии ImgBurn 2.5.8.0</a> (в ней VirusTotal ничего не нашёл, в отличие от дистрибутива с официального сайта).</div>
<div>
<br /></div>
<div>
Впрочем если вы решили остановить свой выбор на мега-современном дистрибутиве от OVGorskiy, морочиться с dism и ImgBurn не обязательно. Однако в моём случае (при установке Windows Home Premium x86 и Macrium Reflect 4.2.3141) в ту же ночь вылезла проблема - BSoD с <code>pssnap.sys</code> (формально загрузка подвисала на <code>classpnp.sys</code>, но на "синем экране" виновник был виден однозначно - <code>PAGE_FAULT_IN_NONPAGED_AREA in pssnap.sys</code>).<br />
Оказалась, это - известная свежая <a href="https://knowledgebase.macrium.com/display/KNOW7/Windows+7+32+bit+BSOD+after+MS+Windows+Update" rel="nofollow" target="_blank">проблема c Macrium Reflect до версии 7.1, проявляющаяся только на 32-битной версии Windows 7</a>. Для её решения производитель утилиты даже выпустил "заплатку" в виде EXE-файла, который надо запустить из среды WinPE. Фишка в том, что файл 32-битный и, соответственно, среда WinPE тоже должна быть той же разрядности или в 64-битной должен присутствовать нужный довесок... в общем, морока ещё та для тех, кто не в теме.<br />
На этом, можно сказать, и закончилось моё знакомство с альтернативными дистрибутивами Windows, я допилил свой до нужной кондиции и благополучно установил то, что мне требовалось.<br />
<br />
<h2 style="text-align: left;">
Шарада с драйверами для Windows 7 x86</h2>
Из "коробки" установленная система получилась вполне работоспособной - даже на мониторе можно было установить приемлемое разрешение 1366 x 768. Однако в диспетчере устройств было полно неопознанных компонентов, отсутствовали сетевые возможности и не работал кард-ридер.<br />
Кстати, в процессе своих экспериментов на предыдущем шаге я запускал LiveCD c Ubuntu 16.04 (2017 года), и эта система без всяких ухищрений увидела все WiFi-сети - до чего дошёл прогресс!<br />
Но вернёмся к драйверам. На <a href="https://www.acer.com/ac/en/US/content/support-product/6184?b=1" rel="nofollow" target="_blank">официальном сайте ACER</a> все они есть, но только для Windows 8.1 64-bit и Windows 10 64-bit.<br />
К счастью, некоторые из них подходят и для Windows 7 32-bit (вернее, их установщики имеют драйвера и для нужной мне системы).<br />
Перечислю то, что заработало:<br />
<ul style="text-align: left;">
<li><code>CardReader_Realtek_6.3.9600.39063_W81x64_A</code></li>
<li><code>Chipset_Intel_10.0.26_W81x64_A</code></li>
<li><code>TXE_Intel_2.0.0.1036_W81x64_A</code> (Trusted Execution Engine)</li>
<li><code>Wireless LAN_Atheros_10.0.0.309_W81x64_A</code> (2-в-1 - для WiFi и Bluetooth)</li>
</ul>
</div>
</div>
<div>
Остальное с официального сайта можете не качать.</div>
<div>
Драйвер для сетевой карты Realtek Ethernet удалось найти на постороннем сайте не сразу - см. <a href="https://realtek-drivers.ru/realtek-pcie-gbe-family-controller/" rel="nofollow" target="_blank">Realtek PCIe GBE Family Controller LAN Driver 7115_02262018 для Windows 7</a> (признаться, после установки я не проверял, реально ли кабельное сетевое соединение работает, т.к. пользуюсь только WiFi).</div>
<div>
Ещё парочку неопознанных устройств удалось победить с помощью <a href="http://acerfans.ru/forum/topic_10892/7" rel="nofollow" target="_blank">кучки драйверов от энтузиастов с форума acerfans.ru</a> (в архиве <code>Aser_2519_diver_Windows7_x64.7z</code> есть новые версии вместо официальных драйверов, а также раритетный <code>Intel(R)_Pentium(R)_and_Celeron(R)_Processor_N3000_Family_Win7_IO_Drivers_Beta.zip</code>).<br />
На данный момент не удалось найти видеодрайвер (на уже упомянутом форуме сайта acerfans.ru попадался лишь вариант для Windows 7 64-bit), из-за чего производительность видеокарты выглядит печально (Generic OpenGL 1.1.0 и всё такое).<br />
И в списке устройств есть ещё 3 неопознанных кадра:<br />
<img alt="Acer_Extensa_2519_Device_Manager_final" border="0" src="https://image.ibb.co/nBrsZH/Acer_Extensa_2519_Device_Manager_final.png" /><br />
В остальном всё работает, как ожидается, что и требовалось доказать :)</div>
</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-17539841038078409332018-03-01T02:26:00.000+03:002018-03-01T13:01:42.208+03:00Переезд на платный хостинг<div dir="ltr" style="text-align: left;" trbidi="on">
Почти 4 (четыре) года назад (а если быть точным, то 22.03.2014) я впервые начал создавать некие пробные подобия собственных сайтов, раздобыв бесплатный хостинг на hostinger.com.ua. Год спустя я обзавёлся и первым собственным доменом myfinances.biz, на котором и был запущен сайт с <a href="https://ask.myfinances.biz/" target="_blank">вопросами на финансовую тематику</a> (в те времена я был активным соучастником этой предметной области). С тех пор неуклонно профессиональная деятельность плавно расширялась в сторону Интернета, и в своё время (начиная с лета 2017 года) мне очень пригодился бесплатный хостинг от 000webhost.com, который несмотря на все его выкрутасы, я рекомендую для экспериментов. Примечательно, что сайт на hostinger.com.ua дожил в бесплатном режиме до наших дней (припоминаю, однажды нужно было пройти какую-то однократную верификацию с помощью платной SMS), но, естественно, бесконечно долго такой разгул безвозмедности продолжаться не может, тем более, что от доступных возможностей там остались только воспоминания, хотя FTP-доступ по-прежнему работает. В общем, не дожидаясь объявления, я решил перебраться на платный хостинг от <a href="https://uahosting.com.ua/billing/pl.php?7521">uahosting.com.ua</a>, где минимальная конфигурация стоит всего 162 грн./год.<br />
Посмотрим, к чему это приведёт...<br />
(<i>продолжение следует</i>)</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-51926821029556141662018-02-07T03:03:00.001+03:002018-02-07T03:14:19.949+03:00Web 3.0<div dir="ltr" style="text-align: left;" trbidi="on">
Моё знакомство с Интернет началось, если брать за основу распространённую классификацию, на закате эпохи "Web 1.0" (на пост-советском пространстве тогда был рубеж тысячелетий), когда сайты перестали быть статичными. Ещё помню, что для соединения использовались проводные модемы, использующие телефонную линию и издающие при этом характерные звуки (такие устройства в осовремененном виде, думаю, ещё кое-где применяются). Постоянный доступ в Интернет тогда был дорог и медлителен, но продвинутым айтишникам были доступны своеобразные шлюзы, позволяющие запросом по электронной почте получить любую страничку. Составление запросов и ожидание результатов составляло эдакий квест, интеллектуальную увлекательность которого сейчас редко, где можно встретить :)<br />
Как бы то ни было, сейчас у нас эпоха "Веб 2.0", которую хоронить пока что рано, однако футурологов интересует вопрос "А что же будет дальше?". Об этом и пойдёт речь...<br />
<br />
<a name='more'></a>Сегодня мне попалось "<a href="https://ain.ua/2018/02/04/web-3-0-begining" rel="nofollow" target="_blank">Мнение: почему нам нужен Web 3.0 и каким он будет</a>" (<a href="https://medium.com/@matteozago/why-the-web-3-0-matters-and-you-should-know-about-it-a5851d63c949" rel="nofollow" target="_blank">source in English</a>), после двукратного чтения которого я наконец-то осознал, какой пункт может являться революционным переходом для Интернета - решение о том, кто будет контролировать хранение информации.<br />
Наглядно это можно представить в табличном виде:<br />
<br />
<table border="1">
<thead>
<tr>
<th>Версия</th>
<th>Хранение информации</th>
<th>Создание информации</th>
</tr>
</thead>
<tbody>
<tr align="center">
<td>Web 1.0</td>
<td>Владелец сайта</td>
<td>Владелец сайта</td>
</tr>
<tr align="center">
<td>Web 2.0</td>
<td>Владелец сайта</td>
<td>Посетители сайта</td>
</tr>
<tr align="center">
<td>Web 3.0</td>
<td>Посетители сайта</td>
<td>Посетители сайта</td>
</tr>
</tbody>
</table>
<br />
<div>
Хотя в табличке это выглядит естественно, мне, признаться, не очевидно, в какой форме будет осуществляться взаимодействие в таком Интернете. В упомянутой выше статье автор приводит альтернативы для существующих сервисов, которые будут лежать в основе следующей версии Сети (распределённое хранение данных, blockchain-технологии и т.п.), но это не особо проясняет картину - чего-то всё равно не хватает...</div>
<div>
(далi буде)</div>
</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-2100493161149894332018-02-02T13:22:00.004+03:002023-04-21T19:17:12.065+03:00Shitty software list<div dir="ltr" style="text-align: left;" trbidi="on">
В системном разделе моего SSD, который сам размером 256 ГБ, осталось чуть более полутора гигабайт свободного места, и каждый раз, когда модный софт устанавливается в каталог с профилем пользователя (напр., в <code>C:\Users\XXX\AppData\Local</code>), не предлагая при этом каких-либо вариантов и даже не спрашивая разрешения, я посылаю лучи повидла в сторону разработчиков.<br />
Ладно, если это какая-то мелкая поделка на 50 МБ, но если каждый нанософт отжирает под каждую свою версию по 200-300 МБ и автоматически при этом обновляется, опять же в отдельную папочку с новой копией, то это реальное КГ/АМ... До чего дошёл прогресс!<br />
<br />
<a name='more'></a>В данной заметке я буду коллекционировать зоопарк такого программного обеспечения, которое сделано через одно место, дабы в дальнейшем с ним сверяться и не тратить своё время. Возможно, список будет ещё кому-либо полезен...<br />
<table border="1">
<thead>
<tr><th width="70">Назв.</th>
<th width="50">Верс.</th>
<th width="50">Разм.</th>
<th width="60">Автообновление</th>
<th width="80">Дата проверки</th>
<th>Примечания, альтернативы</th>
</tr>
</thead>
<tbody>
<tr align="center">
<td>Discord</td>
<td>0.0.306</td>
<td><span style="text-align: left;">~200 МБ</span></td>
<td><span style="text-align: left;">???</span></td>
<td>05.05.2020</td>
<td align="left"><br /></td>
</tr>
<tr align="center">
<td>Postman</td>
<td>5.5.2</td>
<td><span style="text-align: left;">200+ МБ</span></td>
<td><span style="text-align: left;">Да, в отдельную папку</span></td>
<td>xx.01.2018</td>
<td align="left">Проблема известна разработчикам (см. <a href="https://github.com/postmanlabs/postman-app-support/issues/3019" rel="nofollow" target="_blank">#3019</a>) уже более полугода, а, может, и более.<br />
Когда-то приложение было в виде расширения для браузера, которое, естественно, устанавливалось для каждого пользователя отдельно - возможно, корни растут оттуда.</td>
</tr>
<tr align="center">
<td><a href="https://en.wikipedia.org/wiki/Microsoft_Teams" rel="nofollow" target="_blank">Teams</a></td>
<td>1.6.00.6754</td>
<td><span style="text-align: left;">450+ МБ</span></td>
<td>???</td>
<td>21.04.2023</td>
<td align="left">Есть <a href="https://learn.microsoft.com/en-us/microsoftteams/msi-deployment" rel="nofollow" target="_blank">MSI-инсталлятор</a> для установки для всех пользователей</td>
</tr>
<tr align="center">
<td><a href="https://en.wikipedia.org/wiki/Signal_(software)" target="_blank">Signal</a></td>
<td>1.19.0</td>
<td><span style="text-align: left;">240+ МБ</span></td>
<td>???</td>
<td>15.01.2019</td>
<td align="left">Содержимое можно перенести в отдельную папку (с доступом "только для чтения" для обычных пользователей) - приложение запускается, но полную функциональность я не проверял, т.к. desktop-версия поддерживает только текстовые сообщения.</td>
</tr>
<tr align="center">
<td>Viber</td>
<td>9.9.0.8</td>
<td><span style="text-align: left;">200+ МБ</span></td>
<td>???</td>
<td>03.12.2018</td>
<td align="left">Альтернатив для ПК нет</td>
</tr>
<tr align="center">
<td>WhatsApp</td>
<td>0.2.8082?</td>
<td><span style="text-align: left;">300+ МБ</span></td>
<td>???</td>
<td>02.02.2018</td>
<td align="left">Можно использовать <a href="https://web.whatsapp.com/" rel="nofollow" target="_blank">WhatsApp Web</a>, которого вполне достаточно для переписки.</td>
</tr>
<tr align="center">
<td><a href="https://en.wikipedia.org/wiki/Wire_(software)" target="_blank">Wire</a></td>
<td>3.5.2899?</td>
<td><span style="text-align: left;">200+ МБ</span></td>
<td>???</td>
<td>15.01.2019</td>
<td align="left"><br /></td>
</tr>
</tbody>
</table>
Как правило, подобные инсталляторы сделаны с помощью Squirrel, что видно по наличию <code>SquirrelSetup.log</code>. Этот чудо-фреймворк гордится, тем, что он "<i>Wizard-Free™, with no UAC dialogs, does not require reboot</i>". Тот ещё диагноз :)<br />
В таблицу не попал OneDrive, который хотя и устанавливается по-умолчанию в каталог пользователя, но его инсталлятор понимает ключ <code>/allusers</code>, при наличии которого установка осуществляется в <code>Program Files</code>.</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-91591760799341247002017-12-24T17:23:00.002+03:002018-02-07T03:14:39.202+03:00Компьютер без головы<div dir="ltr" style="text-align: left;" trbidi="on">
Возникла недавно задачка проверить работоспособность неттопов, которые выставлены на продажу (если интересно, см. объявления на OLX: <span style="background-color: white; color: #2b2b2b; font-family: "lato" , sans-serif; font-size: 12px; font-weight: bold;"><a href="https://www.olx.ua/obyavlenie/nettop-zotac-zbox-ad02-e-IDvSAZV.html" rel="nofollow" target="_blank">Zotac ZBOX AD02-E</a></span>, <span style="background-color: white; color: #2b2b2b; font-family: "lato" , sans-serif; font-size: 12px; font-weight: bold;"><a href="https://www.olx.ua/obyavlenie/nettop-zotac-zbox-bi320-e-IDiPvbA.html" rel="nofollow" target="_blank">Zotac ZBOX-BI320-E</a> </span>и на LeterBe: <a href="https://leterbe.com/nettop_zotac_zbox_ad02-e_567288" rel="nofollow" target="_blank">Zotac ZBOX AD02-E</a>). Задача осложнялась тем, что под рукой не было ни монитора (был продан ранее), ни клавиатуры (была списана как негодная для дальнейшего использования). Сначала я рассматривал вариант купить под это дело монитор, однако новые стоили более $70 (2000 грн.), а с б/у-шными связываться не хотелось. Взять у кого-либо монитор напрокат тоже не было возможности. Какие ещё варианты можно придумать? Вскоре мою голову таки посетила оригинальная мысль - ведь компьютеру для работы монитор вовсе не обязателен, а с пользователем он может взаимодействовать по сети. Осталось дело за малым - какую ОС запустить на устройстве без монитора? Об этом и пойдёт речь в данной заметке...<br />
<br />
<a name='more'></a><h3 style="text-align: left;">
Ubuntu - не панацея</h3>
Первым делом я, естественно, стал смотреть в сторону Unux-подобных система, в частности, на Ubuntu, с которой я изредка пересекался и ранее. Однако традиционно в режиме Live CD отключен сетевой сервис ssh и не задан пользователь для удалённого входа. Это всё решается парой команд, но в установленной системе и с контролем через монитор (впрочем некоторые умельцы могут это провернуть слепым методом, но я не из их числа).<br />
Альтернативный способ - установить Ubuntu на каком-либо компьютере на внешний диск, настроить всё, и потом подключить диск к неттопу "без головы". Якобы в этом случае операционка все отличия в оборудовании корректно обработает при загрузке на новом месте... Из доступных девайсов у меня были под рукой нетбук Lenovo IdeaPad S210T и планшет Jumper EZpad 4s, первый из которых вполне мог бы помочь с установкой Ubuntu, но этот вариант я отложил как слишком извилистый.<br />
См. тж. <a href="http://ru-linux.livejournal.com/2646533.html" rel="nofollow" target="_blank">Установка Ubuntu без монитора</a>.<br />
<h3 style="text-align: left;">
Windows не при делах...</h3>
<div>
Справедливости ради я поискал в Интернете подходы с использованием Windows, но, признаться, чего-либо внятного и работоспособного разыскать не удалось. Теоретически может сработать альтернативный вариант из предыдущего пункта (установить на одном компьютере и запустить потом на другом), но интуиция мне подсказывает, что переезд установленной системы с Intel на AMD гладко не пройдёт. Экспериментировать я не стал...</div>
<h3 style="text-align: left;">
Plop Linux наше всё!</h3>
<div>
В конце концов мне попался <a href="https://unix.stackexchange.com/a/319192" target="_blank">комментарий на StackExchange о Plop Linux</a>, в которой сервис ssh стартует "из коробки" и есть пользователь с паролем по-умолчанию. Первым делом я <a href="https://www.plop.at/en/ploplinux/live/download.html" target="_blank">скачал малый образ</a> (размером менее 300 МБ), который благополучно запустился на нетбуке. Убедившись в работоспособности подхода, я подсоединил неттоп Zotac ZBOX BI320-E к Ethernet-порту роутера (<a href="https://www.plop.at/en/ploplinux/live/wlan.html" target="_blank">настроить WiFi тоже можно</a>, но я заморачиваться с этим не стал) и вставил в USB загрузочный образ (я ZALMAN ZM-VE200SE в режиме эмуляции CD-привода - реально полезная штука), и по характерному миганию светодиода на внешнем диске понял, что процесс пошёл...</div>
<div>
Далее дело технически несложное:</div>
<div>
<ul style="text-align: left;">
<li>с помощью <a href="https://filehippo.com/download_advanced_ip_scanner/" target="_blank">Advanced IP Scanner</a> вычисляем IP-адрес загрузившегося неттопа;</li>
<li>с помощью <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html" target="_blank">PuTTY</a> заходим в систему, используя имя пользователя <b>root</b> и пароль <b>ploplinux</b>.</li>
</ul>
<div>
Вот и всё!</div>
</div>
<div>
Насколько я понял, Plop Linux допускает гибкую настройку запускаемой операционной системы (можно даже <a href="https://www.plop.at/en/ploplinux/live/office.html" target="_blank">LibreOffice добавить</a>), что открывает широкие возможности для практического применения.</div>
<div>
Обратите внимание, что в получившейся конфигурации отсутствует не только монитор, но и накопитель (жесткий диск или SSD). Последний пункт, при необходимости, можно скомпенсировать флешкой или SD-картой, а все данные хранить в локальной или глобальной сети.</div>
</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-59993697265079658382017-06-06T02:30:00.001+03:002017-06-06T03:00:59.056+03:00Покупаем и тестируем карты памяти microSD с AliExpress<p>Одним из типичных товаров, заказываемых мной на AliExpress, являются карты памяти (обычно формата microSD). В местных магазинах наценка на них может достигать 50%, и если всё делается в Китае, то зачем платить больше? Однако гонка за дешевизной не всегда приносит ожидаемый результат, зато приобретается опыт, который по-своему весьма полезен. Им я и собираюсь поделиться в этой заметке…</p> <a name='more'></a> <h2>Карты бывают разные…</h2> <p>Формат microSD в моих заказах оказался наиболее популярен, т.к. эти крохотные карты подходят ко многим устройствам (смартфоны, планшеты, видеорегистраторы и т.п.), а при наличии соответствующего адаптера карту можно использовать и там, где требуется формат SD (фотоаппараты, ноутбуки и т.п.).</p> <p>Интересует меня “10-й класс” (Class 10) и всё, что быстрее. Размер 32 ГБ мне кажется оптимальным по соотношению цена/удобство, хотя под акции я изредка покупал и карты меньшего (16 ГБ) или большего (64 ГБ) размера.</p> <h2>Правила покупки карт памяти</h2> <p>Чтобы ваши денежки были потрачены на годную вещь (это, кстати, касается не только карт памяти), при покупке на AliExpress необходимо следовать 3-м правилам (с некоторыми поправками это может быть применимо и к другим магазинам):</p> <ol> <li>Внимательное чтение отзывов как о товаре, так и о продавце/магазине.</li> <li>Не спешите нажимать кнопку для подтверждения заказа сразу же после получения товара.</li> <li>После получения товара его необходимо тщательно проверить (об обнаруженных дефектах можно потом писать продавцу, запускать споры по возврату средств и т.п.).</li></ol> <p>Могу сознаться, что правило №3 я частенько нарушал ещё в те времена, когда <strike>компьютеры были большими</strike> не закупался на AliExpress, и в случае с картами памяти это потенциально может привести к утере важных данных (несколько лет назад повредились фотографии на карте Kingston, которая была приобретена в обычном местном Интернет-магазине, хотя сейчас я не уверен, насколько своевременное тестирование могло предотвратить эту оказию – может, карта просто “состарилась”?).</p> <p>Если вы нарушили правила №2 и №3, то на площадке AliExpress вы будет ограничены в выборе методов для отстаивания своих прав при возникновении проблем с товаром (а после истечения сроков вообще можете забыть о какой-либо компенсации, хотя это зависит от порядочности продавца).</p> <h2>Дефектные карты памяти</h2> <p>Наиболее распространённой проблемой, проявляющейся с картами памяти из Поднебесной, является несоответствие размера (объёма), обычно в меньшую сторону. Т.е. заказали вы, например, карту на 32GB, а вам присылают карту на 8GB, причём на самой карте красуется надпись 32GB. Вы, кстати, это несоответствие ни на глазок, ни на зубок не заметите, и проявляться оно будет в виде ошибок при чтении с карты, возникающих случайным образом в самый неподходящий момент (обычно ближе к моменту заполнения карты до краёв нужными фоточками).</p> <p>Как такое возможно? Не вдаваясь в технические дебри, это можно представить следующим образом: карта состоит из двух электронных частей – контроллера, который управляет операциями чтения и записи, и собственно ячеек памяти. Для унификации технологических процессов контроллер в модельном ряде производителя может быть один и тот же, а вот кол-во ячеек памяти может варьироваться (последний параметр и формирует цену продукта). Для функционирования карты в этот контроллер зашивают микропрограмму, в которой указывают в том числе диапазон адресуемых ячеек. Логично? А теперь, внимание – вопрос: что мешает нам подрихтовать контроллер так, чтобы он выдавал себя за 32-гигабайтный, хотя у него под боком всего 8ГБ ячеек памяти. Да, только <strike>совесть </strike>этика и неиллюзорный риск получить <strike>в табло</strike> жалобы от потребителей.</p> <p>Учитывая трансграничный характер розничной торговли на AliExpress, жалобы от потребителей в лучшем случае влияют на рейтинг продавца, что при массовости недовольных должно приводить к его блокировке администрацией, т.к. последняя заинтересована в довольных покупателях, которые покупают ещё и ещё. Таким образом при получении дефектного товара естественное желаение покупателя – вернуть деньги – органичным образом вписывается в систему споров на AliExpress, что и формирует петлю отрицательной обратной связи, регулирующей торговую деятельность на этой площадке.</p> <p>И мы переходим к следующему пункту…</p> <h2>Как протестировать карту памяти?</h2> <p>До недавнего времени я считал, что если карта памяти прибыла без розничной упаковки (т.е. просто карта в эдаком полупрозрачном пластиковом держателе), то очень высок шанс, что она окажется дефектной. Мой ленивый разум из этой гипотезы делал псевдо-логичный вывод, что, мол, карты в розничной упаковке более качественные. Не отрицая ведущей роли упаковки в создании первого впечатления, скажу, что в случае с картами, прибывающими из AliExpress, у вас должно быть единое правило: <strong>все карты необходимо тестировать</strong>.</p> <p>Неофициальным стандартом, который годится для AliExpress и который указан на многих страничках, является программа H2testw. Я использую версию 1.4, которая была создана в далёком 2008 году (почти 10 лет назад!), она бесплатна, не требует установки. Но работает только в среде Windows. Если у вас другая операционная система, то ориентируйтесь на функционал: программа должна записать данные на карту под завязку, и потом эти данные проверить при считывании. Фактически необходимо убедиться, что мы читаем с карты памяти именно то, что записали. Таким образом можно гарантированно выявить наиболее распространённый дефект - завышение объёма карты памяти (фиктивный объём памяти). В случае такого дефекта мы будем считывать мусор (или нули), и спец.программа должна это выявить.</p> <p>Процедура тестирования выглядит следующим образом:</p> <ol> <li>Вставить карту памяти в ПК (если система предложит её отформатировать, можно согласиться – любая файловая система подойдёт).</li> <li>Освободить место на карте памяти (можно всё удалить, если там что-то было, или отформатировать, если вы не сделали этого на предыдущем шаге).</li> <li>Записать на карту специально подготовленные данные, заполнив <em>всё</em> свободное место.</li> <li>Прочитать записанные данные и проверить их соответствие оригиналу.</li></ol> <p>Если используется спец.программа для тестирования, то она помимо верификации данных, может по ходу пьесы измерять скорость чтения и записи, на основании чего можно будет сделать о соответствии этих параметров заявленному “классу” карты (см. <a href="https://ru.wikipedia.org/wiki/Secure_Digital#.D0.A1.D0.BA.D0.BE.D1.80.D0.BE.D1.81.D1.82.D0.BD.D0.BE.D0.B9_.D0.BA.D0.BB.D0.B0.D1.81.D1.81" rel="nofollow" target="_blank">Скоростной класс</a>). Учтите, что на скорострельность карты влияет адаптер и все те “посредники” (напр., кард-ридер, USB-концентратор и т.п.), которые находятся между контактами карты и процессором.</p> <p>Рассмотрим несколько реальных примеров из моей истории заказов…</p> <h2>Дело №1. ADATA 32GB – 25.08.2015 (677,14 руб.)</h2> <p>По-моему, первый заказ карты с AliExpress далёким летом 2015 года:</p> <p><a href="https://ibb.co/cQ8M7a"><img border="0" alt="2015 09 22 IMG 3790 cr modified stamp" src="https://thumb.ibb.co/cQ8M7a/2015_09_22_IMG_3790_cr_modified_stamp.jpg"></a> <a href="https://ibb.co/e745YF"><img border="0" alt="2015 09 22 IMG 3791 cr modified stamp" src="https://thumb.ibb.co/e745YF/2015_09_22_IMG_3791_cr_modified_stamp.jpg"></a></p> <p>На первый взгляд всё в порядке: розничная упаковка с адаптером и кард-ридер (в подарок).</p> <p>Что показала программа H2testw:</p> <p><img border="0" alt="2015 10 02 H2testw ADATA SD adapter stamp" src="https://image.ibb.co/gMnESa/2015_10_02_H2testw_ADATA_SD_adapter_stamp.png"></p> <p>Фактически на карте всего 4ГБ – достаточный повод, чтобы открыть спор и вернуть свои деньги, т.к. карта дефектная.</p> <p>Я вернул лишь часть – 500 руб., пропорциональную отсутствующему объёму, т.к. рассуждал “по справедливости”, и судя по истории спора, сначала я запрашивал полный возврат средств (без отправки товара обратно), но, видимо, продавец возражал…</p> <p>Окончательная версия моей претензии выглядела так: “<em>The microSD card is defective (see the attached report by H2testw): less than 4GB is available out of 32 GB. Repair isn't possible, so sending the card back isn't reasonable. The requested refund sum is appproximate difference between medium prices for 32GB and 4GB cards.</em>”</p> <p>Карт этих в продаже нет, и магазин в коме уже более полугода - <a href="https://www.aliexpress.com/store/1120038">Luckiness time</a>.</p> <p>Дальнейшую судьбу этой карты не могу точно проследить. Кажется, я сунул её в один из детских MP3-плееров (4ГБ всё-таки имеются на борту), который был впоследствии утерян…</p> <h2>Дело №2. XEDAIN 32GB – 25.08.2015 (697,59 руб.)</h2> <p>Карта весёлой расцветки из той же партии заказов в августе 2015 года:</p> <p><a href="https://ibb.co/gLAnVv"><img border="0" alt="2015 09 16 IMG 3673 cr modified stamp" src="https://thumb.ibb.co/gLAnVv/2015_09_16_IMG_3673_cr_modified_stamp.jpg"></a> <a href="https://ibb.co/mudfiF"><img border="0" alt="2015 09 16 IMG 3674 cr modified stamp" src="https://thumb.ibb.co/mudfiF/2015_09_16_IMG_3674_cr_modified_stamp.jpg"></a></p> <p>На обратной стороне в последней строчке текста на китайско-английском есть приписка: “The warranty shall de void if used for any type ofsurveillance systems” (мол, гарантию не предоставляем при использовании в системах наблюдения).</p> <p>Что показало тестирование:</p> <p><img border="0" alt="2015 10 02 H2testw ADATA SD adapter stamp" src="https://image.ibb.co/g1Vt3F/2015_10_02_H2testw_ADATA_SD_adapter_stamp.png"></p> <p>Годная карта с хорошими показателями скорости, соответствующими 10-му классу, но маловато для UHS-I, который заявлен на фронтальной части упаковки (спорить по этому поводу я не стал).</p> <p>Карта эта до сих пор в использовании и даже есть в продаже – <a href="http://ali.pub/1j743g" rel="nofollow" target="_blank">XEDAIN colorful memory cards</a> ($12.98 за 32 GB). Феноменальный долгожитель :)</p> <h2>Дело №3. LONDISK 32GB – 04/08/2016 ($6.57)</h2> <p>Карта попалась под руку случайно. Видимо, проходила какая-то промо-акция, потому что цена нереально низкая. Для сомневающихся – вот снимок заказа:</p> <p><img border="0" alt="2017 06 06 Order info blur stamp" src="https://image.ibb.co/fmZZca/2017_06_06_Order_info_blur_stamp.png"></p> <p>Я подумал, что рискнуть стоит… </p> <p>Конверт прибыл меньше, чем за 3 недели, что достаточно быстро для моего региона. Правда, без отслеживания (да, тогда такое было возможно), зато прямо в почтовый ящик.</p> <p><a href="https://ibb.co/gvn9Av"><img border="0" alt="2016 08 24 IMG 3473 cr autolevel resize stamp" src="https://thumb.ibb.co/gvn9Av/2016_08_24_IMG_3473_cr_autolevel_resize_stamp.jpg"></a> <a href="https://ibb.co/fn7Rqv"><img border="0" alt="2016 08 24 IMG 3474 cr autolevel resize stamp" src="https://thumb.ibb.co/fn7Rqv/2016_08_24_IMG_3474_cr_autolevel_resize_stamp.jpg"></a></p> <p>Минимальная комплектация с кард-ридером и футляром, который может быть полезен для транспортировки карты.</p> <p>При тестирование проблем не возникло:</p> <p><img border="0" alt="2016 08 24 H2testw more stamp" src="https://image.ibb.co/naDXVv/2016_08_24_H2testw_more_stamp.png"></p> <p>Тестирование скоростей на Windows 7 64-bit SP1 с включенными системным кешированием (режим – по умолчанию):</p> <p><img border="0" alt="2017 02 21 Win7x64 SP1 Caching ON stamp" src="https://image.ibb.co/i6NWOF/2017_02_21_Win7x64_SP1_Caching_ON_stamp.png"></p> <p>При отключении системного кеширования показатели несущественно менятся (хотя и странным образом - возможно какая-то флуктуация):</p> <p><img border="0" alt="2017 02 21 Win7x64 SP1 Caching OFF stamp" src="https://image.ibb.co/jfwxxa/2017_02_21_Win7x64_SP1_Caching_OFF_stamp.png"></p> <p>Весьма достойные скорости, на мой взгляд.</p> <p>Карта некоторе время обитала в моём планшете <a href="http://it-knowledge-base.blogspot.com/2016/08/jumper-ezpad-4s-technical-review.html" target="_blank">Jumper EZpad 4s</a> (как дополнение внутреннего накопителя):</p> <p><img border="0" alt="2016 10 12 EZpad4s NTFS stamp" src="https://image.ibb.co/bQp0Ha/2016_10_12_EZpad4s_NTFS_stamp.png"></p> <p>Затем окончательно осела в моём смартфоне <a href="http://ali.pub/1j75rq" target="_blank">Doogee X5 Max</a>, где до сих пор ведёт себя отлично.</p> <p>На текущий момент такие карты по-прежнему есть в продаже, правда, по цене <a href="http://ali.pub/1j75t3" target="_blank">$13.56 за 32 GB</a> (доступны объёмы от 8 до 200 ГБ). Забегая вперёд, скажу, что этой торговой марке я отдаю предпочтение при заказе карт (если угадать момент, то можно попасть на промо-акции от магазинов-распространителей). Рекомендую :)</p> <p>Продолжение следует…</p> <h2>Выводы</h2> <p>Заказ любых товаров с AliExpress – это всегда задержка в получении желанной покупки и зачастую лотерея по качеству. Однако при соблюдении несложных правил свои убытки можно свести к минимуму (затраченное время, конечно, никто не компенсирует). Тестирование карт памяти – процедура несложная, осуществить её под силу любому покупателю с базовым уровнем владения IT-премудростями. Администрация AliExpress во всех моих спорных случаях на эту тему выносила верное решение (в мою пользу), хотя порой и требовалсь шевеление мозговой извилиной.</p> <p>Если меня читают продавцы, то в моём лице Минздрав предупреждает вас: продажа дефектных карт памяти чревата блокировкой вашего магазина ;)</p>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-27998492660579206242017-05-11T00:10:00.002+03:002021-11-08T14:02:48.574+03:00Первичная настройка Windows 10<p>На днях мне под руку попался ноутбук Dell Inspiron 15-3552, на который необходимо было установить привычную операционную систему вместо альтернативной Ubuntu. Первым делом я начал было заталкивать в это чудо техники тёплую ламповую Windows 7, однако все мои старания оказались тщетными – инсталлятор упорно не хотел видеть USB-устройство, с которого и предстояло разворачивать систему (да, Windows 7 без спец.драйверов не умеет работать с xHCI-контроллером, на котором, по видимому, сидят USB-порты в упомянутом ноутбуке). Потратив на это мракобесие более 5 часов и перепробовав кучу танцев с бубнами, я сдался и обратил свой взор на другую версию операционки, которой по неслучайному стечению обстоятельств оказалась Windows 10. С ней я уже имел дело в своём <a href="/2016/08/jumper-ezpad-4s-technical-review.html" target="_blank">планшете Jumper EZpad 4s</a>, но в установленном виде, и поэтому решил углубить знакомство. Как и ожидалось, установка её прошла без запинок (только долго уж), и передо мной опять встал вопрос первичной настройки Windows 10, которая ни разу не тривиальна (по крайней мере для меня). Этому и посвящена данная заметка…</p> <a name='more'></a> <p>Разумеется, каждый пользователь настраивает систему под свои потребности, и я в этом – не исключение :)<br />Моя настройка базируется на таких требованиях:<br /></p> <ol> <li>Администратор – один (обязательно с паролем), а для каждого человека создаётся отдельный пользователь с обычными правами. Такой подход исключает нежелательную смену настроек неопытными пользователями и снижает риск неограниченного размножения вирусов. </li><li>Системные файлы и данные пользователей хранятся в разных разделах. Это облегчает восстановление системы из резервного образа (точками восстановления я не пользуюсь), когда полная перезапись системного раздела не затрагивает данные пользователей. </li><li>Система не должна обновляться автоматически. Подобные автоматические обновления чреваты возникновением неожиданных проблем на ровном месте, приводящих к потере стабильности, и поглощением свободного места на диске. </li></ol> <h3>Был один, а стало два…</h3>Первым делом необходимо разделить диск на две части (напр., с помощью Partition Wizard 9.1), выделив под систему достаточно места. Для Windows 10 потребуется не менее 30 GB (зависит от того, какие приложения будут дополнительно установлены). Далее с помощью Macrium Reflect Free 6.1 Build 1311 я создал образ системного раздела, который я храню как базовый на тот случай, если дальнейшие настройки приведут систему в негодность. Для образо-творчества можно использовать и другое ПО, но к Macrium Reflect я уж как-то привык и оно меня много раз выручало.<br />Перенос профиля нужного пользователя на другой диск происходит по такой схеме:<br /> <ol> <li>Сессия пользователя не должна быть активной (для надёжности лучше компьютер перезапустить). </li><li>Перенести соответствующий каталог из <code>C:\Users</code> в новое место. </li><li>Установить правильные разрешения (“Полный доступ” / “Full Access”) и владельца для каталога в новом месте. </li><li>(a) Создать символическую ссылку (symbolic link) для перенесенного каталога, указывающую из <code>C:\Users</code> в новое место<br />ИЛИ<br />(b) Откорректировать путь к профилю в реесте: строковое значение <code>ProfileImagePath</code> для каждого перемещённого профиля в разделе <code>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList</code>. </li><li>(только для 4b) Исправить символические ссылки типа <code>Application Data</code>, <code>Local Settings</code>, <code>NetHood</code> и т.д. (это хотелось бы автоматизировать, но пока руки не доходят). </li><li>Перезапустить компьютер (на всякий случай).</li></ol><span style="color: red;">(!)</span> Единственный недостаток указанной процедуры (если выбран вариант 4b+5) – перестаёт работать системный поиск.<br /> <h3>Отключение автоматического обновления</h3>По данному вопросу всех пользователей ждёт неприятный сюрприз – производитель операционной системы не предоставляет волшебную кнопку для отключения автоматического обновления. Поэтому всё придётся делать через реестр. Вот перечень мест, где надо пошаманить ручками:<br /> <table border="1" cellpadding="2" cellspacing="0"> <tbody></tbody> <thead> <tr> <th>Ключ (раздел)</th> <th>Тип: значение = величина</th> <th>Источник информации</th></tr></thead> <tbody> <tr> <td><code>HKLM<br />\SOFTWARE<br />\Policies<br /> \Microsoft<br /> \Windows<br /> \WindowsUpdate<br /> \AU\</code></td> <td>DWORD: AuOptions = 2</td> <td><a href="http://www.forbes.com/sites/gordonkelly/2015/08/26/windows-10-how-to-stop-forced-updates/#156d19185d1f" rel="nofollow">Windows 10 Hack: 3 Ways To Stop Forced Updates</a></td></tr> <tr> <td><code>HKLM<br />\SOFTWARE<br />\Policies<br /> \Microsoft<br /> \Windows<br /> \WindowsUpdate\</code></td> <td>DWORD: ExcludeWUDriversInQualityUpdate = 1</td> <td><a href="http://superuser.com/a/1068961" rel="nofollow">How do I stop Windows 10 from updating my graphics driver?</a></td></tr></tbody></table>Чтоб уж наверняка система не захотела обновляться самопроизвольно, необходимо однократно пометить WiFi-соединение как metered.<br /> <h3>Чистка мусора</h3>Под “мусором” в данном конексте я понимаю два элемента:<br /> <ul> <li>ненужные файлы (логи, дампы и т.п.), сформированные в результате работы системы ранее (для их чистки в системе есть утилита System Cleanup, и таким простым способом мне удалось освободить ок. 200 МБ пространства на диске) </li><li>избыточные стандартные приложения (для их удаления я использовал подход, изложенный <a href="http://it-knowledge-base.blogspot.com/2016/07/how-to-remove-pre-installed-windows.html">ранее</a>) - этот шаг лучше делать до создания дополнительных пользователей</li></ul> <h3>Блокируем автоматический вход</h3>Ещё одним сюрпризом для продвинутых пользователей окажется автоматический запуск сессии пользователя, который работал в системе перед отключением (если у этого пользователя пустой пароль). Эта уникальная фича появилась в Windows 10, и на мой взгляд является излишней при том, что избавиться от неё, как оказалось, не так просто.<br />Я опробовал <a href="http://superuser.com/a/1042118" rel="nofollow">подход с Task Scheduler</a>, но он работал случайным образом (как-будто однократно).<br />Поэтому пришлось похимичить в реестре, где до сих пор можно настроить автоматический вход для администратора:<div><ul style="text-align: left;"><li>открываем ветку <code>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\</code></li><li>создаём/правим два строковых значения: <code>AutoAdminLogon = "1"</code> и <code>DefaultUserName = ""</code></li></ul>Перегружаемся и получаем на экране приветствия “шайбу” Other user (Другой пользователь), которую игнорируем нажатием кнопки OK, и далее выбираем нужного пользователя из привычного списка.<br /> <h3>Чистим All Users и Default User</h3> <p>Хотя это и не обязательно, но моё стремление к совершенству потребовало, чтобы общие ярлыки не дублировались в профиле нового пользователя.</p> <p>Чтобы это исключить, нужно ярлыки из <code>"C:\Users\Default\Start Menu\Programs"</code> аккуратно переместить в <code>"C:\Users\All Users\Start Menu\Programs"</code>.</p></div>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-45716395400973546802017-04-28T02:34:00.001+03:002017-04-28T02:52:36.145+03:00Обновляем прошивку на смартфоне Doogee X5 Max<p>Если у вас есть смартфон на Android, то вы наверняка интересовались темой по изменению прошивки (firmware) подобных устройств. В самом простом случае эта тема могла попадать в поле вашего внимания, если производитель гаджета обновляет систему достаточно регулярно, и предлагает вам нажать волшебную кнопку, чтобы ваш смартфон стал работать быстрее/надёжнее/дешевле. Как правило, обновление прошивки действительно улучшает работоспособность устройства, но в очень редких случаях что-то идёт не так (в головах разработчиков), и модная новая версия отчего-то не вызывает у вас энтузиазма. Тут-то среднестатистический пользователь и обнаруживает, что избавится от прошитых новшеств не так-то просто… об этом и пойдёт речь.</p> <a name='more'></a> <p>Хотя <a href="http://ali.pub/195whe" rel="nofollow" target="_blank">Doogee X5 Max</a> не был первым приобретённым Android-смартфоном, он оказался первым устройством, на котором я познакомился с темой обновления прошивки. Причина, сподвигшая меня на это, была затейлива – официальные прошивки, прилетавшие в устройство “по воздуху” (OTA – через Интернет), устанавливались без каких-либо сложностей до версии <code>DOOGEE-X5max-Android6.0-20161123_121349</code>, которая вызывала сбой на этапе применения:</p><a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.12.14_IMG_0421_cr_modified_copyright.jpg.html" target="_blank"><img border="0" alt=" photo 2016.12.14_IMG_0421_cr_modified_copyright.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/th_2016.12.14_IMG_0421_cr_modified_copyright.jpg"></a> <p>Да, бывает и такое. К счастью, с этой проблемой я был не одинок – энтузиасты предлагали обновляться вручную, благо файл с прошивкой находился в общем доступе. Основываясь на <a href="http://4pda.ru/forum/index.php?showtopic=752288" rel="nofollow" target="_blank">инструкциях форума 4pda.ru</a>, я с первого раза успешно обновил прошивку своего смартфона. Незабываемые ощущения. Как говорится, первый раз бывает только раз в жизни :)</p> <p>Так выглядит окно SmartPhone Flash Tool во время обновления прошивки:</p> <p><a href="https://ibb.co/kgD6bF"><img border="0" alt="2016 12 15 Doogee X5 Max SP Flash Tool remarks" src="https://thumb.ibb.co/kgD6bF/2016_12_15_Doogee_X5_Max_SP_Flash_Tool_remarks.png"></a></p> <p>Дальнейшие версии официальных прошивок можно было устанавливать традиционным способом. Однако в ближайшей же версии обнаружились довесочки в виде стандартных приложений Google (типа Chrome и проч.), которые в мои планы совсем не входили. Пришлось опять вынимать из широких штанин FlashTool и откатываться на предыдущую компактную версию, которой оказалась именно та проблемная, не желавшая устанавливаться “по-хорошему”.</p> <p>После этого тема с обновлением прошивки надолго исчезла с моего горизонта – смартфон работал чётко и надёжно. Единственный недостаток, который теребил моё эстетическое чувство прекрасного, – это ступенчатый график разряда аккумулятора:</p> <p><a href="https://ibb.co/i80jrQ"><img border="0" alt="Screenshot 20170329 172114" src="https://thumb.ibb.co/i80jrQ/Screenshot_20170329_172114.png"></a></p> <p>Мелочь, а неприятно…</p> <p>На этом можно было бы и поставить точку, но для полноты картины рассмотрим ещё один из типичных случаев обновления прошивки. Предыстория у него банальна – на моём смартфоне закончилось свободное место для установки приложений. На Android-устройствах с малым объёмом внутренней памяти это случается довольно часто – достаточно установить что-то громоздкое (в моём случае этим оказалась offline-карта), и вскоре попытки обновить какую-нибудь махонькую утилитку будут сопровождаться ошибками с требованием освободить побольше места. Ниже приведен пример сообщения “Недостаточно места”, когда я захотел обновить Blynk:</p><a href="https://ibb.co/kL2Tkk"><img border="0" alt="Screenshot 20170331 143712" src="https://thumb.ibb.co/kL2Tkk/Screenshot_20170331_143712.png"></a> <p>При данном раскладе наиболее простым решением для смартфонов под управлением Android 6.0 (где закручены гайки безопасности по работе с внешними картами памяти) являлась бы установка карты типа microSD с расширением на неё внутренней памяти телефона. Такое решение обладает единственным недостатком – карта памяти шифруется, и её нельзя будет использовать за пределами смартфона без танцев с бубнами. Более того, извлечение карты приведёт к частичной или даже полной неработоспособности смартфона (сужу по отзывам страдальцев в Интернетах, т.к. самому проверить не удалось).</p> <p>Я же решил пойти другим путём (после некоторых колебаний) – получение root и перенос приложений на карту памяти. И в этом случае на помощь мне пришла <a href="http://4pda.ru/forum/index.php?showtopic=752288&st=2600#entry53871796" rel="nofollow" target="_blank">инструкция с форума 4pda.ru</a> (я использовал её с мелкой модификацией – галочку во FlashTool на пункте userdata я убрал, т.к. лень было заново всё настраивать). Под руку попался т.н. <a href="http://4pda.ru/forum/index.php?showtopic=752288&st=8400#entry60021738" rel="nofollow" target="_blank">почищенный сток от 30.03.17</a>, который идеально установился на мою официальную версию от 23.11.2016.</p> <p>После этого root-доступ позволил мне выкинуть лишние приложения из автозапуска (используя <a href="https://play.google.com/store/apps/details?id=eu.thedarken.sdm" rel="nofollow" target="_blank">SD Maid</a>) и с помощью <a href="https://play.google.com/store/apps/details?id=in.co.pricealert.apps2sd" rel="nofollow" target="_blank">App2SD</a> переразметить карту памяти и перенести на неё все громоздкие приложения.</p> <h2>Вместо заключения</h2> <p>В этой заметке я рассмотрел только три наиболее распространённых повода, требующих ручного обновления прошивки, но в реальной жизни их, конечно же, больше. Хотя тема и кажется излишне сложной в техническом плане, на самом деле наличие инструкций (разной степени детализации) позволяет шить налево и направо даже без специальной подготовки. Шансы получить “кирпич”, конечно, тоже имеются, но кто не рискует…</p> <p>Что же касается самого смартфона <a href="http://ali.pub/195whe" rel="nofollow" target="_blank">Doogee X5 Max</a>, то я его рекомендую к приобретению со следующими оговорками:</p> <ul> <li>внешний вид у него лишён изящества – эдакий угловатый девайс;</li> <li>нет OTG (мне этой фичи порой не хватает – хотелось бы иногда рулить своим <a href="/2017/01/assembling-3d-printer-prusa-i3-from-diy.html" target="_blank">3D принтером</a>);</li> <li>нет 4G;</li> <li>не очень чувствительный GPS-приёмник (возможно, дефект моего аппарата – у окна внутри помещения лениво ловит спутники по сравнению с другими устройствами)</li></ul>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-62389313391192799112017-03-26T03:42:00.001+03:002017-05-28T05:25:38.432+03:00Compact offline installer for Visual Studio 2017 Community Edition<p>Оказывается, в начале марта Microsoft праздновала 20-летие Visual Studio, выпустив при этом в свет очередную версию своего детища для разработчиков – Microsoft Visual Studio 2017 (Visual Studio 2017 is coming on March 7). Хотя мне и прислали письмо-приглашение на это мероприятие, я его пропустил, т.к. для своих проектов до сих пор использую Visual Studio 2012 Express и совершать upgrade не планировал. Припоминаю, разок я всё-таки умудрился установить Visual Studio 2015 Community Edition на свой ноутбук, но это чудо информационной мысли в минимальной конфигурации (C++ и C#) отъедает порядка 10 GB накопителя, что неможко слишком чересчур. Тогда я отложил затею с обновлением до момента расширения дискового пространства (с прицелом на это был заказан <a href="http://ali.pub/18tp7f" rel="nofollow" target="_blank">mSATA SSD KingFast F9M на 128 GB</a>, который всё никак не доберётся до места назначения), но на днях, вновь наткнувшись на старое письмо, подумал: “Ну-ка, гляну на передовой продукт…”</p> <a name='more'></a> <p>Вскоре я уже добрался до страницы о том, <a href="https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio" rel="nofollow" target="_blank">как создать offline-инсталлятор для Visual Studio 2017</a> (о, как!). Да, компания Microsoft отказалась от предоставления ISO-файлов данного продукта. Почему? Предположу, что помимо озвученного “пресс-центром” удобства/гибкости для разработчиков (в комментариях, кстати, многие возмущаются – мол, где ISO-шки?!), инсталляция уже не помещалась на парочку компактов (напр., имеющийся у меня файл vs2015.3.com_enu.iso имеет размер более 7 GB, и два года продукт не топтался на месте, конечно же). Как вы зацените в дальнейшем, инсталлятор Visual Studio 2017 Community Edition занимает порядка 20 GB, при том, что не всё из комплекта нужно всем и каждому…</p> <h2>ISO-installer, bye-bye!</h2> <p>Разработчики решили предоставить пользователю, наряду с традиционным web-инсталлятором, также и возможность создать эдакий локальный кеш инсталляционных файлов для запуска позже и/или их на других компьютерах (в том числе и на неподключенных к Интернет).</p> <p>Т.е. если вам не жалко 20 GB под эквивалент ISO-шки, то достаточно выполнить команду:</p> <p><code>vs_community.exe --layout C:\vs2017offline --lang en-US</code></p> <p>Через n-ое кол-во часов вы сможете оценить масштабы передовых технологий для кросс-платформенной разработки :)</p> <p>В моём случае скачивание застряло после 10 GB из-за закончившегося места (загрузчик не спешит подчищать <code>%TEMP%</code> по ходу пьесы, и этот каталог был на системном разделе, который оказался не резиновым).</p> <p>После раскуривания <a href="https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio" rel="nofollow" target="_blank">командной строки</a> я решил ограничиться desktop-компонентами для разработки на C++ и C#:</p> <p><code>vs_community.exe --layout C:\vs2017offline --lang en-US –-add Microsoft.VisualStudio.Workload.ManagedDesktop –-add Microsoft.VisualStudio.Workload.NativeDesktop </code></p> <p>После завершения скачивания я перевёл компьютер в offline-режим и попытался установить эти пасочки, но у меня получилось это сделать лишь частично, т.к. сказать, в минимальной конфигурации. После недолгих мытарств мне стало ясно, что никакие из т.н. рекомендуемых компонентов не скачались в кеш. Делу не помог и ключ <code>–-includeRecommended</code> - судя по комментариям, с <code>-–layout</code> он не совместим ни у кого (скорее всего, ошибка в инсталляторе).</p> <p>Пришлось ещё раз штудировать <a href="https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community" rel="nofollow" target="_blank">список идентификаторов нагрузок и компонентов</a>, и в итоге я написалъ скриптъ:</p><code> <p>@echo off<br>set LAYOUT_DIR=%1<br>if "%LAYOUT_DIR%"=="" (<br> echo Please, specify offline cache directory as the 1st parameter: %~nx0 SomeDir<br> exit 1<br>)</p> <p>REM The executable name will probably change in future<br>set vs_community_exe=vs_community__296967863.1490362753.exe</p> <p>REM Managed Desktop and its recommended components<br>set ManagedDesktop=--add Microsoft.VisualStudio.Workload.ManagedDesktop<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.ComponentGroup.Blend<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.Net.Component.4.5.1.TargetingPack<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.Net.Component.4.5.2.TargetingPack<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.Net.Component.4.5.TargetingPack<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.Net.Component.4.6.TargetingPack<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.Net.Component.4.TargetingPack<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.Net.ComponentGroup.TargetingPacks.Common<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.VisualStudio.Component.DiagnosticTools<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.VisualStudio.Component.EntityFramework<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd<br>set ManagedDesktop=%ManagedDesktop% --add Microsoft.VisualStudio.Component.LiveUnitTesting</p> <p>REM Native Desktop and its recommended components<br>set NativeDesktop=--add Microsoft.VisualStudio.Workload.NativeDesktop<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.Graphics.Tools<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.Graphics.Win81<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.Static.Analysis.Tools<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.VC.CMake.Project<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.VC.DiagnosticTools<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.Windows10SDK.14393<br>REM Optional component "Visual C++ ATL support" gets selected by default<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.VC.ATL<br>REM Two optional components for "Windows 8.1 SDK and UCRT SDK" (required to build with CMake)<br>set NativeDesktop=%NativeDesktop% --add Microsoft.Component.VC.Runtime.UCRTSDK<br>set NativeDesktop=%NativeDesktop% --add Microsoft.VisualStudio.Component.Windows81SDK<br><br>REM GO!<br>REM --add Microsoft.VisualStudio.Workload.CoreEditor is redundant<br>%vs_community_exe% --layout "%LAYOUT_DIR%" --lang en-US --locale en-US %ManagedDesktop% %NativeDesktop%<br></code></p> <p>Я ограничился лишь рекомендуемыми компонентами для .NET desktop development и Desktop development with C++, однако при дальнейшей инсталляции выяснилось, что опциональный компонент “Visual C++ ATL support” оказывается отмечен “галочкой” по умолчанию, поэтому пришлось и его посчитать (+20 МБ).</p> <p>В процессе экспериментов над этим чудо-инсталлятором я рассматривал вариант с разделением продуктов (workloads) по каталогам, но это направление оказалось неперспективным – ManagedDesktop (920 МБ) и NativeDesktop (1680 МБ) имеют более 600 МБ общих компонентов. Общий для них CoreEditor занимает почти 300 МБ. Если оба этих продукта разместить в одном каталоге, то вместе с рекомендуемыми компонентами на это достаточно отвести около 2 Гб, что выглядит достаточно компактно.</p> <h2>Установка Visual Studio Community 2017 в автономном режиме</h2> <p>Перед запуском инсталяции необходимо установить сертификаты. Если целевой компьютер не подключен к Интернет, то нужные сертификаты можно найти в каталоге <code>certificates</code>, их там всего три:</p> <ul> <li><code>manifestCounterSignCertificates.p12</code> <li><code>manifestSignCertificates.p12</code> <li><code>vs_installer_opc.SignCertificates.p12</code></li></ul> <p>Для пуска установки я тоже написалъ скриптъ:</p><code> <p>@echo off<br>set LAYOUT_DIR=%1<br>if "%LAYOUT_DIR%"=="" (<br> echo Please, specify offline cache directory as the 1st parameter: %~nx0 SomeDir<br> exit 1<br>)</p> <p>REM The executable name will probably change in future<br>set vs_community_exe=%LAYOUT_DIR%/vs_community__296967863.1490362753.exe</p> <p>%vs_community_exe% --locale en-US<br></p></code> <p>Но формально важным здесь является лишь параметр <code>--locale en-US</code>, значение которого должно совпадать с тем языком, для которого вы скачали установочные пакеты ранее. Без указанного параметра инсталлято может запутаться с языками системы и завершиться без каких-либо отчётливых жалоб – придётся ворошить log-файлы.</p> <p>В установленном виде NativeDesktop с выбранными по умолчанию компонентами требует порядка 6 ГБ, из которых ок. 2 ГБ отводится для Windows 10 SDK Kit, на расположение которого повлиять из инсталлятора невозможно, и он устанавливается на системный раздел. В добавок к этому ManagedDesktop c компонентами по умолчанию занимает ок. 1.5 ГБ.</p> <h2>Вместо заключения</h2> <p>На мой взгляд, компания Microsoft реализовала весьма рациональный подход в своём инсталляторе для Visual Studio 2017, который позволяет на этапе скачивания выбрать из продуктов то, что необходимо. К сожалению, использование продвинутых возможностей требует дополнительных инструкций и собственных экспериментов (надеюсь, документация будет улучшена в будущем), а наличие некоторых недоработок (напр., несовместимость ключей <code>–-includeRecommended</code> и <code>-–layout</code>) незначительно осложняет получение удовольствия от процесса ;)</p> <h2>[2017.05.28] Обновляем инсталятор</h2> <p>Недавно мне понадобилось доустановить компонент <code>Microsoft.VisualStudio.Component.VC.140</code> (<code>VC++ 2015.3 v140 toolset (x86,x64)</code>), который ранее в моём списке не значился, т.к. числился опциональным. Попутно я решил проверить, как далеко зашёл прогресс за два месяца, и запустил приведенный ранее скрипт для создания кеша установочных пакетов…</p> <p>Подождав до завершения часок, я обнаружил, что каталог с кешем подрос до 3383 МБ (вместо 2293 МБ имевшихся ранее), и вместе с размером увеличилось и кол-во каталогов:</p> <table border="1" cellspacing="0" cellpadding="2" width="400"> <tbody> <tr> <td valign="top" width="107"> </td> <td valign="top" width="107">2017.03.27</td> <td valign="top" width="107">2017.05.28</td> <td valign="top" width="77">2017.05.28 (после чистки)</td></tr> <tr> <td valign="top" width="107">Размер, МБ</td> <td valign="top" width="107">2293</td> <td valign="top" width="107">3383</td> <td valign="top" width="77">2294</td></tr> <tr> <td valign="top" width="107">Кол-во каталогов с пакетами</td> <td valign="top" width="110">351</td> <td valign="top" width="113">493</td> <td valign="top" width="95">354</td></tr></tbody></table> <p>Самым жирным (614 МБ) является Windows 10 SDK, который обновили с версии 79501 до 79513.</p> <p>При таком раскладе, если охота сэкономить 1 ГБ дискового пространства, эффективнее выкачать все пакеты заново, в противном случае - ручная чистка и всё такое.</p> <p>Что же касается виновника торжества - VC++ 2015.3 v140 toolset – то с его появлением каталог подрос до 2935 МБ…</p> <p>Не исключено, что после применения обновления при запуске Студии у вас начнёт появляться окошко “Unknown Error”. Лечится это удалением настроек в <code>?:\Users\???\AppData\Local\Microsoft\VisualStudio\</code> (каталоги вида <code>15.0_149d906e</code>) – см. <a href="https://developercommunity.visualstudio.com/content/problem/31263/vs2017-fails-to-start-with-unknown-error.html" rel="nofollow" target="_blank">жалобы других пользователей</a>. После этого настройки IDE лучше проверить, т.к. в моём случае, несмотря на то, что я вошел в Visual Studio Profile, всё сбросилось в изначальное состояние…</p>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-45433510666345461352017-03-16T21:46:00.001+03:002017-03-20T22:18:04.514+03:00Исчезновение кешированных Интернет-паролей в Windows<p>Сегодня после запуска компьютера (Lenovo B580 с Windows 7 64-bit SP1) я обнаружил, что все браузеры (Vivaldi, Chrome, Firefox, Opera) забыли пароли от всех сайтов, которые я часто посещаю, и для которых я включил опцию типа “запоминать пароль”. Если бы это случилось с парой-тройкой сайтов, я бы не стал переживать, а просто заново прошёл бы авторизацию, но этот массовый случай забывчивости меня насторожил. Ситуация ещё усугубилась тем, что канули в Лету и пароли, заученные программами синхронизации данных с облаками (Google Drive, Облако Mail.ru, Microsoft OneDrive, hubiC, MEGAsync) – это был реальный абзац…</p> <a name='more'></a> <p>Первым делом я поискал новости на соответствующую тему, но кроме нерелевантной статьи “<a href="http://www.businessinsider.com/ap-cascading-effect-one-attack-led-to-another-at-yahoo-2017-3" rel="nofollow" target="_blank">Cascading effect: One attack led to another at Yahoo</a>” ничего актуального найти не удалось. Логично было бы предположить, что это какой-то ультрамодный вирус, на который пока никто не жалуется (кроме Windows Defender, никакой защиты в системе не установлено).</p> <p>Среди всего вороха советов нашёлся один толковый – посмотреть, что система пишет в событиях безопасности. Однако ничего в журнале Windows особенного найти не удалось, за исключений нескольких попыток неудачного входа в систему, пока я спал – видимо, это ребёнок опять проявил ловкость и включил компьютер, пока взрослые отвернулись… Ага, ребёнок! Ведь именно вчера я, для предотвращения несанкционированного детского доступа, на все свободные профили пользователей установил пароль (до этого он был пустым), а детскому профилю достался т.н. “родительский контроль” (органичение по времени использования).</p> <p>Похоже, что Windows при смене пароля (или, вернее, при задании пароля, если до этого он был пустым, т.е. отсутствовал) сбрасывает кеш паролей Интернет (возможно, пароль входа в Windows используется для доступа к этой базе данных). Поверхностный поиск в интернетах не смог ни подтвердить, ни опровергнуть эту гипотезу…</p> <p>Примечательно, что лишь некоторые из кешированных паролей пережили этот геноцид, и среди них:</p> <ul> <li>Mozilla Firefox 51.0.1 (сохранился как вход в Web-интерфейс почтового ящика на yandex.ru, так и вход в синхронизацию); <li>Maxthon 4.9.3.1000 (вход в синхронизацию и прочие сайты); <li>доступ к блогам в Open Live Writer 0.6.0.0; <li>доступ к учётной записи в Toggl Desktop 7.4.7</li></ul> <p>Список, конечно, не полный, т.к. во многих программах (напр., Skype, ooVoo) автоматический вход у меня отключен. Мне пока неясно, чем чревато альтернативное хранение паролей и насколько этот метод более безопасен, чем тот, что встроен в Windows.</p> <p>Помимо исчезновения кеша паролей обнаружились также другие неприятные побочные эффекты:</p> <ul> <li>hubiC 2.1.1.145 забыло все настройки; <li>системный процесс lsass.exe (Local Security Authority Process) иногда начинает потреблять ресурсы CPU (начиная с одного виртуального ядра) – это проявлялось при запуске Google Chrome, и проблема исчезла после удаления папки <code>?:\Users\<USER>\AppData\Roaming\Microsoft\Protect\<GUID></code>, которая сразу же воссоздаётся системой (подсказка найдена в <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=374624" rel="nofollow" target="_blank">bugs.chromium.org</a>)</li></ul>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-31479370298962988732017-01-21T14:03:00.001+03:002017-01-21T23:59:31.287+03:00Сборка 3D-принтера Prusa i3 из DIY-набора от flsun3d<p>В прошлом году я стал обладателем 3D-принтера в виде DIY-набора, купленного в AliExpress по случаю щедрой распродажи 11.11. Припоминаю, до этой даты я потратил достаточно много времени, чтобы понять, что же мне подойдёт для первого раза так, чтобы затраты были умеренными. На упомянутой торговой площадке предприимчивые китайские инженеры предлагают предостаточно наборов для самостоятельной сборки по доступным ценам, пользуясь тем, что схемы принтеров находятся в общем доступе. После длительных мук выбора я всё-таки остановил свой выбор на варианте <a href="http://ali.pub/b429d" rel="nofollow" target="_blank">Prusa i3 с аллюминиевой рамой от магазина flsun3d</a>. После применения всех скидок моя покупка обошлась мне в сумму порядка $180 с бесплатной доставкой в пределах России (сейчас этот же <a href="http://ali.pub/8n2gi" rel="nofollow" target="_blank">DIY-набор можно приобрести по цене $187 с платной доставкой за $34 из Китая</a>). Аналогичные по возможностям принтеры в собранном виде можно раздобыть и в местных магазинах, но ценник как правило стартует от $450, что в принципе тоже доступно, но никакого спортивного интереса в этом нет :)</p> <p>Более того, DIY-набор – это шикарная возможность для применения творческой дури (конечно, при наличии рук, выросших из правильного места :) и отличный повод разобраться, как это устроено. К тому же в случае с 3D-принтерами знакомство с их “внутренним миром” весьма полезно, т.к. облегчает понимание источников проблем с последующей печатью, а также подсказывает направления для улучшения агрегата.</p><a name='more'></a> <h2>Модифицированная инструкция по сборке</h2> <p>В комплекте с моим принтером поставлялась достаточно подробная инструкция по сборке (полагаю, так же обстоит ситуация и с другими наборами), которая написана достаточно подробно, но слишком пошагово – мне как новичку в этом деле был не очевиден вклад каждого шага в конструкцию устройства. Возможно, если бы я потратил больше времени на изучение схемы или имел бы больше опыта в таких делах, полная картина выглядела бы яснее и возможности для улучшения я увидел бы по ходу пьесы, а не после завершения сборки.</p> <h3>Увеличение оси Y</h3> <p>Одна из таких возможностей – это увеличение хода стола по оси Y. Не знаю, легко ли такой апгрейд осуществить для других DIY-наборов, но в рассматриваемом комплекте достаточно легко получить несколько дополнительных сантиметров без радикальной замены деталей.</p> <p>Зачем? Например, мне почти сразу же стал интересен вариант с увеличением области печати, хотя для этого и придётся покупать дополнительный стол большего размера.</p> <p>Если вы ещё не закончили сборку и комплектный ремень под ось Y пока не отрезан от общего куска, то выгоднее сразу же переставить мотор на другую сторону рамы. Если же ваш принтер уже собран (и даже работает) и ремня нужной длины у вас нет (мотор перемещается на ~65 мм, соответственно ремень должен быть длиннее на 13 см), то придётся раздобыть новый (я покупал <a href="http://ali.pub/swqph" rel="nofollow" target="_blank">2meter GT2 timing belt width 6mm</a> за $1.6).</p> <p>Максимальный ход по оси Y тоже можно увеличить на 20 мм, сместив натяжитель ремня, но для этого понадобится дополнительная деталь, которую можно напечатать сейчас (если есть возможность) или позже (в этом случае в длину ремня заложите ещё 40+ мм). Модель можно спроектировать самому (благо с принтером предусмотрительный продавец предоставляет STL-файлы всех самодельных деталей) или взять <a href="https://www.tinkercad.com/things/baEGt2h4Mhz-flsun3d-extra-y-extender" rel="nofollow" target="_blank">мой вариант из Tinkercad</a>.</p>Так размещается мотор оси Y на новом месте: <p><a href="http://s683.photobucket.com/user/Anton-K/media/flsun3d/2017.01.12_IMG_1208.jpg.html" target="_blank"><img border="0" alt=" photo 2017.01.12_IMG_1208.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/flsun3d/th_2017.01.12_IMG_1208.jpg"></a> <a href="http://s683.photobucket.com/user/Anton-K/media/flsun3d/2017.01.12_IMG_1209.jpg.html" target="_blank"><img border="0" alt=" photo 2017.01.12_IMG_1209.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/flsun3d/th_2017.01.12_IMG_1209.jpg"></a></p> <p>Обратите внимание на положение концевика - в таком виде он обеспечивает смещение "нуля" на 1 см (или около того). В окончательном варианте концевик необходимо будет разместить в другом месте, и, скорее всего, для этого придётся смоделировать дополнительное крепление.</p> <p>Так размещается натяжитель ремня оси Y на новом месте:</p> <p><a href="http://s683.photobucket.com/user/Anton-K/media/flsun3d/2017.01.11_IMG_1206.jpg.html" target="_blank"><img border="0" alt=" photo 2017.01.11_IMG_1206.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/flsun3d/th_2017.01.11_IMG_1206.jpg"></a> <a href="http://s683.photobucket.com/user/Anton-K/media/flsun3d/2017.01.11_IMG_1207.jpg.html" target="_blank"><img border="0" alt=" photo 2017.01.11_IMG_1207.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/flsun3d/th_2017.01.11_IMG_1207.jpg"></a></p> <p>Максимальное выдвижение стола по оси Y ограничивается подшипниковыми опорами акриловой базы, которые упираются в крепления стержней (зависит от того, “широко” вы их поставили или “узко”).</p> <p>Приведенный вариант увеличения оси Y не является окончательным, и я доработаю схему по мере свободного времени и как только получу большего размера, ради которого это всё и затевалось (данной теме будет посвящён отдельный пост).</p> <h3>Управление дополнительным вентилятором</h3> <p>В принтере предусмотрен дополнительный вентилятор, сопло которого направлено в область печати. Предполагается, что он охлаждает вышедший из сопла пластик во избежание его деформации, что весьма полезно во многих случах. Согласно схемы питание вентилятора осуществляется из разъёма на плате, в котором постоянно присутствует напряжение 12В. Естественно этот вентилятор будет дуть постоянно, хотя и плата, и firmware, и слайсеры имеют возможности для управления этим пунктом.</p> <p>Со стороны платы под вентилятор выделены соответствующие контакты между нагревательным столом и нагревателем сопла - туда дополнительное охлаждение и необходимо подключить. Что делать с уже имеющимся разъёмом вентилятора? Проще всего, конечно, его срезать, но я решил подобрать парный разъём, чтобы оставить возможность манёвра на будущее.</p> <p>Путём пробной закупки удалось выяснить, что в данном случае подходит разъём с шагом 2.54 мм. В одном из местных магазинов их продают под названием “<a href="http://electronica.bashel.ru/?item=78-53-79" rel="nofollow" target="_blank">W-02, Вилка прямая на плату шаг 2,54мм</a>” за 4 руб., при этом с AliExpress (напр., <a href="http://ali.pub/xhn2j" rel="nofollow" target="_blank">20pcs XH2.54 2.54mm Socket Connector Pin Header Straight pin 2p-12p total 11 types</a>) их можно выписать в виде мелко-оптовой партии 20 шт. за $0.80 (т.е каждый обойдётся в $0.04 = 2.4 руб. – выгодно, но ведь нам нужен только один).</p> <p>После припаивания коротких проводков в приобретённому разъёму соединение с вентилятором выглядит следующим образом:</p> <p><a href="http://s683.photobucket.com/user/Anton-K/media/flsun3d/2016.12.11_IMG_0183.jpg.html" target="_blank"><img border="0" alt=" photo 2016.12.11_IMG_0183.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/flsun3d/th_2016.12.11_IMG_0183.jpg"></a></p> <p>За управление этим вентилятором в слайсере обычно предусмотрены различные настройки (для Slic3r 1.2.9 их можно найти на закладке Filament Settings и далее пункт Cooling).</p> <h2>Что ещё нужно для печати</h2> <p>В комплект моего принтера входил алюминиевый нагревательный стол MK3 (см., напр., <a href="http://reprap.org/wiki/PCB_Heatbed/ru#MK3_ALU-Heatbed_Dual_Power" rel="nofollow" target="_blank">MK3 ALU-Heatbed Dual Power</a>), и согласно инструкции на нём можно было бы печатать (как минимум пластиком PLA) без дополнительных ухищрений типа стекла, малярного скотча или каптоновой ленты (первое из комплектации было исключено, хотя рулон белого скотча зачем-то сунули).</p> <p>“Специальное” стекло для принтера стоит в Китае порядка $8 (см., напр., <a href="http://ali.pub/qabcj" rel="nofollow" target="_blank">Heated Bed Borosilicate Glass Plate size 213*200*3mm tempered</a>), но можно заглянуть в ближайший фото-салон и подобрать там рамку для фотографии, стекло из которой (при соответствии размеров) вполне подойдёт (пока спецстекло добиралось ко мне из Китая, я какое-то время печатал на 2-мм стекле небольшого размера, извлечённого из под руку попавшейся картинки в рамке).</p> <p>Помимо предоставления ровной поверхности, стекло также облегчает обслуживание стола, т.к. его легко снять, чтобы удобным образом провести чистку области печати от излишне липкого пластика.</p> <p>Ну, и ещё один трюк от энтузиастов 3D-печати: имея два или больше стёкол (желательно одинакового размера), можно уменьшить простои оборудования из-за ожидания остывания платформы после окончания печати – просто снимаете стекло с отпечатком и вместо него ставите другое.</p> <p>Далее – первое включение, настройка и тестовая печать…</p>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-6663733751791375202016-08-13T19:37:00.001+03:002017-05-11T00:13:25.639+03:00Краткий технический обзор планшета Jumper EZpad 4s<div style="text-align: left" dir="ltr" trbidi="on">Несколько месяцев назад я приобрёл планшет с 10-дюймовых IPS-экраном с процессором Intel Z8300 под управлением Windows 10 Home. Осуществить покупку мне помог расчудесный магазин AliExpress, который последние пару лет стал для меня кладезем недорогих товаров Made in China, доставляемых по всему миру условно-бесплатно (естественно, эти затраты включены в цену).<br>Планшет обошёлся мне в $126 (припоминаю, по какой-то дисконтной цене) и заказ я оформил в популярном магазине <a href="http://ali.pub/u238s" rel="nofollow" target="_blank">Shenzhen Ele Technology Limited</a>, который, к сожалению, уже не предлагает данные товары на продажу. Зато тот же самый девайс и почти за ту же минимальную цену можно приобрести в якобы официальном магазине производителя - <a href="http://ali.pub/fhx9d" rel="nofollow" target="_blank">Shenzhen Jumper</a>. На других торговых площадках это же устройство можно найти дешевле, но у меня с ними пока не срослось, поэтому рекомендовать не могу.<br>В данной заметке изложен мой двухмесячный опыт использования планшета и рекомендации по его настройке. Частично эту же информацию можно найти на <a href="http://4pda.ru/forum/index.php?showtopic=744060" rel="nofollow" target="_blank">профильной ветке 4PDA</a>.</div> <a name='more'></a> <div style="text-align: left" dir="ltr" trbidi="on"> </div><a name="more"></a> <h2 style="text-align: left" dir="ltr" trbidi="on">Технические характеристики</h2> <div style="text-align: left" dir="ltr" trbidi="on"> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td>Процессор (CPU)</td> <td>Intel Atom x5-Z8300 1.44GHz (Quad Core)</td></tr> <tr> <td>Оперативная память (RAM)</td> <td>2 GB</td></tr> <tr> <td>Диск</td> <td>32 GB (eMMC) (доступно порядка 28 ГБ)</td></tr> <tr> <td>Экран</td> <td>10.6 дюйма / ёмкостной / 10 точек касания / макс. разрешение 1366*768</td></tr> <tr> <td>Камера</td> <td>Фронтальная и задняя по 2 МП</td></tr> <tr> <td>Сетевые коммуникации</td> <td>Bluetooth, WiFi</td></tr> <tr> <td>Разъёмы</td> <td>USB, micro-USB, HDMI, 3.5 jack, micro SD-card, DC-in</td></tr> <tr> <td>Операционная система</td> <td>Windows 10 Home 64-bit</td></tr></tbody></table></div> <div style="text-align: left" dir="ltr" trbidi="on">При покупке обращайте внимание на установленный процессор, т.к. эта модель планшета под тем же торговым названием (Jumper EZpad 4s) выпускалась и раньше (год назад?) с процессором предыдущего поколения Z3735, который поставлялся с Windows 8 и Android (эдакий dual boot).<br></div> <h2 style="text-align: left" dir="ltr" trbidi="on">Комплектация</h2> <div style="text-align: left" dir="ltr" trbidi="on">В моём случае стандартная комплектация выглядела следующим образом:<br></div> <div style="text-align: left" dir="ltr" trbidi="on"> <ul> <li>собственно планшет (с наклеенной на экран транспортировочной плёнкой) <li>OTG-кабель <li>зарядное устройство с американской вилкой + адаптер для этой вилки <li>какая-то книжечка на китайском </li></ul></div>Отмечу, что при распаковке в центре экрана я обнаружил “пятно” овальной формы:<br><a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.06.17_IMG_0333_auto_resize.jpg.html" target="_blank"><img border="0" alt=" photo 2016.06.17_IMG_0333_auto_resize.jpg" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/th_2016.06.17_IMG_0333_auto_resize.jpg"></a><br>Его происхождение для меня осталось загадкой, и долго ломать голову над этим не получилось – “пятно” самостоятельно исчезло на следующий день без каких-либо последствий. Среди комментариев других покупателей мне попадались отзывы о похожем пятне (правда, без фотографий), так что, возможно, это что-то типичное (может быть, спецэффект из-за транспортировки самолётом в отсеке с пониженным давлением?).<br>Для типовых задач стандартного набора вполне достаточно, однако без футляра/чехла в дороге обойтись будет сложно. И в идеале хотелось бы иметь клавиатуру и некое подобие мышки (или тачпад).<br><a href="http://ali.pub/0x3z6" rel="nofollow" target="_blank">Стандартный чехол с клавиатурой и тачпадом</a> от официального представителя стоит порядка $29 (почти четверть планшета), и мне такая цена показалась завышенной. Поэтому после непродолжительных поисков и тщательных замеров своего устройства я решил рискнуть и выбрать альтернативный вариант – <a href="http://ali.pub/gvsfx" rel="nofollow" target="_blank">чехол с клавиатурой для планшетов iRULU за смешную цену порядка $7</a> (была какая-то распродажа невиданной щедрости).<br>Удивительно, но этот чехол подошёл как родной. Естественно, штекер клавиатуры немного торчит за периметр, и его приходится вытаскивать, чтобы разъём не повредился при неаккуратной перевозке, зато USB-разъём свободен. Без тачпада, конечно, не очень удобно, но при желании эту потребность можно удовлетворить Bluetooth-мышкой.<br>Если будете выбирать, рекомендую покупать упомянутый чехол с чёрной клавиатурой, т.к. белая клавиатура часто имеет дефект (скорее всего, производственный) с неработающей кнопкой INSERT (мелочь, а неприятно, и повод получить от продавца компенсацию :).<br>Наличие клавиатуры с физическим подключением позволяет зайти в UEFI-настройки (к этому приводит нажатие кнопки ESC при старте устройства) и подправить конфигурацию оборудования (что, как правило, нужно в очень редких случаях) или загрузиться с внешнего USB-носителя (что весьма полезно).<br> <h2>Windows 10 Home 64-bit</h2>Одной из краеуголных особенностей данного планшета является предустановленная операционная система Windows 10 Home в своей 64-битной версии. В моём случае я получил систему с английским интерфейсом (установить другие языки несложно, но я не стал с этим морочиться и тратить дисковое пространство, которого и так немного). Эффекта от 64-битности на данном оборудовании нет почти никакого, а места на диске и в оперативной памяти 64-битный код занимает больше. С этим придётся смириться.<br>К сожалению, 32-битную операционку установить на это устройство не получится, т.к. UEFI-загрузчик поддерживает только 64-битный код.<br> <h2>Альтернативные операционные системы</h2>В процессе изучения возможностей планшета я пробовал запускать другие операционные системы. Как вы могли бы уже догадаться, работать будут только 64-битные версии. Из того, что мне попалось под руку, запустились в live mode (т.е. без установки) все – Ubuntu 16.04, <a href="http://www.comss.ru/download/page.php?id=2922" rel="nofollow" target="_blank">Remix OS</a>, <a href="http://4pda.ru/forum/index.php?showtopic=128559" rel="nofollow" target="_blank">Android-x86 6.0 Marshmallow RC1 x64</a>.<br>Основная проблема с этими альтернативами – отсутствие в операционках драйверов для сенсорного экрана и для WiFi (с остальным можно было бы смириться).<br>Возможно, в будущем производитель созреет до перевыпуска этой модели с dual boot, а пока же придётся довольствоваться Windows 10, которая в целом работает весьма достойно.<br> <h2>Оборудование</h2> <p>В планшете в виде внутреннего накопителя установлена eMMC-схема, с которой, к сожалению, не умеют работать на низком уровне некоторые программы:</p> <ul> <li>Partition Wizard 9.1, запущенный с USB-флешки (bootable), не смог получить доступ к диску, и соотвественно, для манипуляций с разделами его можно использовать только при запуске в Windows; <li>CrystalDiskInfo (даже при запуске в Windows) тоже не заметил внутренний накопитель</li></ul> <p>Стоит отметить, что и оперативную память не смогла идентифицировать программа CPU-Z.<br>В добавок аккумулятор не сообщает системе об остатках своей энергии, что частично блокирует функциональность по определению оставшегося времени работы, однако в процентах заряд отображается более-менее корректно:<br><a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.08.15_Battery_info_crop.png.html" target="_blank"><img border="0" alt=" photo 2016.08.15_Battery_info_crop.png" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/th_2016.08.15_Battery_info_crop.png"></a><br>Впечатление об остальной аппаратной начинке у меня сложилось положительное:<br></p> <div style="text-align: left" dir="ltr" trbidi="on"> <ul> <li>яркости экрана на уровне 0% вполне достаточно, чтобы работать в помещении <li>чувствительность микрофона годится для видеоконференций (напр., в Skype) <li>громкость и чёткость динамиков не идеальна, но на достойном уровне </li></ul></div>Дополнительно энтузиасты 4PDA, разбиравшие планшет, сообщали о доступном пространстве под больший аккумулятор (<a href="http://4pda.ru/forum/index.php?showtopic=744060&st=60#entry51644351" rel="nofollow">harbor1</a>), а также о пустующем разъёме M.2 для SSD (<a href="http://4pda.ru/forum/index.php?showtopic=744060&st=80#entry51733585" rel="nofollow">harbor1</a>).<br> <h2>Итоги</h2>Если отложить выкрутасы Windows 10 в сторону, то сам по себе планшет – весьма достойное устройство при невысокой цене. Вряд ли стоит ожидать официального явления девайса народу на постсоветском пространстве, поэтому единственная возможность раздобыть его – интернациональные Интернет-магазины. AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-35363154648949134752016-07-19T01:37:00.001+03:002016-08-13T20:55:00.279+03:00Как удалить стандартные Windows Apps в Windows 10<p>Приблизительно месяц назад я стал обладателем планшета Jumper EZPad 4s с Windows 10 на борту (см. <a href="http://it-knowledge-base.blogspot.ru/2016/08/jumper-ezpad-4s-technical-review.html">обзор</a>), в котором внутренний диск (эдакая карта памяти) имеет размер всего ~28 ГБ (формально 32 ГБ). Предустановленная Windows 10 Home 64-bit English занимает более 10 ГБ, что оставляет совсем немного места для разгула фантазий, так что вскоре я озадачился чисткой системы от всякой-разной предустановленой ерунды. Почти сразу же я обнаружил, что задача эта не решается наскоком неподготовленным пользователем, даже если у него есть немалый опыт работы с Windows 7 и другими системами от Microsoft. Поэтому мне пришлось изучать народные премудрости на эту тему, найденные в этих ваших интернетах. О результатах спешу должить…</p> <a name='more'></a> <h2>IObit Uninstaller</h2> <p>Подсказка об этом волшебном приложении нашлась в комментариях к статье по теме <a href="http://www.howtogeek.com/224798/how-to-uninstall-windows-10s-built-in-apps-and-how-to-reinstall-them/" rel="nofollow" target="_blank">How to Uninstall Windows 10’s Built-in Apps (and How to Reinstall Them)</a> – мол, такая замечательная помощница, умеет удалять стандартные приложения Windows.</p> <p>После недолгих колебаний я решил проверить эту функциональность и установил <a href="http://www.iobit.com/en/advanceduninstaller.php" rel="nofollow" target="_blank">IObit Uninstaller 5.4.0.119</a>. Приложение действительно удобное, умеет показывать Windows Apps в отдельном месте и позволяет их удалить, в добавок предлагая почистить и реестр после этого. Классно?</p> <p>К сожалению, как выяснилось, эта утилита удаляет Windows Apps только для текущего пользователя (точнее для пользователя, под которым запущен IObit Uninstaller, а запускаться он позволяет только с правами администратора). Фактически таким образом можно почистить меню пуск только для супер-пользователей. Что делать остальным пользователям, разработчики, видимо, пока не придумали.</p> <p>Естественно, я эту поделку удалил, и вскоре совершенно случайно обнаружил, что это чудо оставило за собой хвост в виде сервиса LiveUpdate. Мелочь, а неприятно.</p> <p>Выкосить сей хвост надлежит таким образом (см. <a href="http://www.ghacks.net/2013/11/03/remove-liveupdate-exe-computer/" rel="nofollow" target="_blank">How to remove LiveUpdate.exe from your computer</a> – руководство трёхлетней давности, а воз и ныне там):</p> <ol> <li><code>services.msc</code>: остановить и отключить <code>Live Update</code> (сервисов с таким неконкретным именем в вашей системе может быть несколько – будьте внимательны) <li>Удаляем запись о сервисе – в командной строке (с правами администратора): <code>sc delete LiveUpdateSvc</code> <li>Удаляем каталог с сервисом.</li></ol> <p>После этого про IObit Uninstaller можно забыть.</p> <h2>PowerShell</h2> <p>Большинство руководств по чистке стандартных приложений основывается на использовании PowerShell (см. <a href="https://habrahabr.ru/post/276059/" rel="nofollow" target="_blank">habrahabr.ru</a>, <a href="http://www.howtogeek.com/224798/how-to-uninstall-windows-10s-built-in-apps-and-how-to-reinstall-them/" rel="nofollow" target="_blank">howtogeek.com</a>, <a href="http://superuser.com/questions/942418/how-do-you-forcefully-remove-apps-in-windows-10" rel="nofollow" target="_blank">superuser.com</a>, <a href="http://www.tenforums.com/tutorials/4689-apps-uninstall-windows-10-a.html#option2" rel="nofollow" target="_blank">tenforums.com</a>, <a href="http://winaero.com/blog/how-to-remove-all-bundled-apps-in-windows-10/" rel="nofollow" target="_blank">winaero.com</a>):</p> <ul> <li>удалить приложения для конкретного (текущего) пользователя с помощью <code>Get-AppXPackage</code> и <code>Remove-AppXPackage</code> <li>удалить “исходники” приложений так, что для новых профилей пользователей они не будут устанавливаться, с помощью <code>Get-AppXProvisionedPackage</code> и <code>Remove-AppXProvisionedPackage</code></li></ul> <p>Прежде, чем упражняться с командной строкой, стоит отключить автоматическое обновление (скачивание?) пользовательских приложений: в ветке реестра <i>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate</i> необходимо для DWORD-переменной <code>AutoDownload</code> задать значение <strong>2</strong> (два).</p> <p>Некоторые стандартные приложения (Cortana, Edge и т.п.) удалить нижеприведенными способами не получится.</p> <h3>Чистка для новых профилей</h3> <p>Обычно сносят все приложения, кроме Windows Store. На мой взгляд, это имеет смысл, т.к. через магазин все приложения потом можно вернуть обратно.</p> <p>Для удаления <strong>всего, кроме Windows Store</strong>, в командной строке PowerShell (с правами администратора):</p> <p><code>Get-AppXProvisionedPackage –online | where-object {$_.packagename –notlike “*store*”} | Remove-AppXProvisionedPackage -online</code></p> <p>Если и магазин вам не нужен (т.е. вы хотите удалить <strong>все стандартные приложения</strong>), то среднюю часть “конвеера” можно убрать, и команда будет короче:</p> <p><code>Get-AppXProvisionedPackage –online | Remove-AppXProvisionedPackage -online</code></p> <p>Если вам хочется <strong>удалить только некоторые приложения</strong>, то это сделать можно в интерактивном режиме (<a href="http://superuser.com/a/1061020/256121" rel="nofollow" target="_blank">отсюда</a>):</p> <p><code>Get-AppXProvisionedPackage -Online | Out-GridView -PassThru | Remove-AppXProvisionedPackage -Online</code></p> <h3>Чистка существующих профилей</h3> <p>К моему удивлению, после предыдущего шага я не ощутил ожидаемого облегчения в существующих профилях пользователей – плитки большинства стандартных приложений были на месте, и при этом работали.</p> <p>В интернетах предлагается быстрое решение в виде команды <strong>для чистки всего, кроме Windows Store</strong>:</p> <p><code>Get-AppXPackage -AllUsers | where-object {$_.name -notlike “*store*”} | Remove-AppXPackage</code></p> <p>К сожалению, в моём случае это не сработало – кроме текущего пользователя фактически никого команда не затронула. Возможно, из-за того, что для этого пользователя ранее я запускал IObit Uninstaller с той же целью.</p> <p>Использование параметра <code>–User username</code> вместо <code>–AllUser</code> тоже как-будто не помогало. У меня, признаться, сложилось впечатление, что <code>Remove-AppXPackage</code> действует в контексте текущего пользователя, а все “умельцы”, предлагающие этой команде передавать других или даже всех пользователей, занимаются копипастом без реальной проверки.</p> <p>Окончилось дело тем, что я логинился в профиль каждого пользователя и чистил приложения в интерактивном режиме:</p> <p><code>Get-AppXPackage | Out-GridView -PassThru | Remove-AppXPackage</code></p> <p>Таким образом я сохранил калькулятор :)</p> <h2>Результаты</h2> <p>Для быстрой проверки результатов применения вышеприведенной методики достаточно глянуть в “<code>C:\Program Files\WindowsApps</code>”: если этот каталог содержит более 600 МБ “добра” от Microsoft, значит, Вы, скорее всего, забыли выкосить приложения из какого-то профиля пользователя локально.</p> <p>В моём случае создание нового профиля и последующий логин показывал, что большинство стандартных приложений на месте (даже “солитёр”), хотя в живых должен был остаться только “магазин”, который честно высвечивается в списке при выполнении команды <code>Get-AppXProvisionedPackage -Online</code>. Правда, некоторые из этих приложений (по-моему, только те, которые можно деинсталлировать обычным образом) имеют битые “плитки” – запустить невозможно, и плитка имеет “невнятное название” (напр.,”<code>@{Microsoft.BingNews_4.6.169.0_…</code>”). Впрочем, допускаю, что набор плиток для новых пользователей берётся из стандартного файла, и система просто не умеет обрабатывать ситуации, когда каких-то стандартных приложений нет в наличии на момент создания нового профиля.</p> <p>Что делать? Для ответа на данный вопрос следует понять, что пока какой-либо пользователь имеет какое-либо приложение установленным, оно не будет удалено из “свалки добра”. Соответственно, заходим к каждому лично и в интерактивном режиме ищем залипшее приложение.</p> <p>Вот так выглядит “свалка” после чистки, когда в строю остались Windows Alarms, Calculator, Camera, Maps и Store:</p> <p><a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.07.20-WindowsApps.png.html" target="_blank"><img border="0" alt=" photo 2016.07.20-WindowsApps.png" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/th_2016.07.20-WindowsApps.png"></a></p> <p>Насколько я понимаю, все эти стандартные приложения появились ещё в Windows 8, и получается, что до сих пор нет удобного инструментария, чтобы с ними работать так, как хочется пользователям. Перечисленная выше возня с командной строкой больше напоминает стиль взаимодействия с Linux-подобными системами.</p> <p>Ссылки в тему:</p> <ul> <li><a href="http://dws.wzor.net/" rel="nofollow" target="_blank">Destroy Windows Spying</a> (если хочется избавиться не только от стандартных приложений) <li><a href="https://msdn.microsoft.com/ru-RU/library/windows/apps/windows.management.deployment.packagemanager.aspx" rel="nofollow" target="_blank">PackageManager Class</a> (документация для разработчиков перспективной утилиты, из которой становится понятно, что удобных утилит не было, нет и не будет)</li></ul>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-32809756309164567912016-07-11T20:50:00.001+03:002016-07-11T20:57:49.530+03:00Установка DD-WRT на D-Link DIR-615<p>Попался мне недавно в руки машрутизатор (роутер) DIR-615, который несколько лет назад пострадал от удара молнии поблизости. Примечательно, что устройство и прочее оборудование в доме во время той грозы были отключены от электросети, но сетевой кабель (использовалась ADSL-линия) не был извлечён из модема. Казалось бы, при таком раскладе никакие грозы не страшны. Однако удар молнии поблизости (на расстоянии не менее 100 метров от дома) навёл в близлежащих проводах ЭДС достаточной силы, чтобы сжечь ADSL-модем (первая линия от Интернета) и вывел из строя роутер, соединённый с ним UTP-кабелем. Впрочем для последнего последствия оказались нелетальными – отказал только UPLINK-разъём (что ожидаемо) и все Ethernet-порты, которые повредились частично (по некоторым из них сигнал как-будто был, но фактически связь не работала). Скорее всего выгорел чип, отвечающий за Ethernet, что и сопровождалось соответствующими спецэффектами. Примечательно, что WiFi-функциональность у роутера оказалась вполне годной, поэтому у меня и возникла идея приспособить его для расширения зоны покрытия Wireless-сети в доме. Об этом и пойдёт рассказ…</p> <a name='more'></a> <p>Изначально в роутере на железках типа E4 (т.н. Hardware Version) крутилась заводская прошивка с версией 5.10RU (Thu, 06 May 2010). Недолго порыскав в админ-панели, я убедился, что повторителем в таких одёжках устройству не быть. Энтузиасты в Интернетах советовали ставить альтернативные прошивки, напр., DD-WRT. </p> <h2>Смена прошивки DIR-615 E4 на DD-WRT</h2> <p>Поиск в <a href="http://www.dd-wrt.com/site/support/router-database" rel="nofollow" target="_blank">Router Database</a> вывел всю нужную информацию. В качестве руководства предлагают курить страничку <a href="http://dd-wrt.com/wiki/index.php/D-Link_DIR-615_rev_E3" rel="nofollow" target="_blank">D-Link DIR-615 rev E3</a> (получается, E3 и E4 в этом плане почти идентичны), пошаговые инструкции в которой написаны вполне однозначно. Отмечу лишь нюансы:</p> <ul> <li>В моём случае подсоединиться к роутеру с помощью Ethernet-кабеля было невозможно, что, естественно, вызвало у меня определённые опасения превратить устройство в “кирпич”. Забегая вперёд, скажу, что обновление прошивки через WiFi-соединение в моём случае прошло без проблем – всё случилось с первого раза. <li>В упомянутом руководстве рекомендуют подправить в прошивке т.н. magic hardware code. В моём случае этот код необходимо было уточнить в оригинальной прошивке <a href="http://ftp.dlink.ru/pub/Router/DIR-615/Firmware/RevE/DIR615E4_FW511RUB03beta02.bin" rel="nofollow" target="_blank">DIR615E4_FW511RUB03beta02.bin</a>, и он выглядел как <code>AP99-AR7240-RT-091105-05</code>.</li></ul> <h2>“Повторитель” на DIR-615 E4</h2> <p>К сожалению, роутер DIR-615 E4 даже с прошивкой DD-WRT не умеет превращаться в полноценный WiFi-повторитель. Если бы и главный роутер был той же системы, то можно было бы организовать <a href="http://rudkovskij.com/articles/?p=234" rel="nofollow" target="_blank">мост с помощью WDS</a>, но в моём случае Интернет раздавал ASUS, и дружить с D-Link’ом он не захотел (настроить WDS-мост я даже не пробовал, т.к. доступа к админ-панели ASUS’а у меня нет).</p> <p>Режим <a href="https://www.dd-wrt.com/wiki/index.php/Repeater_Bridge" rel="nofollow" target="_blank">Repeater Bridge</a> для роутера DIR-615 E4 не поддерживается – такого пункта нет в конфигурации.</p> <p>Сначала я возился с режимом <a href="https://www.dd-wrt.com/wiki/index.php/Client_Bridged" rel="nofollow" target="_blank">Client Bridged</a>, но все эксперименты заканчивались ошибкой с дублированием IP-адресов. Возможно, я что-то упустил, но, скорее всего, на ASUS’е (главном роутере) тоже надо что-то подрихтовать.</p> <p>В итоге из доступных мне остался только <a href="https://www.dd-wrt.com/wiki/index.php/Client_Mode_Wireless" rel="nofollow" target="_blank">Client Mode</a>. Из коробки этот режим поддерживает только проводных клиентов, что в моём случае совсем неактуально, т.к. Ethernet-порты не работают. Но фишка в том, что как только этот режим активирован, роутер перестаёт быть беспроводной точкой доступа. Соответственно, прежде всего надо завести Virtual Wireless Interface.</p> <p>Схема такая:</p> <ul> <li>Создать новый Virtual Interface для беспроводного подключения, и применить настройки. После этого шага к роутеру можно подсоединиться через эту виртуальную сеть. <li>Дальше делаем то, что в руководстве по <a href="https://www.dd-wrt.com/wiki/index.php/Client_Mode_Wireless" rel="nofollow" target="_blank">Client Mode</a>, а именно: <ol> <li>Настраиваем подключение к главному роутере на страничках Wireless -> Basic Settings и Wireless -> Wireless Security (нажимаем Save). <li>На страничке Wireless -> Basic Settings меняем режим на Client Mode (нажимаем Save). <li>Проверяем, чтоб работал DHCP-сервер: страничка Setup -> Basic Setup (нажимаем Save, если надо). <li>На той же страничке меняем IP-адрес роутера так, чтобы он оказался в отдельной сети (я ставил 192.168.2.2, т.к. главный роутер был с адресом 192.168.1.1). <li>Gateway IP должен указывать на наш роутер (у меня – 192.168.2.2). <li>На страничке Security –> Firewall можно отключить SPI Firewall. <li>Проверьте, чтобы роутер был в режиме GATEWAY (если оставить режим ROUTER, то связи ни с главной сетью, ни с Интернетом, скорее всего, не будет). <li>Теперь можно нажимать Apply и ждать, пока устройство перезапустится.</li></ol></li></ul> <p>После всех этих настроек роутер будет рулить отдельной сетью с выходом в Интернет через главный роутер.</p> <p>Из “главной” сети компьютеры дополнительной сети, к сожалению, не видны (через NetBIOS и по IP-адресам), но в моём случае это было необязательно.</p> <p>Ссылки в тему:</p> <ul> <li><a href="https://www.dd-wrt.com/wiki/index.php/Telnet/SSH_and_the_Command_Line" rel="nofollow" target="_blank">Telnet/SSH and the command line</a> (в моем случае ни Telntn, ни SSH не понадобились) <li><a href="https://www.dd-wrt.com/wiki/index.php/Wlan_Repeater" rel="nofollow" target="_blank">Wlan Repeater</a> <li><a href="https://www.dd-wrt.com/wiki/index.php/Multiple_WLANs" rel="nofollow" target="_blank">Multiple WLANs</a> <li><a href="http://www.dd-wrt.com/wiki/index.php/Linking_Subnets_with_Static_Routes" rel="nofollow" target="_blank">Linking Subnets with Static Routes</a> <li><a href="https://www.dd-wrt.com/wiki/index.php/WDS_Linked_router_network" rel="nofollow" target="_blank">WDS Linked router network</a></li></ul>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-66465059586744200842016-03-30T00:48:00.000+03:002016-04-25T06:16:50.747+03:00Как избавиться от навязчивой рекламы неизвестного происхождения в Android<div dir="ltr" style="text-align: left;" trbidi="on">
Я пользуюсь устройствами под управлением системы Android почти два года, и периодически сталкиваюсь с задачами, решение которых требует существенных усилий (в основном для поиска решения в Интернете). Одна из подобных проблемок вылезла на днях в виде периодически появляющейся рекламы на весь экран. Менее назойливо выглядела реклама, появляющаяся в области уведомлений. Как правило весь этот спам вёл, как ни странно, в Google Play на странички с разными приложениями, в числе которых оказались:
<br />
<ul>
<li>
<a href="https://play.google.com/store/apps/details?id=com.hermes.superb.booster" rel="external nofollow" target="_blank">SuperB Cleaner (Boost & Clean)</a>
</li>
<li>
<a href="https://play.google.com/store/apps/details?id=com.hola.launcher" rel="external nofollow" target="_blank">Hola лаунчер - Простой Быстрый</a>
</li>
<li>
<a href="https://play.google.com/store/apps/details?id=com.onegogo.explorer" rel="external nofollow" target="_blank">Super File Manager (transfer)</a>
</li>
<li>
<a href="https://play.google.com/store/apps/details?id=com.dianxinos.dxbs" rel="external nofollow" target="_blank">DU Battery Saver&батареядоктор</a>
</li>
<li>
<a href="https://play.google.com/store/apps/details?id=com.qihoo.security" rel="external nofollow" target="_blank">360 Security Aнтивирус Очистка</a>
</li>
<li>
<a href="https://play.google.com/store/apps/details?id=com.fshareapps.android" rel="external nofollow" target="_blank">4 Share Apps - передача файлов</a>
</li>
</ul>
Список не полный, т.к. мне было лень забивать свои закладки этими программами (полагаю, их перечень произвольный). Тем не менее, присутствие среди пациентов антивируса наводит на мысль, что вовсе не вирус в моём устройстве поселился (для конкретики добавлю, что всё это наблюдалось на планшете Senkatel Maximus T1001).
<br />
Установка бесплатной версии <a href="https://play.google.com/store/apps/details?id=com.drweb" rel="external nofollow" target="_blank">Dr.Web Light</a> и полное сканирование, к сожалению, не позволили уточнить виновника торжества. Я не стал экспериментировать с вариантов от Kaspersky, а отправился за народной мудростью к виртуальным массам в Интернете.<br />
<a name='more'></a><br />
В первой десятке ссылок, выданной по моим запросам, оказался форум 4pda.ru - <a href="http://4pda.ru/forum/index.php?showtopic=595445" rel="external nofollow" target="_blank">Инструкции и решение вопросов с рекламой на экране и статус баре, с смс-вымогателями и блокировщиками всех видов</a>. Упомянутая там программа <a href="http://4pda.ru/forum/index.php?showtopic=241453&st=0#entry7674095" rel="external nofollow" target="_blank">LBE Security Master</a> (<a href="https://play.google.com/store/apps/details?id=com.lbe.security" rel="external nofollow" target="_blank">ссылка на Google Play</a>) почему-то оказалась несовместимой с моими устройствами. Допускаю, что прочие приведенные советы (включая использование антивирусов) полезны, но в моём случае эффекта не имели (или были неприменимы).
<br />
Дальнейшие поиски выявили три основных направления для победы над нежелательной рекламой:
<br />
<ol>
<li>Сделать полный сброс устройства.
</li>
<li>Вспомнить, какие приложения были недавно установлены, и удалять их (по одному?) до полного просветления.
</li>
<li>Установить брандмауэр (межсетевой экран, файрвол, firewall) и с его помощью определить, какое приложение ведёт себя некрасиво.
</li>
</ol>
Первый подход, на мой взгляд, чреват потерей кое-каких (важных?) настроек. И если приложения не будут затронуты, то не факт, что экзекуция будет успешной.
<br />
Понятно, что второй подход весьма трудоёмкий (если в системе не ведётся журнал активности), т.к. вспомнить, что устанавливалось как правило проблематично (список недавних обновлений показывает соответствующая страничка в Google Play Market).
<br />
В моём случае для третьего подхода нужен firewall, который не требует root-прав. Ранее я уже имел дело с некоторыми подобными программами (напр., <a href="https://play.google.com/store/apps/details?id=app.greyshirts.firewall" rel="external nofollow" target="_blank">Брандмауэр без Root</a>), и оказалось, что стабильной работой не все могут похвастаться. В этот раз выбор пал на <a href="https://play.google.com/store/apps/details?id=eu.faircode.netguard" rel="external nofollow" target="_blank">NetGuard - no-root firewall</a>, который обновлялся недавно (22.03.2016) и места много не требует (всего ~1.7 МБ).
<br />
После активации VPN (для этого надо явное подтверждение от пользователя) достаточно было подождать появления рекламной заставки от неустановленного приложения, и после этого в окне NetGuard сортировка по объёму использованных данных явно указывала на источники ненормативной лексики:
<br />
<a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.03.28_NetGuard_sorted_by_size_cr.png.html" target="_blank"><img alt=" photo 2016.03.28_NetGuard_sorted_by_size_cr.png" border="0" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/2016.03.28_NetGuard_sorted_by_size_cr.png" /></a>
<br />
Признаться, и до этого у меня были подозрения на "Скриншот Легкий Про" (он же <a href="https://play.google.com/store/apps/details?id=com.fusianart.takescreenshots" rel="external nofollow" target="_blank">Perfect Screenshot Capture</a>), т.к. эта поделка добавила себя в автозапуск (что видно, напр., в SD Maid), и упорно сидела в фоновых запущенных процессах. Но firewall позволил мне получить однозначные доказательства.
<br />
После включения дополнительных настроек в NetGuard обнаружение наглых приложений становится более оперативным - информация о них выводится в области уведомлений:
<br />
<a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.03.28_NetGuard_additional_settings_cr.png.html" target="_blank"><img alt=" photo 2016.03.28_NetGuard_additional_settings_cr.png" border="0" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/th_2016.03.28_NetGuard_additional_settings_cr.png" /></a>
<br />
Так выглядят подробности сетевых обращений:
<br />
<a href="http://s683.photobucket.com/user/Anton-K/media/it-knowledge-base_blogspot_com/2016.03.28_NetGuard_com.fusianart.takescreenshots.png.html" target="_blank"><img alt=" photo 2016.03.28_NetGuard_com.fusianart.takescreenshots.png" border="0" src="http://i683.photobucket.com/albums/vv196/Anton-K/it-knowledge-base_blogspot_com/th_2016.03.28_NetGuard_com.fusianart.takescreenshots.png" /></a>
<br />
После удаления "захватчика экрана" реклама перестала появляться.
<br />
Примечательно, что до установки этого приложения мне казалось, что стандартное сочетание кнопок (ВКЛ. + кнопка уменьшения громкости, зажатые одновременно на 2+ секунды) не работает на Senkatel Maximus T1001.
<br />
То ли я неправильно что-то нажимал ранее, то ли проблемное приложение по ходу пьесы что-то починило, но стандартная комбинация кнопок отныне делает отличные скриншоты (без полосы с регулятором громкости), хотя и с противным звуком "затвора камеры".
<br />
Что же касается рекламы в приложениях для Android, то, дабы у читателей не сложилось превратного мнения, я вовсе не считаю, что она должна быть искоренена. Я прекрасно осознаю, что показ рекламы - основа монетизации многих приложений из Google Play Market, и я с пониманием отношусь к её появлению во время работы приложения (в ограниченной области в пределах его окна). Но, по-моему, создатели приложений должны знать меру...
</div>
AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-56025280392635522812015-04-11T22:44:00.001+03:002015-04-11T22:45:37.837+03:003DMark 11 vs. NVIDIA GeForce 610M: версия драйвера имеет значениеНа днях прочитал слухи о грядущем выходе DirectX 12, который сможет работать быстрее даже на старом оборудовании, и решил заценить, насколько производительна моя текущая видеосистема на NVIDIA GeForce 610M. В компьютерные игры я давно не играю, поэтому их быстродействие для моих задач не имеет особого значения. Не мудрствуя долго, я остановил свой выбор на <a href="http://www.futuremark.com/benchmarks/3dmark11" rel="external nofollow" target="_blank">3DMark 11</a> в качестве графического арбитра.<a name='more'></a><p>Итоговая табличка содержит два результата запуска 3DMark 11 на одной и той же системе (Windows 7 x64 SP1) с двумя версиями драйверов для видеокарты:</p> <table border="1"> <tbody> <tr> <td>Версия драйвера NVIDIA</td> <td>8.17.12.9593</td> <td>9.18.13.4788</td> </tr> <tr> <td>Graphics Score</td> <td> <p align="center">576</p> </td> <td> <p align="center">579</p> </td> </tr> <tr> <td>Physics Score</td> <td> <p align="center">2601</p> </td> <td> <p align="center">2852</p> </td> </tr> <tr> <td>Combined Score</td> <td> <p align="center">585</p> </td> <td> <p align="center">591</p> </td> </tr> <tr> <td>3DMark Score</td> <td> <p align="center">P653</p> </td> <td> <p align="center">P659</p> </td> </tr> <tr> <td>Link</td> <td> <p align="center"><a href="http://www.3dmark.com/3dm11/9674314" rel="external nofollow" target="_blank">9674314</a></p> </td> <td> <p align="center"><a href="http://www.3dmark.com/3dm11/9676096" rel="external nofollow" target="_blank">9676096</a></p> </td> </tr> </tbody> </table> <p>На глаз разница в быстродействии была незаметно - всё серъёзно тормозило. Однако числа не врут - обновление видеодрайвера имеет значение :)</p><div class="PoweredByWebStory" style="margin-top:15px;margin-bottom:10px"><a target="_blank" href="http://webstory.my/cs_invite.php?u=4907"><img src="http://image.webstory.my/WebStoryLogo20.png" alt="Chrysanth WebStory" style="border:0;" /></a> Published by <a target="_blank" href="http://webstory.my/cs_invite.php?u=4907">WebStory</a></div>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0tag:blogger.com,1999:blog-8717730635393617605.post-91934369354888146202015-02-08T18:33:00.001+03:002015-02-08T19:20:22.142+03:00Обновление прошивки для Nexx NRM-51<p>В арсенале наших электронных мобильных устройств есть штуковина Nexx NRM-51 (в форм-факторе крупного смартфона), которую сложно назвать одним словом - оно поможет и книги читать, и видео просматривать, и музыку слушать. Эдакий универсальный медиа-плеер.</p> <p>Пользовались мы им редко - в основном для просмотра кино при поездках, когда доставать ноутбук было неудобно. Иногда я читал на нём книги. Но большую часть времени устройство лежало без дела в одиночестве.</p> <p>Когда я взял эту штуку собой в очередное путешествие, я с неодобрением заметил, что характер у девайса испортился - включалось не с первого раза, зависало при попытке открытия книг и т.п. Кнопки для быстрого сброса в устройстве не предусмотрено, поэтому я отложил его в сторонку до лучших времён.</p> <p>Сегодня лучшие времена таки наступили, и я без долгих раздумий решил перепрошить плеер. Это мероприятие в предыдущий раз я осуществлял года четыре назад, и с тех пор воспоминания об особенностях действа поугасли, поэтому, наступив опять на грабли, я осознал, что пора бы сей процесс задокументировать, ибо интуиция мне подсказывает, что не в последний раз я с этой железякой схлестнулся.</p><a name='more'></a><h2>Где взять прошивку для Nexx NRM-51?</h2> <p>Насколько я понимаю, компания Nexx скоропостижно прекратила своё существование (думаю, обладателей её поделок это нисколько не удивило), и надежд на осовременивание своих устройств можно не питать.</p> <p>Тем не менее, поскольку в основе устройства лежит достаточно распространённая платформа, на рынке существуют аналоги, для которых можно найти более-менее удачные прошивки. Когда я шаманил с железякой в предыдущий раз, я использовал прошивку, предоставленную компанией <a href="www.elonex.com" rel="external nofollow" target="_blank">Elonex</a> (ныне здравствующей) для её продукта <a href="http://www1.elonex.com/support/products/ebook/500eb-firmware.shtm" rel="external nofollow" target="_blank">Elonex eBook 500EB</a>. Предлагаемый файл <code>500EB-FW-1118a.zip</code> в ноябре 2011 года содержал такую версию:</p> <table border="1"> <tbody> <tr> <td>Model No:</td> <td>500EB</td> </tr> <tr> <td>Firmware Version:</td> <td>500EB-05.04.01</td> </tr> <tr> <td>RMSDK version:</td> <td>9.1.28890</td> </tr> </tbody> </table> <p>В этот раз я его же и буду использовать - прошивка за прошедшее время показала себя достаточно устойчивой. Её же советуют и на <a href="http://4pda.ru/forum/index.php?showtopic=237403&st=0#entry8529342" rel="external nofollow" target="_blank">форуме 4pda.ru</a>.</p> <p>У этой прошивки только две особенности, которые я не считаю недостатками:</p> <ul> <li>отсутствует управление G-сенсором (наконец-то девайс не тужится сменить ориентацию страниц при случайном повороте)</li> <li>нет русского языка (насколько я понимаю, прошивка предназачена для устройств, поставляемых только в западную Европу)</li> </ul> <h2>Установка драйверов для LiveSuite</h2> <p>Для работы с устройством в низкоуровневом режиме нужны USB-драйвера, которые идут в упомянутом выше архиве.</p> <p>К сожалению, у меня не получилось установить их для Windows 7 64-bit SP1, но для Windows XP 32-bit SP3 всё работает согласно инструкции.</p> <h2>Что делать, если устройство не подаёт признаков <a id="dead_device" name="dead_device" classtype="bookmark"></a>жизни?</h2> <p>Из-за того, что я невнимательно отнёсся к установке драйверов на предыдущем шаге для Windows 7, LiveSuite перевела его в update mode без шансов на успех - оно не включалось, несмотря на уговоры (экран был черным и т.п.).</p> <p>К счастью, у меня был рабочий компьютер с Windows XP, который и позволил мне реанимировать железяку. Судя по отзывам, если Windows XP у вас под рукой нет, может пригодиться виртуализация ОСи, напр., с помощью VMware.</p> <p>Схема такая (найдена на <a href="http://4pda.ru/forum/index.php?showtopic=237403&view=findpost&p=8364591" rel="external nofollow" target="_blank">форуме 4pda.ru</a>):</p> <ol> <li>Найти компьютер с Windows XP 32-bit.</li> <li>Запустить LiveSuite, выбрать образ и нажать SysUpdate => появится предупреждение "Not found device !" (не нажимайте кнопку OK).</li> <li>Берём наше коматозное устройство:</li> <li style="LIST-STYLE-TYPE: none"> <ul> <li>зажимаем и держим нажатой кнопку "Назад" (правая кнопка-линия)</li> <li>зажимаем и держим нажатой 3 секунды кнопку Power</li> <li>отпускаем кнопку Power на 3 секунды</li> <li>делаем 3 коротких нажатия на кнопку Power</li> <li>отпускаем кнопку "Назад"</li> </ul> </li> <li>Подключаем устройство с помощью кабеля к компьютеру и устанавливаем драйвер с ручным выбором папки с ним.</li> <li>LiveUpdate начинает прошивку (на вопросы о форматировании можно отвечать произвольно):<br/> <a href="http://www.ljplus.ru/img4/k/a/kanvas/Nexx_NRM-51_LiveUpdate_SysUpdate.png" target="_blank"><img border="0" src="http://www.ljplus.ru/img4/k/a/kanvas/th_Nexx_NRM-51_LiveUpdate_SysUpdate.png" width="200" height="65"/></a></li> <li>Подождите пока устройство закончить самонастройку, перегрузится (возможно, несколько раз) и покажет обычный экран с пустым списком книг.</li> </ol> <h2>Прошивка с помощью LiveSuite</h2> <p>Во вложенной в архив инструкции процесс описан туманно и запутанно. У меня даже сложилось впечатление, что он не проверен на Windows 7 64-bit.</p> <p>Если вам удалось превратить девайс в "кирпич", не растраивайтесь и попробуйте способ изложенный <a href="#dead_device">выше</a>.</p><div class="PoweredByWebStory" style="margin-top:15px;margin-bottom:10px"><a target="_blank" href="http://webstory.my/cs_invite.php?u=4907"><img src="http://image.webstory.my/WebStoryLogo20.png" alt="Chrysanth WebStory" style="border:0;" /></a> Published by <a target="_blank" href="http://webstory.my/cs_invite.php?u=4907">WebStory</a></div>AntonKhttp://www.blogger.com/profile/18108802793227258144noreply@blogger.com0