Wednesday 22 February 2023

Буква - стрОчная или строчнАя

Я с детства помню что есть большие буквы и маленькие буквы. Большие называются еще заглавными или прописными. А маленькие называтся строчными. И всю свою жизнь я их путаю - где прописные, а где строчные. Потому что в детстве мы учились прописи, русскому рукописному письму, в котором большинство букв строчные.

По прошествии лет мне помогает такое многословное правило. Раньше книги писали от руки. И писали все буквы и слова по-строчно. А еще писали большие. А большие они потому большие, что их надо не только писать, но и выписывать, или прописывать, чтобы было видно, что они большие. Вот потому и прописные.

А вот все остальные - строчные. Для меня они всегда были стрОчные, с ударением на первый слог. Однажды от лингвиста я услышал строчнЫе, с ударением на второй слог. И это резануло мой слух и сильно удивило.

Прошло какое-то время. Я забыл об этом. И в какой-то момент, гораздо позже, в разговоре всплыло. Моих собеседников тоже удивило ударение на втором слоге.

Я решил поискать информацию о правильном ударении в словах строчный, строчная, строчное. Но слов много о понимания мало. Вот только несколько из них:

Как правильно? СтрочнАя или стрОчная буква?
https://kak-pravilno-plus.ru/2021/08/03/как-правильно-строчная-или-строчная-б/

Как правильно: строчнАя буква или стрОчная буква?
https://rus.stackexchange.com/questions/26274/Как-правильно-строчнАя-буква-или-стрОчная-буква

«СтрочнАя» или «стрОчная» – какое правильное ударение?
https://gramota.me/strochnaya-ili-strochnaya-kakoe-pravilnoe-udarenie

На https://gramota.ru ответы или категоричные или расплывчатые.

Вот еще две ссылки:

https://ru.wiktionary.org/wiki/строчный

https://ru.wiktionary.org/wiki/строчной

Вот еще пара курьезных статей на вики.

https://ru.wikipedia.org/wiki/Строчная_развёртка

Хотя мы все произносим с ударением на первом слоге, но... Непонятно, о какой развертке писал автор: строчной или строчной.

https://ru.wikipedia.org/wiki/Вышивка_бисером

В одном параграфе используются и "строчный шов" и "строчной шов".

Ну вот бесит меня, когда нет вариантов нормального объяснения.


Sunday 8 January 2023

щи модерн минор

Для русского языка не характерны очень короткие слова. "Щи" из их числа. Происхождение его туманно. Современные лингвисты рассматривают несколько гипотез, и здесь я скажу только об одной. Слово "щи", или "шти" (то ли диалектная, то ли устаревшая форма), восходят к древнему слову "съто", означающему "пропитание", "нечто сытное". Здесь хотелось бы вспомнить и другое русское слово, "досыта", означающее "до сыта", до сытости, до насыщения, вдоволь. Возможно и существует какая-то родственная связь и оба слова имеют общее происхождение, но... как я уже сказал, этимология слова имеет несколько гипотез (а я упомянул только одну), а связь не очень достоверна, а я, в силу своего дилетантства, не могу авторитетно заявить - оно "так", или "не так", или "может быть". Поэтому оставим лингвистические изыски и перейдем к кулинарным.

И так - щи модерн минор.

На среднем огне бульон будет готов примерно в течение часа. Переливаем через сито в другую посуду и продолжаем варить, положив капусту и картошку. Капусту рубим мелко, картошку режем крупно.




 

А тем временем... Мне нравится этот оборот, он часто звучит в сериале "Секс в большом городе". Сериал не смотрел, слышал только краем уха, и край уха запомнил, а нейронные связи создали положительные эмоции на речевой оборот.

А тем временем, на среднем огне разогреваем на сковороде подсолнечное масло, мелко режем лук, морковь и болгарский перец и отправляем в уже прогретую посуду. Последовательность у каждого своя. Моя - лук, морковь, чуть погодя, перец (лук и морковь к тому времени должны дать свой сок). Затем кидаем мелко рубленный чеснок и перчим душистым перцем. Тщательно перемешиваем, даем несколько секунд чесноку "испустить" дух, затем накрываем крышкой, переводим на слабый огонь и жарим (пассеруем) еще некоторое время (1-2 минуты). Затем огонь выключаем.

На следующем фото эдакое "дифлопе" результата.


 

А тем временем, капуста и картошка почти или уже готовы. По их готовности перекладываем пассеровку из сковороды в бульон. Солить в самом конце готовки - 1 столовая ложка на 3 литра. Огонь выключить. Блюдо готово: разливаем по тарелкам, добавляем сметану. Хлеб - серый, белый, черный, по вкусу. Можно чего-нибудь еще и... наслаждаемся!


 

Экспериментальная фича
остывшие щи с утра весьма хороши

Фронтенд
капуста, картофель, лук, морковь, болгарский перец, чеснок 

Бекенд
вода, суповой набор для бульона, душистый перец, соль

На развитие
зеленый лук, укроп, петрушка, базилик, помидоры (все уже испытанные ранее), свеклка (привет, борщ), сельдерей (знаю, как он хорош в салатах, но ни разу не пробовал в супах), кинза, щавель

На системный анализ
отказаться от пассерования в пользу полной варки всех продуктов

На бизнес-анализ
сельдерей, кинза


Sunday 11 September 2022

Две поллитры, чекушка и полста

В Библии, в Книге пророка Даниила, упоминается таинственная фраза "Мене, мене, текел, упарсин", начертанная на стенах царского дворца. Пророк истолковал ее как "взвешен, измерен и признан негодным" [1]. Это моя сокращенная интерпретация толкования, несколько вольная, но достаточно точная, скомпилированая из разных источников. В английском центральная часть фразы звучит так "he has been weighed and found wanting" [2].

Есть фильм "История рыцаря" [3] с почившим Хитом Леджером в роли рыцаря-самозванца Ульриха фон Лихтенштайна из Гильдерланда. В финальной сцене над поверженным Адемаром звучит фраза "Ты был взвешен, ты был измерен и был признан никуда не годным. Вот ты и в другом мире!". Я специально посмотрел эту сцену в оригинале: "You have been weighed, measured, and found wanting" [4]. Прямая отсылка к библейскому сюжету!

Опять же, в английском языке есть устойчивая фраза "надпись на стене" (в оригинале "writing on the wall") в значении "все пропало, все пропало: гипс снимают, клиент уезжает". У них эта фраза очень популярна и часто используется - достаточно посмотреть страницу в википедии [5]. Например, у британской группы Iron Maiden есть песня "The Writing on the Wall" с прямой отсылкой к библейской истории. Посмотреть клип можно здесь [6].

[1] https://ru.wikipedia.org/wiki/Мене,_мене,_текел,_упарсин
[2] https://en.wikipedia.org/wiki/Belshazzar's_feast
[3] https://ru.wikipedia.org/wiki/История_рыцаря
[4] https://en.wikipedia.org/wiki/A_Knight's_Tale
[5] https://en.wikipedia.org/wiki/The_Writing_on_the_Wall
[6] https://www.youtube.com/watch?v=FhBnW7bZHEE

Sunday 1 August 2021

Грузинский суп харчо

говядина на кости - 500 г
грецкий орех - горсть, растолочь
кинза - пучок, мелко нарезать
рис - 3-4 ст.ложки
ткемали - 2 ст.ложки
помидор - 1 шт., или заменить томатной пастой
лук - 1 шт., мелко порубить
чеснок - 2 зубчика, мелко порубить

 
Сварить бульон, мясо вынуть, порубить и вернуть в бульон. Затем последовательно положить лук, помидор, ткемали, орех, чеснок, рис, кинзу, поперчить и посолить.
 
Смешать, но не взбалтывать. Получается харчо.
 








 

Wednesday 21 April 2021

Словоблудие
Из жизни параллельных миров

- ПОДЪЕМ!!! - заорал будильник.

Зашевелиось одеяло. С кровати свесилась нога. Другая запуталась в складках и лениво себя высвобождала.

- ПОДЪЕМ!!! - продолжил орать будильник.

- Голая обезьяна! - раздался обиженный кошачий вопль. Следом раздался топот шерстяных лап. 

Вторая нога, так и не сумев выпутаться из ночного омута одеяла, резким движением высвободилась, походя столкнув кота с кровати. Кот стремглав выскочил и по дороге задел робот-пылесос, стоявший недалеко. Тот заворчал:

- Один-ноль-ноль-один-ноль...

- Доброе утро, Умная Железка. Не умничай! - фыркнул в ответ кот и продолжил свой стремительный вояж.

Тем временем свободные ноги сонно пошарили по полу, нащупали тапки, нырнули в них и поковыляли из комнаты. Где-то вдалеке, на кухне, уже требовательно маякуали.

- Я голоден, я хочу есть - продолжал ворчать робот-пылесос.

Ноги остановились у пылесоса. Откуда-то сверху бесшумно появились руки, обхватили пылесос за бока, подняли и отнесли на зарядную станцию. Руки также бесшумно исчезли. А ноги прошлепали своей дорогой, но вначале на кухню - где опять откуда-то сверху появятся руки и наполнят кошачью миску.

Дом стал оживать, наполнятся разными звуками новостей телевизора, утреннего шума из ванной, радостного бормотания чайника и веселой переклички чашек и ложек на кухне.

А затем ноги облачились и ушли. "Всем пока, до вечера!" - весело позвенели за дверью ключи. Пылесос, довольно пиликнув, сообщил, что он зарядился. Кот, сытно облизнувшись, задумчиво посмотрел на дверь, дождался когда стихнут все звуки и запрыгнул на подоконник. А в углу уже дремали тапки.

Sunday 2 February 2020

Remove Extra Folders from Windows 10 Explorer “This PC”

Some new features in WIN10 are annoying so much. For some old-school people which like minimalism, those new features are absolutely useless. I am talking about these special folders shown in the start window of Explorer: "3D Objects", "Desktop", "Documents", "Downloads", "Music", "Picture", "Videos".

I spent some time looking for the simple and reliable solution hiding these folders and keep the start window of Exlorer simple as much as possible. And I found it. There is the article [Tip] Remove Extra Folders from Windows 10 Explorer “This PC” by Vishal Gupta.

In his work he describes in details the problem and provides the solution. In addition the step how to hide these folders he also provides the steps how to revert back them. And finally he supplies with the archive file with .REG files.

In my short work I post with all my modesty and bravety the source codes for both actions.

Hide folders


Windows Registry Editor Version 5.00

;Created by Vishal Gupta for AskVG.com

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag]
"ThisPCPolicy"="Hide"

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag]
"ThisPCPolicy"="Hide"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag]
"ThisPCPolicy"="Hide"

[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]


Show folders again


Windows Registry Editor Version 5.00

;Created by Vishal Gupta for AskVG.com

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag]
"ThisPCPolicy"="Show"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]


All the credits go to Vishal Gupta

Saturday 1 February 2020

How to enable different languages per applications in WIN10

If you is annoyed with a single language per the whole system in WIN10 and you'd like to have different languages per application (as it has been in previous Windows versions), possibly you have a way to revert back the previous behavior. It is impossible, if you have Windows 10 Home edition for single language. In this sad situation you have to upgrade to Window 10 Home edition or Windows 10 Professional.

Recipe 1


  1. Launch Settings
  2. Open Time & Language
  3. In the left side click Region & language
  4. In the right side scroll down and click Additional date, time & regional settings

After that the new window called Control Panel\Clock, Language and Region will be launched:

  1. Be sure that Clock, Language, and Region is selected in the left side
  2. In the right side click Change input methods

In the same window you will be forwarded on the screen called Control Panel\Clock, Language and Region\Language:

  1. In the left side click Advanced settings

Again you will be forwarded on the screen called Control Panel\Clock, Language and Region\Language\Advanced settings:

  1. Scroll down until you find Switching input methods
  2. Check in Let me set a different input method for each app window
  3. Click the button Save

Recipe 2


There is shorter way with the same results.

  1. Open Windows Start Menu
  2. Start typing control panel
  3. You will be prompted to launched Control Panel. Do it
  4. Find and click Clock, Language, and Region

After that continue from the step 5 from the previous recipe.

Stop rotating the screen with CTRL+ALT+Arrows

It could happen that I forget about it and this short note is a chance to remember. [:Smile:]

There are two comprehensive recipes describing how to stop rotating the screen in Windows.

Recipe 1


In the Tray find the icon called Intel(R) HD Graphics

  1. Click on it
  2. Select Graphics Options
  3. Select Hot Keys
  4. Select Disable

If for some reasons you don't have this icon in the Tray, follow the next procedure.

Recipe 2


  1. Open Settings in the Windows Start Menu
  2. Select the icon System or type in the search field "change display settings"
  3. In the left side select Display
  4. In the right side find and click Display adapter settings

A new dialog (most likely called as Generic PnP Monitor and Intel(R) HD Graphics Family Properties) will be opened:

  1. In the dialog click on the tab Intel(R) HD Graphics Control Panel

The following step is useful as you will be able in the future to handle with it accordingly the Recipe 1.

  1. Check in Show Tray Icon

Continue tuning:

  1. Click the big button Graphics Properties...

New application will be launched (Intel(R) HD Graphics Control Panel):

  1. take a note that the home page is opened (or click on the icon designating a house in the circle in upper-left side of the application)
  2. Click Options and Support
  3. In the left side select Hot Key Manager
  4. In the right side find Manage Hot Keys and check in Disabled
  5. Click the button Apply in the right-bottom side

That's all! Now the feature is disabled and will not be annoying you when you accidentally tap these keystrokes.

When you need to turn on the feature, follow the Recipe 1 but select Enable.

Saturday 2 March 2019

Disabling webp in Firefox

If you're one of the weird persons who dislike new features, this short article could be useful for you.

A few years ago Google invented webp, a new image compression for web. It was proclaimed as better than jpeg or png and supporting both lossy and lossless compression. The majority of browsers (including Firefox since version 65) support this new format. Of course, it is fine -- better compression, less traffic, faster page loading, less lose of money. But! If you'd like to save a picture from web (either jpeg or png), you can't do this, as you have been doing it earlier. Firefox suggests to save image in the webp format.

Here is a solution to avoid this issue and save the pictures in their original format (by the worth of increasing your Internet traffic).

  1. open the page about:config
  2. click the button I accept the risk
  3. in the search bar type network.http.accept.default
  4. double click on the found parameter
  5. remove the substring image/webp
  6. apply modification by pressing the button OK

That's so! After this you can continue surffing in your usual manner. All the pictures will be downloaded in their original format.

To revert to the original value do the right click on this parameter and apply the command Reset. So your Firefox accepts webp again.

Update:

After updating the Firefox instance on my computer I've found that the suggestion of this article doesn't work. In this case (FF 65.0.2) the following modification should be applied (I tested it earlier with FF 65.0.1 but it didn't work):

  1. open the page about:config
  2. click the button I accept the risk
  3. in the search bar type image.http.accept
  4. double click on the found parameter
  5. remove the substring image/webp
  6. apply modification by pressing the button OK


Another related pages

  1. Firefox 65 supports Google's WebP Image format
  2. How to avoid saving images in webp format in Google Chrome 
  3. Related discussion on Russian Mozilla forum

Friday 29 July 2016

Color Diff

Few months ago I have found I feel lack of the highlighting capability of the diff output. To cover this lack I began to look for solutions. A lot of resources refer to the colordiff, the tool written in Perl. But I wasn't satisfied with it. Question on StackOverflow and this article have inspired me to develop the Bash function having the same (or almost the same) functionality as colordiff and having mechanism as described in the early mentioned article.

Some of you can say I have re-invented the wheel because a) there is colordiff, b) diff has the special options to format output. But I'd like to have simple solution with full support of many output formats as much as possible and the simple usage as the command itself. It uses sed to format (colorize) diff output. It has the following features:

  • The wrapper and can be called as the replacement instead the standard tool;
  • Analyzes command line options and generates the special sed commands colorizing output;
  • Covers all known formatting options (--context, --unified, --ed, --rcs, --side-by-side, --show-c-function);
  • It supports CDIFF_COLORS and CDIFF_WHEN, the special environment variables having impact on the function behavior (they works similar to GREP_COLORS for grep).

There is help page below. Just follow this link, download the script and try.

$ diff
Usage: colordiff [OPTION]... FILES

Wrapper for diff to colorize the diff's output for better readability.
Try "diff --help" for more information.

OPTIONS

Diff options

All options will be passed to "diff".

Coloring options

--color[=WHEN], --colour[=WHEN]

Controls the colorizing method. WHEN can be one of "never", "auto" or
"always" (the default value if not specified explicitly). To make affect
globally, set one of these values to CDIFF_WHEN environment variable.

ENVIRONMENT VARIABLES

CDIFF_COLORS
This environment variable is used to specify colors to highlight the
separate parts of the diff output. Its value is a colon-separated list
of capabilities. Names and responsibility of each capability correspond
to the configuration parameters "color.diff." used in "git config".
Values are integers in decimal representation and can be concatenated with
semicolons. Further these values are assembled into ANSI escape codes.

meta=40;1;37
Metainformation (names of compared files)

frag=36
Hunk header (line numbers of changed lines)

old=31
Removed lines

new=32
Added lines

mod=34
Modified lines

CDIFF_WHEN
Colorizing method does effect on all runs; assumes the same values as for
the "--color" option. The default value is "auto" and can be superseded
by the "--color" option.

Tuesday 18 February 2014

jsmin.js keeping important comments unchanged

More than dozen years ago Douglas Crockford, the JavaScript guru, has presented his JavaScript Minifier. This tool obfuscates the JavaScript code, removing extra whitespaces and comments. Later, Franck Marcia has adapted the C-written program to JavaScript. See his implementation at the page JS Minifier.

Still later, Billy Hoffman has patched the script and added the support of important comments. Important comments are specially formed comments (in practice, denoted with /*!) that are not removed by minifier. What he has done we can find out from his article JSMin, Important Comments, and Copyright Violations. The main goal to support important comments was to retain copyrights and licensing information intact.

Important comments are very useful also to keep some sensitive data within (for example, resources used by the script). Unfortunately, they are not supported completely because TAB and asterisk characters are changed (TABs are converted to SPACEs, and asterisks are eaten by the minifier). To fix this issue I have made some changes to the latest version of jsmin.js.

You can find the updated version of the jsmin.js at the GitHub. Also you can apply the following patch for the existing on your computer copy of the original script:
1a2,9
> jsmin.js - 2014-02-04
> Author: Ildar Shaimordanov
> This version was patched to keep important comments (denoted with /*!) 
> unchanged. The previous version of jsmin.js ate asterisk symbols and 
> modified some characters as well (for example TAB was replaced by SPACE). 
> Sometimes, comments should stay unchanged (for example, a function could 
> keep its resources within comments). So this version does it. 
> 
128,131c136
<     if(c >= ' ' || c == '\n' || c == '\r') {
<       return c;
<     }
<     return ' ';
---
>     return c;
141a147,150
>   function peekIC() {
>     theLookahead = getcIC();
>     return theLookahead;
>   }
173,174c182,183
<                   if(peek() == '/') {
<                     getc();
---
>                   if(peekIC() == '/') {
>                     getcIC();
176a186
>                   d += c;