Pull to refresh
-3
0

Разработчик .Net

Send message

Оптимизируем производительность JavaScript для V8

Reading time6 min
Views28K

Предисловие


Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
Читать дальше →
Total votes 75: ↑73 and ↓2+71
Comments62

Переносим весь офис в «облако»: ни байта на локальных машинах

Reading time5 min
Views61K
Принцип очень простой: нужно оставить каждому пользователю по самой простой машине с браузером, а все приложения и все данные держать в ЦОДе. Там же, в дата-центре, можно создать для каждого пользователя виртуальный рабочий стол, куда можно будет заходить по аналогу RDP.

Чтобы всё это нормально работало, нужно решение, которое будет обеспечивать наличие таких рабочих столов в облаке, доставку приложений, менеджмент данных и транспорт информации с устройств ввода-вывода до конечного пользователя. Это Citrix XenApp.

Чтобы всё это работало почти «из коробки» и раза в полтора дешевле, мы сделали очень интересное SaaS-решение в своём облаке. Но для начала пройдёмся по основным моментам, облегчающим работу IT-отдела и экономящим средства.
Читать дальше →
Total votes 43: ↑30 and ↓13+17
Comments109

Сглаживание веб-шрифта при помощи CSS3

Reading time2 min
Views69K
7 июня EA Games запустили новую версию своего сайта. Интерфейс устроен неплохо, однако веб-шрифты выглядят такиииииими уродскими.

И, кажется, я нашёл решение, позволяющее сгладить шрифт при помощи CSS3-свойства text-shadow. Оно превосходно работает на Windows XP (отображаются ли шрифты ClearType или стандартным методом) и в более старых операционных системах, если браузер современный.

[демонстрационная иллюстрация]

Посмотреть этот фокус.

Читать дальше →
Total votes 54: ↑45 and ↓9+36
Comments30

Математический подход к созданию сайтов

Reading time8 min
Views66K
«Математика прекрасна». Это может показаться абсурдным, для людей которые при одном только упоминании математики вздрагивают. Однако некоторые из самых красивых вещей в природе и нашей Вселенной — это проецирование математических свойств, от самых маленьких до крупнейших галактик. Один из древних философов, Аристотель сказал: «математическим наукам свойственно выстраивать все по порядку, в симметрии и ограничениях, они являются главными формами прекрасного».

Из-за своей природной красоты, математика является частью искусства и архитектуры. Но она практически не применяется  для дизайна сайтов и приложений. Это наблюдается из-за того, что многие не сопоставляют математику с дизайном. Хотя, наоборот, математика может быть инструментом для производства, поистине волшебных конструкций. Тем не менее, вы не должны полагаться на математику для каждого своего творения. Дело в том, что вы должны рассматривать математику как вашего помощника. Для наглядности мы создали пару сайтов, которые представляют математические принципы, обсуждаемые в этой статье. Мы также создали рекомендации, которые можно использовать в дизайне.

Читать дальше →
Total votes 145: ↑107 and ↓38+69
Comments33

Используем возможности Wolfram Mathematica в .NET приложениях

Reading time3 min
Views22K
Есть люди, которым нравится писать .NET приложения. Есть люди, которые любят системы компьютерной алгебры. В этой статье круги Эйлера пересекутся!


Читать дальше →
Total votes 39: ↑32 and ↓7+25
Comments14

Оптимизация сложных запросов MySQL

Reading time5 min
Views69K

Введение


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

Прежде всего хотелось бы ограничить круг рассматриваемых проблем оптимизации «широкими» и большими таблицами. Скажем до 10m записей и размером до 20Gb, с большим количеством изменяемых запросов к ним. Если в вашей в таблице много миллионов записей, каждая размером по 100 байт, и пять несложных возможных запросов к ней — это статья не для Вас. NB: Рассматривается движок MySQL innodb/percona — в дальнейшем просто MySQL.
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments20

Что такое LTE и 4G от МегаФона

Reading time5 min
Views234K

LTE?


Что такое LTE? Это и есть 4G? Какое оно бывает, почему нельзя купить LTE-терминал в Америке и работать на нем в Европе? Эти, и не только, вопросы возникают у любого человека столкнувшегося с LTE.

Теория.


LTE – Long Term Evolution, эволюция с «хорошей» перспективой (про перевод можно поспорить, но именно такой вариант близок к сути). Согласно 3GPP стандарту 4G соответствует LTE Advanced, таким образом это еще не эталонный 4G. LTE, в определенных кругах, называют pre-4G. Не будем огорчаться и рассмотрим подробнее LTE.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments70

Психиатр о запретах Youtube, Wifi для детей, блокировании сайтов

Reading time3 min
Views229K
Когда моего знакомого психиатра А.Г. Данилина переполняет профессиональное чувство глупости мира сего, он просит сделать ролик, где делится своими мыслями со зрителями. Я думаю, что разговор получился довольно интересный.



«Я понимаю, что это очередной глас вопиющего в пустыне, но так как 10 октября мы празднуем день психического здоровья, то мне очень хочется, как профессионалу с большим стажем сообщить тем, кто захочет посмотреть это видео, что политика тотальных запретов не в состоянии привести общество и человека к состоянию психического здоровья.
Читать дальше →
Total votes 338: ↑325 and ↓13+312
Comments323

Как работают беспроводные универсальные зарядные устройства Qi

Reading time3 min
Views113K
Как вы знаете, наши новейшие смартфоны Nokia Lumia 920 и Nokia Lumia 820 имеют возможность беспроводной зарядки: флагманская модель заряжается по воздуху «из коробки», а для Lumia 820 необходимо приобрести сменный корпус с возможностью беспроводной зарядки.


Миру уже были показаны устройства с беспроводной зарядкой, например зарядное устройство Touchstone для Palm Pre, Powermat для iPhone, индукционнные зарядки от Energizer. Но в отличие от этих зарядок, созданных по собственным спецификациям, а значит несовместимых с другими устройствами, мы используем стандарт Qi — единственный глобально принятый интерфейс беспроводной зарядки устройств, созданный консорциумом Wireless Power Consortium, состоящим из более чем 100 различных компаний.

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

Как это работает?
Total votes 58: ↑50 and ↓8+42
Comments103

Пишем сложное приложение на knockoutjs

Reading time8 min
Views47K
Есть такая библиотека knockout.js. Она отличается от прочих хорошим туториалом для начинающих и кучей понятных рабочих примеров. Еще там стройная MVVM модель, декларативные связи и так далее.

Короче, если вы, как и я, поиграли с этой библиотекой, понаписали красивых формочек, и вам это понравилось, то все это дело захотелось применить на реальном проекте. И тут проблема — в реальном проекте формочек больше чем одна. А раз такие инструменты, то хочется single web page application и никак иначе. А делать один контроллер и все темплейты заверстывать на одну страницу тоже тупо и тормозно.

Под катом приведу основу своего сложного приложения. Само оно совсем не сложное, но модульное и допускает расширения, а темплейты и модели подгружаются динамически. Идея была подсмотрена в этой презентации — http://www.knockmeout.net/2012/08/thatconference-2012-session.html, код презентации выложен на github — https://github.com/rniemeyer/SamplePresentation — на базе этого кода будем писать свой.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments21

Функциональное программирование на Javascript

Reading time15 min
Views129K


Краткое содержание:

Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.

Человеческим языком:
Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.

В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.

Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.

Читать дальше →
Total votes 123: ↑114 and ↓9+105
Comments54

Хитрости Chrome DevTools

Reading time1 min
Views22K


Илья Григорик из компании Google собрал подборку малоизвестных функций Chrome DevTools, которые можно использовать для оптимизации производительности. Илья также упоминает несколько сторонних плагинов и библиотек, полезных для разработчика, и многочисленные другие хитрости: например, возможность дебаггинга iOS-приложений или кода, исполняемого на подключённом Android-устройстве.
Total votes 36: ↑28 and ↓8+20
Comments14

Понимание ООП в JavaScript [Часть 1]

Reading time16 min
Views338K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Total votes 129: ↑119 and ↓10+109
Comments71

Эффектная анимация разрушения (Pixel Dust) на JavaScript

Reading time5 min
Views43K
В процессе развития нашей игры на HTML5, мы столкнулись с дилеммой: рисовать для каждого элемента эффект разрушения или попробовать сделать это программно на JavaScript (canvas). Если с первым способом всё понятно (проверенно работает, но много работы художнику), то со вторым у нас были сомнения относительно скорости рендера, ведь это 60FPS x 64 x 4 байта ~ 1 МБ/сек. на один элемент, а если их 40 на одном экране?

Как оказалось, наши сомнения были напрасны...
Total votes 105: ↑104 and ↓1+103
Comments55

Создание минидампов в проектах на C# 4.0, разрабатываемых в VS 2010

Reading time4 min
Views11K
Для создания минидампов в управляемой среде используются возможности библиотеки DbgHelp.dll. Рассмотрим применение ее функционала на примере готового проекта на WinForms.

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

Игра MMO на карте комикса Click and Drag

Reading time1 min
Views19K


Огромную площадь 13 гигапикселов комикса xkcd Click and Drag можно использовать как карту для многопользовательской игры. Такая идея пришла github-пользователю n01se, и они вместе с Рэнделом Монро воплотили её в жизнь. В игре нет какой-то «цели», это просто техническая возможность путешествовать по карте одновременно с другими игроками, и общаться с ними.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments18

Первые шаги с Chromium Embedded Framework и .NET

Reading time5 min
Views86K
Chromium Embedded Framework (CEF) — это проект с открытыми исходными кодами, созданный в 2008 году как элемент управления Web browser, работающий на базе Chromium от Google.
На данный момент это довольно мощный инструмент для разработки настольных приложений, со списком решений, использующих этот контрол можно ознакомиться здесь. Но достаточно сказать, что его используют такие широко известные продукты, как Evernote и Steam.

Итак, что же дает этот фреймворк?
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments18

NoSQL базы данных: понимаем суть

Reading time9 min
Views582K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Total votes 137: ↑133 and ↓4+129
Comments75

JavaScript — полезные материалы

Reading time2 min
Views79K
Хочу поделиться набором ссылок на нексолько полезных, интересных и, возможно, не самых известных материалов по JavaScript. Из них вы узнаете немного больше об истории появления языка, о его настоящем, тонкостях реализации в различных браузерах, и о будущем развития стандарта ECMAScript. О различных способах наследования в том числе об эмуляции «классического» ООП, множественном наследовании и миксинах. О функциональном стиле программирования в JavaScript: чистые функции, map, reduce, частичное применение и композиции функций. И, наконец, что если бы Хемингуэй писал на JavaScript?
Читать дальше →
Total votes 137: ↑130 and ↓7+123
Comments29

Подробно о генераторах случайных и псевдослучайных чисел

Reading time11 min
Views321K
На Хабре и в сети часто начали появляться статьи, посвященные уязвимостям генераторов случайных чисел. Данная тема крайне обширна и является одной из основных в криптографии. Под катом находится описание случайных чисел от A до Z. Статья является результатом свободного перевода цикла статей из одного западного блога и личных дополнений автора. Основная цель — получить feedback и поделиться знаниями.
image
Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments22

Information

Rating
Does not participate
Location
Брянск, Брянская обл., Россия
Date of birth
Registered
Activity