Search
Write a publication
Pull to refresh
27
0
Maksim @MuLLtiQ

Software engineer

Send message

Юзабилити Facebook. Часть 1: Масштабы бедствия

Reading time5 min
Views26K
image

Я всегда считал, что сайты из мирового топа могли бы быть и поудобнее, учитывая их грандиозную посещаемость. С тех пор как я узнал о существовании Facebook, раз пять честно пытался стать пользователем этого ресурса и по сей день обхожу его стороной, совсем позабыв пароли от старых учеток. Путешествуя по миру, я часто встречал людей, для которых иметь аккаунт в Facebook было столь же естественно, как и мобильный телефон. А вот в России предпочтение отдают отечественным аналогам. Чем же наших не устраивает признанная во всем мире соцсеть? Зачем идти путем создания местных социальных ресурсов наперекор процессу глобализации? Я зарегистрировался в Facebook в шестой раз и хочу поделиться своими мыслями относительно юзабилити этого прославленного ресурса.
Читать дальше →

Mozilla предлагает создавать «тяжёлые» 3D-игры для web на их новом движке

Reading time1 min
Views26K
Сегодня Mozilla совместно с игровой студией Epic Games выступила с инициативой создания визуально привлекательных 3D-игр, которые не должны уступать декстопным аналогам, и выполняться прямо в браузере.

Фактически речь идёт о том, чтобы перенести в веб опыт создания качественных, требующих высокой производительности, игровых приложений, которые должны будут выполняться обновленным движком JavaScript OdinMonkey, который недавно был включён в ночные сборки FireFox и скорость выполнения кода на Asm.js которым в 10 раз превышает аналогичный в других браузерах. Причём это всё без сторонних плагинов вроде Flash или Silverlight — чистый JavaScript.

Тот визуальный опыт, который должен получить геймер в интернете, играя в 3D-игру, предлагается оценить на видео ниже — так выглядит порт Unreal Engine 3, сделанный инженерами Epic Games и Mozilla:



Узнать подробности

Почему HTML считает, что «chucknorris» — это цвет?

Reading time1 min
Views124K
image

Вы никогда не пробовали задавать цвет фона в HTML при помощи разных строк? Например, строка

<body bgcolor="chucknorris"> test </body>

сделает фон документа кроваво-красным во всех браузерах и на всех платформах (jsfiddle).

Кстати, если слово chucknorri тоже приводит к красному цвету, то chucknorr дает желтый!

Стало интересно, почему так происходит? Добро пожаловать под кат.
Читать дальше →

Более 500 000 пользователей Google Reader перешли на Feedly за два дня

Reading time1 min
Views54K
На сайте Feedly зарегистрировалось более 500 тыс. пользователей в последние 48 часов. Это абсолютный рекорд за всю историю развития сервиса. Владельцы портала с радостью принимают новых юзеров и приветствуют каждого.

Главными задачами Feedly на ближайшие 30 дней являются: 1) обеспечить бесперебойную работу сервиса; 2) прислушиваться к советам пришедших пользователей относительно новых функций; 3) добавлять новые функции каждую неделю. По крайней мере, такие задачи разработчики Feedly поставили перед собой. Чтобы обслужить возросшую аудиторию, пропускную способонсть каналов с хостинга уже увеличили в 10 раз.

Закрытие Google Reader приведёт к тому, что посещаемость многих сайтов упадёт 1 июля 2013 года, но у оставшихся пользователей появится более удобный и функциональный RSS-агрегатор.

Чем может грозить точка в конце доменного имени

Reading time4 min
Views98K
Существует такое понятие, как корневой домен, соответственно, в конце каждого домена есть точка. Возможно, вы и не подозреваете, что ваш сайт доступен по доменному имени с точкой в конце (domain.zone.), так как браузеры позволяют обращаться к сайтам, как с точкой в конце домена, так и без неё.
Читать дальше →

Полезные техники HTML, CSS и JavaScript

Reading time8 min
Views101K
Техника – это способ справиться с заданием, и у нас, разработчиков и дизайнеров фронтэнда, этих способов бывает достаточно много. При это, будучи погруженными в рутинную работу, мы порой не всегда замечаем как стремительно меняется окружающая нас сфера. В период с 2002 по 2010 годы сообщество фронтэнд-разработчиков буквально покрывалось язвами избыточного кода и ресурсов, от которых страдали и работа сайтов, и удобство их использования. Чтобы с этим справиться, мы придумали уйму хаков, трюков и уловок под кодовым названием «техника». Мы по-прежнему продолжаем выполнять поставленные перед нами задания, просто используем не самые эффективные способы.



Оборачиваясь назад, отметим, что в последние несколько лет установились новые, лучшие, стандарты и способы их применения, позволяя нам создавать более продвинутые «техники». Этот новый мир, открытый перед нами, называется «modern web». Web 2.0, которым восхищались в свое время, сегодня для нас стал запутанным и застойным. С одной стороны нет сомнений в том, что подобная судьба постигнет и то, что мы называем «modern web». С другой — пока что мы можем использовать этот термин и злоупотреблять им сколько угодно, пока понимаем, что он означает.



В 2010 появился стандарт HTML5, обеспечивающий совершенно новую, полустандартизованную веб-среду. Такие браузеры, как Opera, Firefox, Chrome и Safari приняли нововведения, и их разработчики вышли за пределы реализации стандартов и изучения интерфейса программирования приложений. Чтобы представить себе, насколько автономны эти браузеры, можно ознакомиться с отличной наглядной демонстрацией поддержки HTML5 на www.html5readiness.com.
Читать дальше →

Введение в Javascript Source Maps

Reading time7 min
Views136K
Вы когда-нибудь думали, как было бы здорово, если бы слитый в один файл и минифицированный яваскрипт код в production-окружении можно было удобно читать и даже отлаживать без ущерба производительности? Теперь это возможно, если использовать штуку под названием source maps.

Если коротко, то это способ связать минифицированный/объединённый файл с файлами, из которых он получился. Во время сборки для боевого окружения помимо минификации и объединения файлов также генерируется файл-маппер, который содержит информацию об исходных файлах. Когда производится обращение к конкретному месту в минифицированном файле, то производится поиск в маппере, по которому вычисляется строка и символ в исходном файле. Developer Tools (WebKit nightly builds или Google Chrome Canary) умеет парсить этот файл автоматически и прозрачно подменять файлы, как будто ведётся работа с исходными файлами. На момент написания (оригинальной статьи — прим. перев.) Firefox заблокировал развитие поддержки Source Map. Подробнее — на MozillaWiki Source Map.
Читать дальше →

Вышел CoffeeScript 1.6.1 с поддержкой Source Maps

Reading time1 min
Views11K
Случилось то, чего мы ждали уже давно. Благодаря усилиям Jason Walton теперь CoffeeScript поддерживает Source Maps, и мы можем отлаживать код на CoffeeScript прямо в браузере (Chrome, Firefox Nightly, Webkit Nightly). Теперь практически не осталось причин не использовать этот великолепный язык в своих веб-проектах.

Отладка с данным нововведением выглядит вот так (поддерживаются breakpoints, можно смотреть переменные, стек и т.п.):

Читать дальше →

История операционной системы GNU, или что случилось с Hurd?

Reading time9 min
Views42K
Вниманию читателей предлагается перевод статьи «Whatever happened to the Hurd? — The story of the GNU OS», опубликованной в журнале Linux User & Developer в декабре прошлого года.

Работа над операционной системой GNU ведется без малого тридцать лет — с 1983 г. Впервые интерес к микроядру Mach, которое разрабатывалось в университете Карнеги-Меллон (CMU), в качестве ядра своей операционной системы Фонд свободного программного обеспечения (FSF) проявил еще в 1987 г., но его исходный код не распространялся под подходящей лицензией вплоть до 1991 г. К тому времени Линус Торвальдс уже занимался своим собственным проектом по разработке ядра для IBM-совместимых компьютеров на процессоре i386.

Если бы в свое время Linux не был написан и опубликован под GPLv2, если бы не вписался столь удачно в окружение уже существующих компонентов GNU и не захватил умы и сердца разработчиков по всей планете, — кто знает, быть может, вся «движуха» сосредоточилась бы вокруг Hurd, и мы бы сейчас жили в несколько ином мире. Но на судьбу Hurd повлияли не только стремительный рост популярности Linux или сделанная FSF ставка на микроядро Mach.
Читать дальше →

Миграция на Grunt v0.4

Reading time5 min
Views9.1K

Предисловие


18 февраля вышел релиз Grunt v0.4.0, с чем всех и поздравляю. Если вы еще не знакомы с Грантом — прошу пройти на официальный сайт или почитать ознакомительную статью на Хабре. Вкратце, Грант позволяет автоматизировать склеивание и минификацию js-файлов, запуск тестов, проверку кода с помощью JSHint и многое другое.

Данная статья — история миграции одного приложения с Гранта v0.3.9 на вышедшую v0.4.0. Версии несовместимы и переезд оказался не таким простым делом, как я изначально предполагал. Полная инструкция по миграции на английском находится здесь, она подробнее чем мое описание.

Зачем я использую Grunt


Как любому ленивому frontend-разработчику, мне нужен был инструмент, который автоматизирует рутинные задачи, позволяя сосредоточиться непосредственно на разработке. Так я нашел Грант, который делал за меня следующее:

  • компиляция stylus в css;
  • склеивание js-файлов;
  • проверка JavaScript линтером;
  • минификация склеенных js-файлов;
  • запуск unit-тестов (qUnit);
  • отслеживание изменений исходных файлов и автоматический перезапуск вышеперечисленных задач.
Читать дальше →

Антивирус Бабушкина

Reading time1 min
Views464K


Молодой студент-третьекурсник из АлтГТУ разработал компьютерную антивирусную программу под названием “Иммунитет”. По словам АП, эту программу сейчас устанавливают в некоторых школах Барнаула. На данный момент продано уже более тысячи копий этого антивируса! В основном ее устанавливают на персональных компьютерах, но уже приобрели несколько школ и компаний краевого центра.
Читать дальше →

Humble Bundle Mojam 2, создание игр в прямом эфире

Reading time1 min
Views12K


В течение следующих 78 часов, независимые разработчики из Mojang, Grapefrukt, Ludosity, Oxeye Game Studio, Vlambeer и Wolfire Games будут делать свои игры в прямом эфире уже во второй раз. Mojang, в отличие от остальных, обещают сделать 3 игры вместо одной.
В этом году собранные деньги пойдут в Electronic Frontier Foundation — фонд, отстаивающий права человека в сфере информационных технологий, и Block by Block — сотрудничество UN Habitat и самих Mojang, направленное на привлечение молодежи в обустройство городов. За первые 3 часа вещания удалось собрать $64,000.

Трансляция ведется на страничке самого Humble Bundle

Java 8: от PermGen к MetaSpace

Reading time3 min
Views83K
(Сокращённый перевод статьи Пьера-Хьюза Шарбонне)

Как уже сообщалось ранее на Java One, в Java 8 версии HotSpot планируется отказаться от PermGen пространства в пользу новой его вариации — Metaspace. Ранний доступ к JDK 8 даёт возможность наблюдать Metaspace в действии, чем и воспользовался автор оригинальной статьи чтоб узнать, какие преимущества даёт MetaSpace в сравнении с PermGen, и убедится во всём непосредственно.

Подробнорсти под катом.
Читать дальше →

Магистратура в Техническом Университете Мюнхена

Reading time8 min
Views177K
Привет!

image

Многие читатели хабра — молодые талантливые ребята, заканчивающие университет или находящиеся на одном из старших курсов технических университетов России и СНГ. Наверняка, у многих возникают вопросы, «что делать дальше», «куда идти работать» и так далее. Два с половиной года назад я находился в таком же положении и решил, что еще достаточно молод и красив и успею окунуться с головой в работу позже. А пока, можно посмотреть на другие страны, поучиться и набраться опыта.

Хочу поделиться впечателениями, потому что два года назад я мечтал, что бы появился человек и объяснил мне, как происходит поступление, зачисление, учеба, экзамены, оплата, сдача экзамена по иностранному языку, какой университет лучше и почему и так далее. Но такого человека не было, приходилось везде пробиваться самому сотнями e-mail'ов с вопросами.

Итак, обо всем по порядку:
Читать дальше →

Путешествие исключений между C++ и Python или «Туда и обратно»

Reading time11 min
Views19K
В этой главе сказа про дружбу C++ и Python будет на удивление мало использования Boost.Python. Передача исключений туда и обратно является по сути слабым местом данной библиотеки. Будем обходиться родным API языка Python, а где это возможно использовать Boost.Python.
Тем не менее Boost.Python создаёт окружение, в котором исключения из C++ попадают в Python в виде стандартного RuntimeError, а обратно из Python генерируется исключение C++ типа error_already_set, что означает «тебе что-то прилетело, сходи сам почитай что там». И вот здесь нам как раз будет не лишним использовать C-API языка Python, чтобы вычитать необходимую информацию об исключении и преобразовать в соответствующий класс сообразно логике приложения.
К чему такие сложности? — Дело в том, что в Python, в отличие от C++, кроме текста исключения и его типа приходит ещё и traceback — стек до места возникновения исключения. Давайте немного расширим стандартный std::exception дополнительным параметром для этого stacktrace, а заодно напишем конвертер исключений туда и обратно из классов C++ в классы исключений Python.
Читать дальше →

Заметки о реализации hashCode() в Java

Reading time4 min
Views49K
Часто на собеседованиях приходится спрашивать про функцию hashCode().
Я не буду здесь перечислять все свойства этой функции и ее связь с другой, не менее важной функцией equals(). Данная информация есть во всех учебниках по Java и я не вижу смысла ее здесь повторять. Мне бы хотелось остановиться лишь на одном свойстве: hashCode должен быть равномерно распределен на области значений функции. Я задумался: “А чем гарантировано равномерное распределение?”

Забегая вперед, скажу, что я пришел к довольно интересным выводам. Мне бы хотелось, чтобы меня поправили, если я где-то ошибся в рассуждениях.
Начнём...

Интерактивная обучалка ветвлению в Git

Reading time1 min
Views80K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

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

image
Читать дальше →

Python в Европе под угрозой

Reading time2 min
Views46K
Некоммерческая организация Python Software Foundation бьёт тревогу: объявилась некая британская фирма, которая пытается зарегистрировать торговую марку Python для программного обеспечения, сервисов и т.д. на территории всего Евросоюза.

Эта компания 13 лет назад зарегистрировала домен python.co.uk. Раньше она просто направляла трафик с этого домена на свои сайты veber.co.uk и pobox.co.uk, но теперь родительская компания приняла решение, что может использовать название Python в своём бизнесе.

Организация Python Software Foundation нуждается в свидетельских показаниях, что слово Python использовалось до того, как был зарегистрирован домен python.co.uk. Организация обращается ко всем компаниям в ЕС, которые используют программное обеспечение на Python, с просьбой прислать письмо, которое можно предъявить в суде.
Читать дальше →

Велосипед: Promises в Node.js

Reading time6 min
Views33K
Добрый день, Хабрахабр.

Предисловие


Была довольно простая задача: получить набор документов из базы, каждый документ преобразовать и отправить пользователю все преобразованные документы, порядок их менять нельзя, для обработки документа используется асинхронная функция. Если на каком-то документе вылезла ошибка — документы мы не отправляем, только ошибку и заканчиваем обработку документов.
Для решения задачи была выбрана библиотека Q, так как сам поход Promise мне симпатичен. Но возникла одна загвоздка, вроде бы элементарная задача, а выполняется больше секунды, а точнее 1300 мс, вместо ожидаемых 50-80 мс. Дабы разобраться, как все устроено и проникнуться асинхронностью было решено написать специализированный «велосипед» под данную задачу.

Итак!

ECMAScript Harmony и Node.js

Reading time4 min
Views19K
Начну издалека. С браузеров. Новинками браузеростроения интересуюсь не так уж и часто, но вот однажды, со скуки, решил посмотреть, что javascript грядущий нам готовит и что с этого нам могут предложить современные браузеры. Речь идет, само собой, не о ECMAScript 5, а уже о ECMAScript 6 ECMAScript Harmony. Через пару минут серфинга я наткнулся на такую вот сводную табличку. Не самая актуальная — Chrome, например, довольно давно поддерживает Proxy. Само собой, разброд оказался еще тот. В браузере это использовать пока не реально.
В браузере. А на сервере? На сервере нет необходимости поддерживать зоопарк различных браузеров. Node.js использует V8 — тот же javascript движок, что и Chrome, соответственно, он должен поддерживать те же новые возможности языка.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity