понедельник, 28 апреля 2014 г.

SWAP MacOS 10.9 (обратное включение) неактуальность отключения файла подкачки

Если вы намудрили с оптимизациями, а потом у вас зависает компьютер после аптайма в 2-4 недели, то явно проблема в SWAP файле.

SWAP (файл подкачки) включается командой
sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Но я сперва думал, что своп у меня не включается. У меня 8 гиг оперативки, я запустил виртуальную машину, выделив ей 8 гиг, далее запустил Chrome, Safari, FireFox, Opera и в каждом браузере начал открывать ютуб, для этого я зажал кнопку CMD и кликал по ссылкам видяшек, я открыл графические и видео редакторы, открыл все утилиты, которые только мог, и только через 10 минут бурных стараний смог задействовать файл подкачки.


На скриншоте видно, что программы скушали почти 18 гигов оперативки, т.е. памяти используется на 10 гигов больше, чем есть на самом деле, но в файле подкачки только 2.79Гб, всё из-за хитрой оптимизации памяти, она сжимается до тех пор, пока может, и только потом использует своп.

Советую вам не выключать swap на MacOS 10.9, даже если у вас 16Gb оперативной памяти, на работе у меня на MacMini именно столько, в итоге приходится перезагружать компьютер примерно раз в 2-3 недели из-за мертвых зависаний, там запущен SSH, Apache+PHP+MySQL, куча скриптов и редакторов, несколько браузеров и еще много программ, в итоге спустя пару недель в каких то программах происходит утечка памяти и оперативки совсем не хватает, это вызывает мертвое зависание либо отключение всего управления (мышка, клавиатура).

В общем swap не включается, если не заполнена оперативка, поэтому отключать подкачку не нужно в новой MacOS.

вторник, 22 апреля 2014 г.

Чистка(Разбор) клавиатуры Apple Wireless Keyboard после заливки чаем/кофем/пивом

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

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

Пришлось делать всё "снаружи", цифровой блок работает прекрасно, глючат только буквы, поэтому я сделал вот так

Кнопки на ножничном механизме, отковыриваются ногтем (ну или отверткой), для снятия кнопочки нужно аккуратно зацепить ее сверху и потянуть до щелчка, если щелчка не происходит, то тянем левый и правый верхние углы, после того, как верхняя часть кнопки отцеплена - аккуратно отцепляем аналогичным образом, будьте предельно осторожны, можно и сломать механизм.

Кнопки расставляем по столу рядами, чтобы не перепутать их местоположение, при обратной операции будем ставить их на место слево-направо по рядам.

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

Нужно равномерно распылять жидкость по открытым кнопочным механизмам (при пшикании двигать быстро рукой), после распыления подождем 20-30 секунд, подвигаем аккуратно каждый ножничный механизм и аккуратно протираем каждое отвертие (вокруг обычно налипает липкий чай), протираем всю клавиатуру, ненадолго продуваем феном и следим чтобы клавиатура не нагревалась, иначе можно повредить пластиковые механизмы.



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

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



Не советую лишний раз снимать кнопки, т.к. в скором времени они износятся от такой эксплуатации и будут выпадать сами, поэтому снимайте только проблемные кнопки.

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

Кстати на прошлой клавиатуре, которую я отнес на работу - я слегка смазывал периметр пробела и рычажок в месте его соприкосновения с металлом, это избавило меня от скрипа.

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

Но при этом я бы советовал компании Apple делать немного более качественные устройства и стабильные операционки, часто надежность и эргономика уступает внешнему виду устройств (например мышка).

Хотя справедливости ради стоит заметить, что все эти яблочные гаджеты в США стоят почти как аналогичные произведения от конкурентов, а аксессуары дак вообще у нас сильно задраны, в некоторых магазинах фирменные наушники могут стоить около 3000-4000 руб, а в США примерно раза в 4 дешевле, клавиатуры тоже на том же Avito я находил по цене выше чем новая в "специальных местах", у меня просто есть друзья, которые привозят девайсики от различных поставщиков без лишних наценок))) Когда я покупал роутер AirPort Express за 3400, то в некоторых "брендовых" магазинах города цена доходила до 5900.



Расчет комиссии при платежах

Представьте, у вас в магазине стоит терминал, на котором вы оплачиваете сотовую связь.
Допустим у этого терминала комиссия 10%, нам нужно пополнить баланс ровно на 100 рублей, мы закидываем на баланс 100 рублей - а у нас только 90, ну на первый взгляд прибавляем 10% к сумме и получается 110 рублей - закидываем 110 рублей, а на балансе только 99 руб (10% от 110руб это 11руб). Бывают и более сложные ситуации, когда например нужно проплатить через яндекс-деньги какую то услугу на сумму 1345.67 руб, а комиссия составляет 1.7%, а у нас на счету денег не хватает и хотим занять у друга ровно ту сумму, которая достаточна для оплаты услуги с комиссией.

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



В общем если 
B - конечная сумма
S - начальная сумма
P - комиссия в %

Тогда S = B/(1 - P/100)

вторник, 25 марта 2014 г.

TypeError: browser is undefined - как победить?

Стандартный плагин browser в Jquery выпилен и по идее для решения нужно обновить все плагины после обновления JQuery, но что делать, если автор плагина забыл про его обновление - ну написал и всё и не переписывает версию без $browser, а самому писать плагин лень?

Есть в наше время люди хорошие, которые этот плагин поддерживают в актуальном состоянии и предоставляют в общем доступе

среда, 12 февраля 2014 г.

PHPExel default codepage кодировка по умолчанию

При чтении файла отображались иероглифы, оказалось что файл экселя был кривым и кодировка в заголовке не была указана, по умолчанию PHPExel включает кодировку cp1252, тогда как в православной виндовой кириллице cp1251.

Открываем файл Reader/Exel5.php
и находим по слову 1252
Исправляем параметр на CP1251 и вуаля, бракованый XLS (генерируемый непонятной складской программой у поставщиков).


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

Файл PHPExcel/Shared/CodePage.php, примерно после 89 строки нужно добавить выделенную красным цветом строку:

            case 32769:    throw new Exception('Code page 32769 not supported.');
                                            break;    //    ANSI Latin I (BIFF2-BIFF3)
            case 65001:    return 'UTF-8';        break;    //    Unicode (UTF-8)
            default: return 'CP1251';
        }

        throw new Exception('Unknown codepage: ' . $codePage);

среда, 29 января 2014 г.

SublimeText - простой, но мощный редактор для разработчиков

Недавно я озадачился поиском годной программы для редактирования CSS/PHP/JS/HTML, хотя бы что то похожее на Notepad++ или Gedit/Kate/Kedit.

Frase - часто вылетает при открытии файлов, либо открывает файлы неадекватно, но, возможно, это исправят в следующей версии, так же данная программа работала более стабильно на MacOS 10.8, а вот на 10.9 начались проблемы.

Tincta - жутко глючит при открытии нескольких файлов с 3000+ строк.

TextWrangler - работает годно, подсвечивает синтаксис, открывает в разных кодировках, не тормозит и не глючит.

SublimeText - так сказать "условно бесплатный", в триальной версии выскакивает раз в 2 часа окно с просьбой купить программу, но всё работает.

А теперь речь об избраннике - SublimeText
  • Можно одновременно редактировать текст в нескольких местах, можно выделять все участки с определенным словом.
  • Подсветка синтаксиса почти всех языков.
  • Очень быстрая работа, вкладки.
  • Горячие клавиши позволяют по минимуму использовать мышку, работать эффективней.
  • Автокомплит не только по зарезервированным функциям и выражениям, но и по словам, раннее использованных в данном файле.
  • Функционал расширяется плагинами.
  • Много-много возможностей
Демо-анимация данного редактора на официальном сайте.