Pull to refresh
52
0
Дмитрий @mrded

Senior Pomidor

Send message

Ещё раз о Deferred/Promise

Reading time7 min
Views77K
DeferredТак получилось, что последние несколько недель очень часто приходилось слышать слова Promise и Deferred от разных людей. Как правило, этими понятиями оперируют уже повидавшие виды разработчики, столкнувшиеся в своей деятельности с определенными задачами.

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

Да, вероятно для тех, кто знаком с этим вопросом он покажется пустяковым и не стоящим и выеденного яйца. Кроме того, вопрос уже многократно обсуждался. Однако, я наберусь смелости еще раз его затронуть и вот почему: 1) Мне кажется, что для некоторых читателей этот пост может оказаться интересным. 2) Я пойду от практики, а не от теории. Моя задача — продемонстрировать работу инструмента. Теорию и другие варианты применения при необходимости вы найдете в ссылках к посту.

Ниже я попробую показать вам что Promise и Deferred это очень и очень просто. Кроме того, для объяснения этой темы, мне придётся затронуть еще несколько интересных моментов JavaScript.

Читать дальше →
Total votes 43: ↑31 and ↓12+19
Comments28

Оптимизация и ускорение N900

Reading time4 min
Views11K
Наверное все, кто активно пользуется N900, сталкивались с ситуациями, когда система начинала подтормаживать при копировании по сети больших файлов на большой скорости, или когда после недели активного пользования, начинало быть заметным общее подтормаживание системы и выявить виновника через top/htop не удавалось, приходилось спасаться перезагрузкой. Это конечно не проблема, но как факт очень неприятен — не Linux-way как-бы.

Но, как оказалось, это решаемо. Ещё со времен N8хх народ активно экспериментировал с различными настройками ядра Linux, которые позволят избавиться от подобных вещей на мобильных девайсах, и настройки эти, будучи эмпирически выведенными и проверенными, и вправду очень благополучно сказываются на поведении системы. Благополучно настолько, что система продолжает быть весьма отзывчивой даже при захлебывающимся от радости торрент-клиенте Transmission, принимающим файлы на полной скорости, и после недельного аптайма система продолжает работать плавно и даже при 30 открытых окнах браузера переключение тасков происходит также как и при двух (чего нельзя было наблюдать до нижеописанного способа оптимизации системы). А теперь к делу.

Кому лень читать и разбираться — ставите из репозиториев(сейчас в extras-testing) программу Swappolube («смазка для свопа», если буквально), запускаете и радуетесь жизни. Кому не лень — делаете тоже самое и продолжаете читать. :)


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments14

Maemo-MeeGo story

Reading time18 min
Views16K
21 июня 2011 года Nokia представила смартфон N9 с операционной системой MeeGo Harmattan на борту. Смею утверждать, что N9, — единственный вау-продукт после появления на рынке iPhone. Но на момент презентации N9 уже было известно, что финский IT-гигант заключил долгосрочный союз с корпорацией Microsoft, и N9 станет первым и единственным смартфоном Nokia на MeeGo Harmattan.
Читать дальше →
Total votes 114: ↑103 and ↓11+92
Comments113

Вышла MeeGo 1.0

Reading time1 min
Views16K
   Погодка сегодня может и подкачала, но для настоящих хороших новостей все это не помеха. Разработчики многообещающей платформы MeeGo разродились первым релизом своей новой операционной системы!

image
Читать дальше →
Total votes 73: ↑51 and ↓22+29
Comments64

TempleOS: библейская операционная система, которую пишет шизофреник

Reading time6 min
Views78K
Дистрибутив операционки крошечный — всего 17 мегабайтов. Его можно быстро скачать и опробовать.

Целевая платформа — x86-64. Маловероятно, что кто-то будет экспериментировать с подобным в качестве реально установленной операционки, поэтому нам понадобится любая виртуальная машина, к примеру, VirtualBox или QEMU. Сам создатель пользуется коммерческой VMware Workstation. Задайте для виртуальной машины как минимум полгигабайта памяти.



Со скачанного образа можно просто загрузиться и работать в режиме LiveCD или установить систему на диск. Установка TempleOS не сложнее, чем установка любой современной операционной системы. Нужно лишь несколько раз нажать на клавишу y и дождаться копирования файлов.
Читать дальше →
Total votes 53: ↑47 and ↓6+41
Comments71

Однажды программисты погубят этот мир

Reading time8 min
Views70K


1. История первая: воспоминание


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

А ведь самое логичное объяснение — он сам упал. Просто он рос, выбрасывал новые побеги, развивал и наращивал массу. Тянулся к солнцу. Однажды проекция центра тяжести цветка вышла за пределы опоры и он опрокинулся.

Не знаю, зачем я это все пишу. Возможно меланхолия пришла вместе с осенью и желтыми листьями. Иногда мне кажется, что наука программирования так стремительно развивается, так идет вперед семимильными шагами, так быстро создает новые технологии, что однажды человек не сможет все это обуздать.
Читать дальше →
Total votes 134: ↑121 and ↓13+108
Comments199

Material Design и AngularJS

Reading time6 min
Views68K
Ни для кого не секрет, что Google повсюду в своих продуктах внедряет так называемый material design. Как и любой другой стиль он имеет сторонников и противников. Не буду касаться этих споров. Если вам нравится данный подход, Google подготовил полную спецификацию и описание особенностей: Material Design.

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

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

image
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments20

Библия движений Doom. Часть 1

Reading time9 min
Views40K
Здравствуйте и добро пожаловать в Библию движений Doom! В статье разобраны и рассортированы по категориям все причуды и капризы кода движений в Doom, включая замысловатые трюки с описанием их работы.



Метрика


Начнем с основ. Код движка для движений игрока в Doom имеет следующий вид:
  • Сбор исходных данных игрока
  • Применение векторов движущей силы к игроку на основе исходных данных
  • Сжатие скорости игрока, если она слишком велика
  • Проверка, расчеты и перемещения
  • Использование ускорения через трение для следующего движения игрока

Рассмотрим все поподробней.
Благодаря только этому и паре переменных мы сможем определить возможные максимальные скорости персонажа игрока.

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

Читать дальше →
Total votes 77: ↑72 and ↓5+67
Comments9

Почему у тех, кто работает мало, продуктивность выше

Reading time3 min
Views6.6K
Гибкий график и распространение мобильных устройств размывают границу между рабочим днем и семейным ужином. 36% сотрудников регулярно проверяют почту и другие рабочие коммуникации в нерабочее время.

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


Читать дальше →
Total votes 17: ↑8 and ↓9-1
Comments4

Microsoft покупает LinkedIn за $26.2 млрд. Зачем?

Reading time3 min
Views18K


Вчера стало известно о том, что корпорация Microsoft договорилась с социальной сетью Linkedin о ее покупке за $26.2 млрд. Это около 30% наличных средств, которые сейчас есть в распоряжении Microsoft. Такая высокая цена обусловлена тем, что социальная сеть находится в активной стадии развития, и приносит своим владельцам прибыль. Кстати говоря, это первое крупное поглощение, совершаемое Microsoft с момента прихода на пост руководителя компании Сатьи Наделлы. Если что-то пойдет не так, вполне возможно, что Наделле придется уйти со своего поста.

Руководитель компании разослал сотрудникам Microsoft подробное письмо с объяснением необходимости покупки LinkedIn. В частности, Наделла говорит, что приобретаемая социальная сеть это ключевой инструмент для профессионалов, с 433 миллионами участников сообщества. Также у LinkedIn более 2 млн подписчиков на платные услуги, предоставляемые ресурсом. У Microsoft около 1,2 млрд подписчиков Office, но прямой связи с ними нет. Для совершенствования же существующих сервисов и создания новых корпорации нужная информация о человеческих ресурсах на рынке труда. Теперь же компания получит эти данные, и сможет создавать новые бизнес-ориентированные продукты.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments30

Илон Маск об экспедиции на Марс: «Опасно, и, вероятно, погибнут люди»

Reading time6 min
Views37K
Но заселение Марса, по его мнению — единственный надежный способ сохранить человечество


Космический корабль Dragon на Марсе (работа художника)

Еще в 2014 году Илон Маск дал обширное интервью относительно планов заселения Марса. По словам предпринимателя, заселить Красную планету необходимо для будущего человечества — это надежный способ сохранить нашу цивилизацию. К 2100 году, как считает Маск, на Марсе должно быть уже около миллиона человек. Все они смогут обеспечить генетическое разнообразие, достаточное для развития всей популяции «марсиан». Сделать это нужно, исходя из нескольких соображений. Во-первых, заселение соседней планеты позволит сохранить цивилизацию, если на самой Земле произойдет катастрофа. Во-вторых, заселение планет Солнечной системы — это нечто вроде трамплина для выхода человека к звездам. Это прототип планетарной колонии, который поможет заселять любые другие планеты, в любом другом регионе Вселенной. Элон Маск даже высказал такое мнение, понятное без перевода: «Fuck Earth! Who cares about Earth?».

Правда, плоды заселения Марса будут пожинать потомки первых колонистов, а им самим придется туго. Основная проблема — отсутствие возможности получить помощь извне. Если случается какая-то мелкая поломка (мелкая по меркам Земли) то в условиях Марса она может стать критической. Все это известно, но не влияет ни на желание тысяч людей стать теми самыми первопроходцами, ни на желание Маска обеспечить этим людям транспорт на Марс. Сам он основал SpaceX 14 лет назад только с одной целью — подготовка пилотируемой экспедиции человека на Марс.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments222

Angular Attack: мой опыт участия в хакатоне

Reading time7 min
Views12K


Angular 2 сегодня считают этаким «new kid on the block». Он многим интересен, без его упоминания не обходится практически ни одна крупная front-end конференция, и уже сейчас он готов бросить вызов React. Но до лучей абсолютной славы еще далеко — официального релиза еще не было, хотя в бою фреймворк может попробовать любой желающий. Мы в Wrike, например, уже вовсю используем Angular 2 в продакшне.

Ребята из Google активно привлекают внимание к новому фрейворку и даже недавно провели 48-часовой онлайн хакатон ANGULAR ATTACK, который собрал несколько сотен участников. По его результатам было опубликовано более 270 работ. В этой статье я хочу поделиться опытом своего участия в хакатоне, впечатлениями и наблюдениями, которые могут вам помочь в подобных состязаниях. Добро пожаловать под кат.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments16

Опыт перехода сайта на Single Page Application с упором на SEO

Reading time5 min
Views55K

Привет всем.


Мы классический web 2.0 сайт сделаный на Drupal. Можно сказать, что мы медиа сайт, т.к. у нас очень много всевозможных статей, и постоянно выходят новые. Мы уделяем много внимания SEO. У нас для этого даже есть специально обученные люди, которые работают полный рабочий день.


К нам заходит более 400k уникальных пользователей в месяц. Из них 90% приходит из поиска Google.


И вот уже почти полгода мы разрабатывали Single Page Application версию нашего сайта.


Как вы уже наверное знаете, JS это вечная боль сеошников. И нельзя просто так взять и сделать сайт на JS.


Перед тем как начать разработку мы начали исследовать этот вопрос.
И выяснили, что общепринятым способом является отдача google боту уже отрисованой версии страницы.
Making AJAX applications crawlable


Также выяснилось, что этот способ более не рекомендуется Google и они уверяют, что их бот умеет открывать js сайты, не хуже современных браузеров.


We are generally able to render and understand your web pages like modern browsers.

Т.к. на момент принятия нашего решения Google только-только отказались от подобного метода, и еще никто не успел проверить как Google Crawler на самом деле индексирует сайты сделаные на JS. Мы решили рискнуть и сделать SPA сайт без дополнительной отрисовки страниц для ботов.

Читать дальше →
Total votes 61: ↑50 and ↓11+39
Comments93

Интервью без сучка и задоринки: как программисту успешно пройти собеседование

Reading time14 min
Views57K
Пост подготовлен специально для корпоративного блога Wirex — компании, предлагающей удобное мобильное финансовое приложение для управления личными счетами. Изначально статья задумывалась как подготовительный материал, который автор отправляет своим кандидатам, но в итоге последний решил опубликовать его в открытом источнике, а мы, посчитав тему интересной, сделали перевод для вас, уважаемые читатели.

Тот факт, что вы являетесь хорошим программистом, играет поразительно малую роль при прохождении собеседования. Для того чтобы ваша работа была продуктивной, вам нужно уметь решать огромные, склонные разрастаться проблемы неделями и месяцами. Каждый вопрос на собеседовании, напротив, длится менее одного часа. Для того чтобы хорошо показать себя на интервью, вы должны знать, как быстро решать небольшие проблемы под давлением, при этом ясно излагая свои мысли. Это совершенно другое умение (в то же время я не говорю, что способность с легкостью решать задачи на собеседовании не имеет никакой связи с навыками программирования. Просто эта связь выражена куда слабее, чем считают многие компании, и именно другими факторами, отличными от специализированных умений, объясняется столь внушительное расхождение).
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments20

Happstack Lite: Веб-фреймворк на Хаскеле

Reading time9 min
Views13K
image
Картинка для привлечения внимания, clckwrks — веб-фреймворк, тесно связанный с Happstack.

Happstack — веб-фреймворк с большими возможностями и богатым API, который развивался на протяжении последних семи лет, чтобы соответствовать нуждам повседневной веб-разработки. К сожалению, богатый и гибкий API может быть бесполезным и запутывающим, когда вам нужно что-то простое. Однако многие и не догадываются, что под крылом Happstack кроется очень элегантный и простой в использовании веб-фреймворк Happstack Lite.

Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments25

Yesod = Haskell $ Web

Reading time5 min
Views23K
Haskell — пока еще единственный язык программирования, в котором есть оператор «фтопку» (>>=)

Абсурдопедия


Планировал начать с описания того, как ошибаются люди, полагающие Haskell бесполезным с практической точки зрения, сферическим языком в вакууме и т.д. Но, боюсь, за меня все уже сделали авторы Real World Haskell. Была идея рассказать о том, насколько красив и могуч этот язык программирования — но подвел тяжелый слог и неумение придумать захватывающий сюжет с неожиданной развязкой. Поэтому отброшу все лишнее и расскажу о своих злоключениях веб-разработки на Haskell.
Читать дальше →
Total votes 40: ↑30 and ↓10+20
Comments24

XMonad + XMobar = ❤

Reading time10 min
Views69K
Многие слышали про тайловые оконные менеджеры, некоторые даже слышали о XMonad. А ребята из Google даже променяли Unity/Gnome на XMonad. Что же это такое, как это настраивать и как с этим жить? Краткий workaround для любителей кастомизировать всё подряд.


Подробности
Total votes 42: ↑36 and ↓6+30
Comments94

Haskell в реальном мире

Reading time21 min
Views18K
В этом блоге уже много написано о самом языке Haskell, и было несколько статей о его практическом применении. Сейчас я вдохновенно расскажу еще об одном реальном применении языка в производстве.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments59

Через тернии к Haskell (перевод). 2/2

Reading time18 min
Views45K
Только хардкор, только монады
Total votes 73: ↑69 and ↓4+65
Comments8

Через тернии к Haskell. 1/2

Reading time25 min
Views223K


Первая часть короткого и жесткого введения в Haskell. Вторую часть можно найти здесь

tl;dr: Очень краткое и сжатое введение в Haskell.


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга
Total votes 137: ↑133 and ↓4+129
Comments52
1
23 ...

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity