Pull to refresh
60
0
Viktor @wentout

системный анализ

Send message

Наследование в JavaScript с точки зрения занудного ботаника: Фабрика Конструкторов

Reading time15 min
Views8.3K
lamp of light and apple of discordЭто история об одной очень специальной части JavaScript, самого используемого искусственного языка в мире в настоящее время (2019).

В статье представлен своего рода философский взгляд на Наследование в JavaScript, и я смею лишь надеяться, что он основан на самом впечатляющем источнике познания: самой жизни во всех её проявлениях. Не знаю было ли это источником вдохновения при создании дизайна цепочки прототипов в JavaScript.

Но если так, то это настолько значимо и сильно, что когда я начинаю думать об этом, то порою становится даже трудно дышать…

( все ссылки подчёркнуты )
Читать дальше →
Total votes 17: ↑11 and ↓6+5
Comments1

Linux Tuning для Современного ноутбука с Пассивной Системой Охлаждения

Reading time31 min
Views41K
В последнее время всё больше и больше стало появляться ноутбуков, которые каким-то непостижимым образом работают вобще без вентилятора. Прямо как телефоны, но только ноутбуки. Бесшумно себе НЕ шелестят, и всё такое, интересное прям, ультра. И вот, в порыве, так сказать, молодецкого задора, решил я сменить свой "ещё в прочем очень даже неплохой ноутбук" на нечто этакое. Тем более, что диагональ в 14" мне была великовата, и уже очень давно хотелось вернуться на 11.6, но с сохранением Full HD.

Выбор пал на среднюю модель в 700-11 линейке Lenovo Yoga. Отличная, по ноутбучным меркам ANSI клавиатура с отдельными Home (+PgUp) и End (+PgDn). Правда, без подсветки, но она мне не нужна. 3 USB разъёма: один из них совмещён с питанием. Заявленых и в итоге достигнутых 4 часа от батарейки. Вес чуть больше килограмма. В общем — красота. Да и рыжий цвет меня устраивает вполне, всё равно наклейками обычно всё заклеено.

Единственный нюанс: работает «без нареканий» под штатным Windows 10 Home. Ну, то есть, как — «без нареканий» — это если не учитывать тот факт, что именно Работать Невозможно Же. Нет, я могу, конечно, но — это если очень много заплатят. А для обычной работы у меня Ubuntu, точней Linux Mint Mate Desktop. И, всё бы ничего, но после переезда — переноса разделов со старого на новый — Sarah отказалась дружить с моим новым ноутбуком:

  • Жутко грелся, сразу и всё время градусов до 70 ℃ в Idle режиме
  • Очень часто не загружался вообще
  • Часто терял WiFi при температурах выше 75 ℃

Безусловно, всё под катом — это субъективное мнение, но, думаю, оно подойдёт для всех свежих Ubuntu Based дистрибутивов, а так же и для других Linux, т.к. большая часть информации совершенно не касается конкретного дистрибутива.

Решение, а так же фотки ноута и ещё немного всякой чепухи, включая Geek Porn с моддингом, под катом (Warning Трафик):
Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments174

Un-FuckUp-able Development Protocol (UDP)

Reading time8 min
Views14K
Недавно после очередного Team Building’a получил от одного Коллеги-Графомана письмо-притчу про большую кнопку «сделать всё хорошо». Он и раньше баловался изобретением велосипедов, но в этот раз конструкция показалась мне на редкость удачной. Кому интересно — прошу-приглашаю под кат. С его разрешения дословно:

В эту сиесту на веранде практически никто не курил, потому, что все ушли на очередной двухдневный SCRUM-тренинг. Джонни устало окинул взглядом присутствующих: Дёму и Варю. Они тоже не были в восторге от происходящего, было слишком жарко и душно, лето в Долине было в самом разгаре, и казалось, что на улице даже жарче чем в Task Tracker’е.


Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments15

Как скопировать профили настроек Skype и Google Chrome и Mozilla Firefox из одного /home в другой

Reading time5 min
Views6.2K
4 декабря вышла Linux Mint 17.3 «Rosa» (небольшой обзор здесь).

Возникла необходимость быстро переехать на следующий релиз, не сохраняя /home, а перенеся лишь некоторые настройки.

UPD 2: в замечательном комментарии к этому топику hiddenman предельно доходчиво объяснил зачем мне это было нужно. Вполне возможно, что данный комментарий ценней самой статьи, поэтому с его разрешения цитирую:

Коллеги, в наше время совет автора можно назвать скорее полезным, чем бесполезным. Если 15 лет назад я спокойно использовал старый $HOME, то сейчас это уже не так. Множество сложных (и часто кривых) компонентов, добавленных в окружение Linux за последние годы, создает немало проблем с практически всем ПО, при мажорных обновлениях.

Все эти KDE, XFce, Pulse Audio, настройки GNOME/GTK и т.д. и т.п. очень разнятся и зачастую реально создают проблемы в виде подземных стуков, которые практически нереально выявить, особенно новичку. Иногда это мелочи, которые можно легко поправить (типа «поехавшего» интерфейса xfce при обновлении), иногда очень непонятные вещи.

Из последнего интересного, с чем сталкивался — у «менеджера» при открытиии любого flash-видео оно начинало проигрываться, но без звука. Через несколько секунд видео замирало, потом зависал весь браузер.…

Запросто кривой файл gtkrc и/или несуществующий путь к pixmap может валить вашу программу и вы устанете искать, почему.

И таких примеров у меня за без малого 20 лет было приличное количество многих десятках рабочих станций (да и серверов тоже, но не с home, конечно же).

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


UPD 1: Думал, что топик будет полезен "для новичков". В каментах выяснили, что есть пути попроще.

Если Вам интересно как осуществить Subj, жмите
Total votes 17: ↑4 and ↓13-9
Comments67

Некоторые новые настройки в Linux Mint Release 17.3 LTS 04.12.2015

Reading time2 min
Views12K
image

Свершилось, я её так ждал новый LTS!

Это дубликат с GeekTimes, просто не все читают его.

Официальные обзоры изменений:


17.3 — это релиз с длительной поддержкой до 2019 года. Он вышел с обновлённым ПО и привнёс улучшения и много новых фич для того, чтобы ваш комп было использовать ещё комфортней.

Для загрузки:


image

Distrowatch № 1

Обзоры по окружениям:



Читать дальше →
Total votes 6: ↑3 and ↓30
Comments9

Linux Mint 17.3 “Rosa” LTS released

Reading time2 min
Views7.2K
image
Господа, коллеги, товарищи линуксойды, кто из простых, чтоб работало.

Отчаянно рекомендую:



17.3 — это релиз с длительной поддержкой до 2019 года. Он вышел с обновлённым ПО и привнёс улучшения и много новых фич для того, чтобы ваш комп было использовать ещё комфортней.

image

Distrowatch № 1

Для загрузки:


Linux Mint 17.3 is a long term support release which will be supported until 2019. It comes with updated software and brings refinements and many new features to make your desktop even more comfortable to use.


Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments22

Обзор нетбука MSI S12

Reading time19 min
Views107K
AMD A4-5000 / 11.6" / 1366x768 / глянец / 4Gb / 500Gb / Wi-Fi / Bluetooth / DOS / ~ 11-14 т.р.
MSI S12
Решил написать этот обзор, так как был заворожен этим нетбуком сразу, как только нашел его.

Набор моих обязательных требований к портативным компьютерам, как оказалось, был очень взыскателен:

  1. Матрица 11.6" – даже 13.3" мне уже многовато.
  2. Минимум 16Gb DDR3-3L 1600 (12800).
  3. Вес вместе с блоком питания до 1.5 кг. — это просто Must Have, так как это очень комфортно.
  4. 4 Core CPU, желательно AMD Kabini\Kaveri.
    Не то, чтобы я «не люблю» Intel Core i5-i7.
    Но для работы мне столько не нужно.
    Хотя, впрочем, да — я фанат AMD уже лет 15.
    Мне нравится Intel как инноватор.
    Но конкуренция должна быть свободной.
  5. Наличие Legacy режима работы BIOS.
    Не то, чтобы я «не люблю» Microsoft.
    Хотя, впрочем, да — у меня Linux, уже лет 10.
    Поэтому присутствие UEFI Secure Boot или других ограничений меня бы очень сильно расстроило.
    Мне всё таки работать нужно, а не разбираться почему оно тормозит\упало\ограничено и тому подобное.
  6. Нормальная графическая подсистема, так как на работе я подключаюсь к Full HD монитору. Соответственно и желание посмотреть что-нибудь в High Res тоже иногда возникает. Да и дома на телевизоре есть HDMI, которому иногда что-нибудь нужно показать.
  7. Полноценная клавиатура. Я давно не смотрю на клавиши. Но тот человек, который придумал в моём старом Acer избавить меня от полноценных стрелочек и клавиш Home, End, PgDn и PgUp — он явно желал сделать мне плохо. Больше НИКОГДА! Потому, что привыкнуть к этому убожеству за два года я так и не смог.


Мои ожидания от MSI S12 полностью оправдались, поэтому захотелось обязательно поделиться, вдруг кому-нибудь тоже пригодится. Под катом, конечно же, будут какие-то фотки, ролики YouTube, агитация, провокации и другие сведения о том, каким я вижу «правильный нетбук» и почему данный экземпляр — это именно «оно».

Читать дальше →
Total votes 105: ↑72 and ↓33+39
Comments109

Legacy или Inheritance: немного оффтопа про .prototype, каламбур для неофита

Reading time3 min
Views3.9K
Постараюсь быть неимоверно кратким.

Написано для тех, кто только начинает!

Статей про наследование в JS не счесть:


Считаю важным добавить, что есть терминологическая разница на уровне языка носителей, т.е. — английского. И это принципиально важно, когда Вы работаете с прототипами в JS.

У меня в google по запросу "what is the difference between inheritance and legacy" первая ссылка ведёт сюда: ссылка.

Само собой, что статей там не одна.

Там есть такая строчка, дописка: Also, as pointed out in some comments, «inheritance» is generally from the viewpoint of the receiver, while «legacy» is from the viewpoint of the giver: My inheritance was my father's legacy.

Краткая суть, которая не отражает всей глубины, которую я себе уяснил, в том, что:
  • legacy — это взгляд со стороны родителя, широкий
  • inheritance — это взгляд со стороны потомка, узкий


Поэтому я считаю, что в обычных ООП языках программирования типа Java, C#, С++ и т.п. используется термин inheritance — наследование.

А у нас в JavaScript используется почти то же самое, но немного шире: legacy — наследство.

А т.к. в Русском Языке разницы между этими понятиями почти нет, то отсюда и масса FuckUp'ов с пониманием зачем это нужно.

И, в том числе потому, что от Legacy code мы никуда не денемся.

UPD 2: Выжимка из статьи про legacy code >> Modern interpretations.

… source code inherited from someone else and source code inherited from an older version of the software…

UPD 3: Под катом идёт речь о том, что Inheritance неминуемо влечёт за собой Legacy. Точней наоборот, согласно терминологии носителей языка Legacy — это больше чем Inheritance.

UPD 1: В комментариях подсказывают, что может быть частично речь идёт о Гипотезе Сепира-Уорфа. Спасибо k12th. Так же спасибо lair за конструктивную критику.
Читать дальше →
Total votes 14: ↑7 and ↓70
Comments26

Node.JS + taskset == немного странного юмора

Reading time6 min
Views11K
Регулярно слышу фразу типа «Node.js не подходит для хайлоада».

Захотелось самому посмотреть.

Хотел написать комментарий к той статье, но передумал и написал больше. Автору той статьи, большое спасибо за интересный топик, задело.

В интернете кто-то не прав. Наших бъют! Обидно, да. Для себя выводы кое-какие сделал, но это же мои субъективные цифры. Что думать в целом — не знаю, пишите пожалуйста в каментах своё мнение.

UPD 3 По результатам обсуждения найдено то, что было нужно написать с самого начала, то, что я подразумевал, а именно: что тест не репрезентативный, единственное, что он показывает — что На Моей очень слабой машине нода отстаёт on Nginx на пол порядка всего. Нода, как и Nginx, почти ничего не делают, в этом смысле они «равны». Хотел показать, что есть taskset, что нода может не перегружать проц при определённых условиях, что не нужно верить тестам.

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

UPD 1 немножко по-tag'ал как «юмор», м. б. так будет правильней.
UPD 2 не верьте ни единому слову!

Читать дальше →
Total votes 42: ↑21 and ↓210
Comments28

Пишем свой JavaScript шаблонизатор

Reading time5 min
Views24K
На тему шаблонизаторов статей написано великое множество, в том числе и здесь, на хабре.
Раньше мне казалось, что сделать что-нибудь своё — «на коленке» — будет очень сложно.
Но, случилось так, что прислали мне тестовое задание.
Напиши, мол, JavaScript шаблонизатор, вот по такому сценарию, тогда придёшь на собеседование.
Требование, конечно, было чрезмерным, и поначалу я решил просто игнорить.
Но из спортивного интереса решил попробовать.
Оказалось, что не всё так сложно.

Собственно, если интересно, то под катом некоторые заметки и выводы по процессу создания.

Для тех, кому только глянуть: the result, the cat.

Читать дальше →
Total votes 39: ↑28 and ↓11+17
Comments18

Custom Tree v2 jQuery plugin

Reading time4 min
Views9.6K
На днях решил вернуться к перепиливанию одного своего старенького Open Source проекта.
В процессе обдумывания решил, что предыдущий компонент с деревом в его нынешнем виде меня больше не устраивает.

Хотелось чего-нибудь более Event Driven, с понятным и простым API.

Сейчас решил, что оно уже готово для Public.

Берите, пользуйтесь.
Или посмотрите на example в рамках GH-pages.

Под катом краткий перевод краткой документации по API.

UPD: в комментариях мой код для организации перетаскивания.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments17

«Однопоточный программист»

Reading time5 min
Views47K
Всё нижеизложенное вымысел, основанный на реальных событиях.

Не являясь мастером писать заметки, пытался «с пылу с жару» изложить это вчера. Но просто и доступно выстроить мысли в стройном порядке «по горячим следам» не вышло.

Кроме того на личном опыте выяснилось, что описываемый подход, хоть он, на первый взгляд и кажется мне очень простым, статистически таким не является. Известное высказывание о том, что «простые вещи, они самые сложные» оказывается в данном случае верным.

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

Поэтому, споткнувшись об одну и ту же проблему в «надцатый» раз, и в «надцатый» же раз наблюдая идентичное её решение, полагаю, что изложение данного «подхода» в письменном виде поможет мне ещё прочней закрепить его как «навык».

В связи с чем, публикуя эту заметку здесь, ожидаю, что вторым «застреленным зайцем» может стать помощь кому-нибудь ещё в избавлении от подобных ситуаций.

UPD3 спасибо dimka_ben: под «однопоточностью» подразумевается особенность мышления конкретного индивидуума, когда в один момент времени он может думать только о чем-нибудь одном.

Читать дальше →
Total votes 92: ↑77 and ↓15+62
Comments129

Документация к cms Fine Cut Engine

Reading time7 min
Views3.9K
Всем доброй пятницы!


Может быть кому-нибудь пригодится: Fine Cut Engine?

Это админка для сайта-визитки.

В настоящий момент документация Fine Cut Engine есть только на английском, топик предназначен для исправления этого недочета. Upd: для удобства ссылка на downloads.

Заявленные Фичи:
— Keep it Simple: настолько, насколько было возможно
Без базы данных o_0
— Free from Fat: практически отсутствует back-end
— Free to Use: MIT или GPL
— Хорошо интегрируется: можно включить всё что угодно в шаблон
— Без попкорна: это не кино
— Там нет ложки: мы помним The Matrix :)

UPD 1: элементарная файловая «CMS» с одно-страничным web 2.0 UI, ни малейшего намёка на излишества, и силу этой же специфики — весьма шустро отдающая запросы (как, впрочем, и множество подобных), спасибо heathen за комментарий. В работе с подобными движками лично меня постоянно не устраивала необходимость переходов по ссылкам при создании содержимого, а так же не хватало дерева в котором будет виден URL редактируемой страницы и структура сайта в целом.

UPD 2: в самой глубине документации есть ссылка на Google Grops.

UPD 3: сайт проекта это его же дефолтный шаблон (Twitter Bootstrap) с дефолтным же содержимым.
В админке используется jQuery с разными компонентами, а так же elFinder и ACE Editor (тот самый что и в Cloud9 IDE), knokout.js, замечательный плагин для JSON (перечень «всего» тут ).

Приступим ?
Total votes 33: ↑24 and ↓9+15
Comments8

Восстановление netbook на заводские настройки

Reading time3 min
Views6.3K
В последние годы большинство производителей notebook не утруждает себя тем, чтобы положить в коробочку с приобретенным device'ом ещё и диск восстановления системы.
В подавляющем большинстве случаев эта ситуация характерна если вы приобретаете netbook.
В нем же обычно нет привода чтения оптических дисков?
Значит, и восстановление системы производить нужно как-то по другому.

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

Но есть одно «НО».
В 99.99% случаев производитель предполагает, что у Вас ещё есть раздел с Windows, а раздел Recovery находится в нужном месте, что Вы как добросовестный пользователь ПК читали инструкции и делали всевозможные BackUp.
Да, при этом так же предполагается, что Windows вообще говоря — загружается.

Наивные, да?

Под cut один из вариантов того, делать если всё было «как всегда».

Читать дальше →
Total votes 30: ↑8 and ↓22-14
Comments19

JavaScript loader без define

Reading time2 min
Views9.8K
Привет Хабр!

Всем известно решение задачи загрузки скриптов.
Например Curl.JS, Require.JS, + популярные frameworks умеют это тоже.

MAIN UPDATE: В комментариях всё обсудили. Спасибо azproduction и nuit за идейные комментарии, а ainu за моральную поддержку.

Из комментариев ясно, что 100% лучше использовать LMD, т.к. там всё то же что здесь рассказано, только есть учет зависимостей, кеша и т.п. И, да, оно изобретено гораздо раньше, т.е. было первей!

Что такое LMD: читаем уважаемого azproduction.

Под катом остался код, который можно использовать в ознакомительных целях для ответа на вопрос почему написан MAIN UPDATE, то есть почему нужно использовать LMD вместо того что под катом.
Так же важно что оператор 'with' в настоящий момент Deprecated.

Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments18

Custom Tree View

Reading time3 min
Views20K
Здравствуйте Хабралюди!

Сейчас буду рассказывать об одном «дереве».

Зачем и почему нужны «деревья» – Вы знаете лучше меня.

Понадобилось для одного проекта «дерево» (tree view).
Известные реализации в порядке важности\значимости для лично меня:

Т.е., можно сказать, что я на них «засматривался».

UPD:
Во-первых хочу отметить, что очень сильно уважаю приведенные примеры.
Во-вторых, данный компонент по очень многим параметрам сильно проигрывает.
В третьих — чтобы получить хотя бы что-то схожее с jsTree, например, нужно будет много своего кода написать.

Но, тем не менее решил запилить свой компонент.

Для самых нетерпеливых: ссылка на пример в работе.

Мало-мало описания под катом
Total votes 10: ↑7 and ↓3+4
Comments10

Две маленьких функции, способных упростить жизнь

Reading time4 min
Views1.2K
Я знаю про Backbone.js и про Knockout.js
Просто иногда хочется чего-то значительно меньшего.

1. Введение. О чем речь, какова предметная область. Какая существует проблема.

О чем речь: есть JavaScript, «сферический, в вакууме».
Предметная область: объекты и их свойства, то, что задается приведенными ниже способами.

var obj = new Object();
var obj = {};


где свойства, соответственно:

obj.prop = 111;
obj = {
   "prop1" : "value1"
   "prop2" : 2
}


Какая существует проблема:

1. Есть вот такие вот объекты, у них есть эти самые свойства.
2. Хочется узнать, когда свойство было изменено ( часть MVVM pattern )
3. И, соответственно, подписаться на это изменение.

UPD 1Пример в работе, спасибо alist, за очень, по моему мнению, важный комментарий ниже.

Читать дальше →
Total votes 23: ↑13 and ↓10+3
Comments24

«Валидность» расширения для Firefox и пара мелочи

Reading time6 min
Views1.6K
Привет!

На Хабре достаточно много статей на тему написания расширений для Mozilla Firefox.
Воспользовавшись поиском, можно найти информацию, например: здесь, здесь, здесь или даже здесь.

Но я пока не нашел (если есть, то — простите) статьи про валидные расширения.

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

Информацию, приведенную в статьях выше я копировать, с Вашего позволения, не буду.
Вместо этого я попытаюсь описать общие принципы создания «валидного» дополнения.

И ещё приведу парочку примеров и подкину ссылок.

Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments13

Немного стёба над DIR-620

Reading time4 min
Views16K
Привет Хабр!

Статья называлась что-то там про «стимпанк», но Ты против…

В общем тут не только про то как прикрутить большой вентилятор на крышку.
Это из картинки уже все ясно.

Под «катом» ещё «пара фоток» и кое-какие Заметки по «настройке», которые могут помочь сэкономить некоторое время на чтении некоторых форумов.

Читать дальше →
Total votes 33: ↑9 and ↓24-15
Comments17

Принцип KISS и директивы mod_rewrite

Reading time3 min
Views986
Пребывая в перманентных нелёгких раздумьях относительно web-технологий и своей к ним причастности, решил поделиться одной простой мыслью.

Было: Принцип KISS в настоящее время используется плохо, и это — плохо!

UPD 1: Афтыр пытается изобрести велосипед, поможем ему в этом? :)
UPD 2: Автору уже не помочь… :)

Было: Такой нелепый вывод был сделал на основе анализа настроек .htaccess для нескольких ультра-популярных систем.

UPD 3: Автор приносит извинения всем почитателям таких настроек, но до сих пор ещё пытается понять «что проще», автор не отрицает, что он «ещё учится»… :)

Читать дальше →
Total votes 19: ↑7 and ↓12-5
Comments42
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity