85 posts tagged

по-русски

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

Later Ctrl + ↑

Наблюдения за собой и другими при обучении

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

Иногда процесс повторения ошибочно принимается за процесс обучения. Повторение, или как еще говорят, заучивание, ведет к сужению области применения знания.

Знание названия терминов и употребление терминов вовремя не означает понимания сути предмета. Это может быть результат “заучивания”. Просьба описать явление своими словами с минимум терминов расставляет все на свои места. Тем не менее термины нужны, чтобы сохранить время при общении с теми, кто хорошо разбирается в сути, скрывающейся за терминами.

При размышлении и обсуждении задачи задействуются разные механизмы обработки и сопоставления информации. Некоторые задачи невозможно решить, пока не проговоришь описание задачи вслух, или пока не объяснишь задачу другому человеку. И наоборот, если задача не решается во время обсуждения, личные размышления могут продвинуть решение намного дальше. Творческая задача? Смени обстановку, займись другим делом между напряженными подходами к решению задачи.

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

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

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

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

2014   по-русски

Фотки улиц Лимассола

В комментариях к посту ребята предложили приложить фотки. Фотки будут только из города Лимассол. Город похож на крымский поселок, разросшийся до больших рамеров. Центр существенно отличается от окраин за счет длиннейшей истории существования поселения. Фотки отражают тот город, каким я вижу его каждый день. Фото пальм, бассейнов, руин можно найти во множестве других источников.

Общий вид по направлению к центру города из tourist area

Общий вид в обратную сторону:

Улицы в tourist area (листабельно):

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

Улицы центра:

Попахивает стариной. Есть бар, расположенный в древних купальнях. На момент, когда мне его хотели показать, он оказался закрыт. На улицах торгуют ширпотребом, вином, сладостями. Встречается реклама шуб, объявляющая о себе исключительно на русском (для справки: в Лимассоле температура не опускается ниже 0 в течение года).

Мини парк, не единственный в моем районе. Чистота на улицах – не частое явление.

Вид на пляж в обе стороны с одной точки:

Пляж поближе:

Лежачок: 2,5 евро, зонтик: 2,5 евро. Маркетинг. Урны для мусора встречаются часто.

2014   кипр   по-русски

Цены на продукты на Кипре

Субъективно цены высокие. Не только по меркам Украины, но и по меркам европы. Ориентируюсь на оценки жены, которая поездила по Европе. Говядина стоит дороже свинины в полтора раза. Морская продукция представлена слабо (да-да, это на острове-то) и дорого.

Что можно накупить на 51 евро в не самом дорогом супермаркете LIDL:

UPD 01.09.2014
А вот корзина на 73 евро

2014   кипр   по-русски

Как придумывать хорошие имена переменных

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

// Абстрактно
function drive(settings) {}

// Конкретно
function drive(pathDirections) {}

2. Если думать о программе на русском, то не всегда нужное слово для названия переменной с легкостью извлекается из головы. В таком случае можно воспользоваться электронным переводчиком. Он же предложит несколько вариантов перевода одного и того же термина.

3. Синонимы могут быть лучше первого вспомнившегося перевода. Пользуйся http://thesaurus.com для поиска синонимов. Там же найдешь антонимы.

Какими еще способами можно улучшить именование переменных?

2014   по-русски   разработка

Недооцененные аннотации @event и @fires

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

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

/**
 * @constructor
 */
function EventEmitter() {}
EventEmitter.prototype.on = function () {}
EventEmitter.prototype.off = function () {}
EventEmitter.prototype.trigger = function () {}


/**
 * @constructor
 * @extends EventEmitter
 */
function Model() {}
Model.prototype.ready = function () {}

/**
 * @constructor
 * @extends Model
 */
function UserAccount() {}

var ua = new UserAccount(1)

Подобное использование аннотаций позволяет редактору подсказывать методы экземпляров

А так же переходить к определению класса, от которого происходит наследование

Теперь о недооцененных аннотациях
@event описывает событие подобно еще одному типу данных. Метод, который стреляет событие описывается с помощью аннотации @fires. А так же метод, который слушает событие помечается аннотацией @listens. При корректной поддержке редакторами (я скорее ожидаю этого от webstorm), установить порядок связей в приложении становится намного проще. Реалии веб разработки такие, что почти все проекты используют EventEmitter, Mediator, Stream паттерны. Используя аннотации и продвинутый редактор, установить связь между классами, методами не составляет большой сложности. Большая сложность заключается в понимании того, как связаны объекты между собой, когда объекты подписываются на события. Место, где стреляется событие приходится искать вручную.

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

Из хороших новостей – поддержка этих аннотаций запланирована.

2014   по-русски   разработка

Что я узнал о Кипре

Как приехать.
Нужно заполнить заявление на провизу. Внутри документа есть все инструкции. При заполнении нужно знать где останавливаться на Кипре, и когда рейс самолета. Ответ из посольства приходит в течение 2-3 рабочих дней. Посольство не работает во время национальных праздников. Расписание праздников можно найти на сайте посольства. Я ошибся с заполнением визы, ждал ответа 4 дня, потом позвонив в посольство, и вместе с приятной девушкой разобрались что к чему. Провиза позволяет пребывать на Кипре в течение 90 дней со дня въезда, въехать на Кипр по провизе можно в течение 90 дней со дня ее выдачи. Она не дает права трудоустройства. Виза с разрешением на работу привязывается к работодателю, работодателем и оформляется.

Съем квартиры
Цены колеблются от 250 до 600 евро в месяц (1-2 bedroom). Квартиры считаются не по комнатам, а по “спальням”. 1-bedroom эквивалент 2-х комнатной, 2-bedroom – 3-х комнатной. Обязательно ищи квартиру с solar system – водонагрев с помощью солнечных панелей: сэкономишь на электросчетах. Говорят что текущие цены ниже докризисных. Будь готов при въезде оставить 300 евро залога в electricity authority и 200 евро залога в water authority. И еще за 1 месяце аренды залог хозяину квартиры. Агенту по поиску квартиры платит хозяин. Обрати внимание на договор, обычно залог, в случае, если договор расторгается раньше срока его завершения, не возвращается. Если будешь искать квартиру в Лимассоле – обязательно обращайся в http://www.kazo.com.cy. Счета за электричество и воду приходят раз в 2-3 месяца, их можно оплачивать через интернет.

Интернет. Еще 100 евро депозита (как не резиденту), и официальная позиция компании – подключают в течение 3х недель. В моем случае было еще дольше, из-за непоняток с моей стороны и стороны провайдера, и хозяина дома, который должен был дать разрешение на установку оборудования провайдера. Я пользуюсь http://cablenet.com.cy, скорости близки к заявленным, но бывает, что исходящих скоростей не хватает. Оплата онлайн, через тот же самый сайт, где платится коммуналка. Но договор нужно подписывать в офисе. Мобильный интернет не пробовал, но особо в нем нет смысла. В кафешках открытый файфай, даже в супермаркете есть файфай.

Мобильная связь. На острове 2 основных провайдера: https://www.cyta.com.cy и http://www.mtn.com.cy. Я не нашел особого различия в тарифах. Остановился на mtn. Pay-as-you-go карточка (то есть без контракта) стоит 2 евро, если покупать в отделении, то можно спросить и nanosim (для пятого айфона). Могут быть, могут не быть. Себе я обрезал карточку самостоятельно, когда брал второй номер – наносимки были. Пополнение телефона здесь называется top-up, и во многих магазинах такое бывает. За два месяца я выговорил 3 евро.

Еда. Множество кафешек, где можно покушать от 6 до 15 евро. Если есть машина, стоит выбираться кушать в горных деревеньках. Порции огромны, мясо вкусно. Если закупаться на супермаркете, получается 300-400 евро на двоих в месяц. Говядина дороже свинины. Сыр, фрукты прекрасны. Рыба дорогая, несмотря на то, что это остров. Качество всех продуктов субъективно выше, чем на Украине.

Язык. Многие киприоты владеют английским, особенно молодые. Те, с которыми я общался (риэлтор, бармен, ребята с работы), учились в Британии, но наверняка я не вижу картины в целом, может не все такие. Есть и русскоговорящие, так как немало бизнеса заточено под русских туристов. В крайнем случае объясниться на пальцах не составит труда. Люди отзывчивые, и чаще стараются помочь.

Туристы. Русских множество. Меньше британцев. Британцы в основном пожилые, русские помоложе.

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

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

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

Островные особенности.
Источник пресной воды – дожди. Воду собирают в водохранилище. Water authority агитирует экономить воду. Счета приходят раз в 3 месяца, их можно оплатить онлайн. Я заплатил за воду около 20 евро за 2 месяца. Кстати,

Одно из любимых времяпрепровождений местных – готовка шашлыка. Делают это везде: на природе, на пляже, на верандах, на крышах.

2014   кипр   по-русски

Что почитать про JavaScript

Скопилось интересных технических ссылок

Еще один “костыль”, или закономерность (зависит от точки зрения) для более строгой работы с объектами в джаваскрипте в стандарте es6.
http://www.nczonline.net/blog/2014/04/22/creating-defensive-objects-with-es6-proxies/

Антипаттерны работы с промисами. Всем, кто использует промисы с более, чем с одним then посвящается
http://taoofcode.net/promise-anti-patterns/

Профилирование памяти с хром девелопер тулз.
https://developer.chrome.com/devtools/docs/javascript-memory-profiling

Трюки повышения js производительности на мобильных. Отлично срабатывают и на десктопе в большом приложении
http://cubiq.org/performance-tricks-for-mobile-web-development

Как работают браузеры. То, что раньше собиралось по частям в интернетах, теперь в одной статье:
http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

Еще про оптимизацию: ограничение reflow границами элемента. В комментах высказываются сомнения по поводу актуальности метода.
http://wilsonpage.co.uk/introducing-layout-boundaries/

Следующий спорный, но, “если аккуратно, то можно” хак насильного подключения hardware acceleration для рендеринга слоя
http://aerotwist.com/blog/on-translate3d-and-layer-creation-hacks/

Объяснение как работает event-loop и асинхронность в джаваскрипте

2014   по-русски   что почитать
Earlier Ctrl + ↓