Pull to refresh
96
0
Mithgol the Webmaster @Mithgol

вебмастер, фидошник

Send message

Анимация листа со спрайтами посредством steps()

Reading time 1 min
Views 28K
[иллюстрация принципа]

Если вам не хочется использовать гифы на сайте, а предпочитаете PNG за их лучшую цветность, но всё же нужно анимировать их, тогда вот способ:

у анимаций CSS с ключевыми кадрами есть свойство под названием animation-timing-function. Одна из его возможностей — использовать функцию steps(), как в нижеследующем примере:

div {
    animation: play 1s steps(10) infinite;
}
@keyframes play { 
      0% { background-position:    0px 0; } 
    100% { background-position: -500px 0; }
}

Различие между нею и остальными анимационными функциями состоит в том, что вместо плавного движения от 0px к −500px происходят резкие прыжки с паузами между ними. Это идеально подходит для анимаций, использующих лист с покадровым изображением спрайта. В вышеприведённом примере шаг равен 50px, а пауза — 100 миллисекунд (всего 10 шагов).

Вот небольшое демо.

Читать дальше →
Total votes 57: ↑54 and ↓3 +51
Comments 25

OpenStreetMap переходит на Leaflet вместо OpenLayers

Reading time 1 min
Views 22K
Долгое время основной сайт OpenStreetMap использовал джаваскриптовую библиотеку OpenLayers в качестве средства для отображения географических карт на сайте с возможностью их увеличения, уменьшения и перетаскивания мышью, а также выбора «слоёв» (карт и меток).

Вчера (23 ноября) сайт OpenStreetMap перешёл к использованию библиотеки Leaflet, которая умеет всё то же сáмое, при этом отличаясь лучшей поддержкою мобильных устройств, и небольшим размером, и неплохим API.

Это светлый день для Владимира Агафонкина (Mourner), создателя Leaflet, и для всех тех, кто помогал этому проекту с открытым исходным кодом — присылал свой код, помогал идеями, тестировал.

Да и всем пользователям OpenStreetMap будет теперь поудобнее.
Total votes 97: ↑88 and ↓9 +79
Comments 50

На будущей неделе «чёрный список» Роскомнадзора может пополниться блогохостингами Twitter и LiveJournal

Reading time 2 min
Views 66K
Многие читатели Хабрахабра вчера прочли об исключении YouTube из федерального реестра запрещённых сайтов — и расслабились.

Рано, рано расслабились.

На сайте ИА «Росбалт» нетрудно прочесть, что в тот же день (вчера, 21 ноября) Александр Александрович Жаров (глава Роскомнадзора) дал интервью телеканалу «Дождь», в котором сообщил, что Роскомнадзор может занести сайт микроблогов Twitter и блогохостинг LiveJournal в тот же «чёрный список». По его словам, в Роскомнадзор поступили четыре заявки о противозаконной информации, имеющейся в LiveJournal, и ещё две — о Твиттере. Администраторам сайта были направлены официальные уведомления, и Жаров выразил надежду на то, что противоречащее закону «О защите детей от информации, причиняющей вред их здоровью и развитию» содержимое будет удалено из Твиттера и LiveJournal в трёхдневный срок. «Если нет, то эстафетная палочка перейдет к операторам связи», — метафорически дополнил своё высказывание глава Роскомнадзора.

Вот что могут сделать всего полдюжины заявок о противозаконной информации. Вообще же производство таких заявок очень скоро может быть поставлено в России на поток.

Читать дальше →
Total votes 107: ↑88 and ↓19 +69
Comments 207

Значение DOM «window.devicePixelRatio» и свойство CSS «device-pixel-ratio» станут переменными величинами

Reading time 3 min
Views 25K
Более двух лет прошло после начала продаж iPhone 4 летом 2010 года, и за эти два года сайтостроители привыкли проверять джаваскриптом значение window.devicePixelRatio (или же использовать в CSS медиазапрос device-pixel-ratio) как простое и бесхитростное средство, позволяющее тотчас же выяснить, запущен ли сайт на сетчаточном дисплее (retina display) или нет. Если величина devicePixelRatio равна двойке, то перед нами сетчаточный дисплей (четвёртый iPhone, четвёртый iPod Touch, третий iPad, или более новые устройства, или портативный компьютер «MacBook Pro with Retina Display»); если же величина devicePixelRatio равна единице (или не определена), то перед нами дисплей обычной чёткости.

Чуть сложнее, по сравнению с эппловскими, бывает учёт устройств, работающих под Android: там приходится воспринимать дробные величины, не равные единице или двойке. Peter-Paul Koch сообщил во блогозаписи «More about devicePixelRatio» о том, что (по его наблюдениям) в Nexus One величина devicePixelRatio равна 1,5, тогда как в Galaxy Nexus и в Galaxy Note она равна двум в WebKit и 2,25 в Opera Mobile.

Но эти мелкие отличия не меняют картины в целом: все привыкли думать о значении величины devicePixelRatio как о таком свойстве устройства, которое на одном и том же мобильнике (или планшете, или ноутбуке) остаётся беспрерывно постоянным. В частности, именно на этом были основаны все, все рецепты из хабрахабровских блогозаписей «Адаптируем графику под Retina экран», «Распознаём retina-дисплеи джаваскриптом», «Отображаем карты OpenStreetMap на iPhone 4 с учётом сетчаточного дисплея при помощи Leaflet», «Как отличить версию iPad в Safari», «Оптимизация графики для Retina-экранов», «Комплексная подготовка сайта к Retina» и им подобных.

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

Читать дальше →
Total votes 34: ↑24 and ↓10 +14
Comments 31

Значки с изображением собаки Фидо (16×16, 32×32, 48×48, 64×64)

Reading time 1 min
Views 8.4K
Одна картинка стóит доброй сотни слов, да притом и быстрее оказывает впечатление.

Как известно, символом-талисманом (mascot) Сети Фидонет является вислоухая собака, сидящая с дискетою, которую бережно удерживает в зубах. Её текстовое (псевдографическое) изображение встречается, например, в фидонетовском еженедельнике «Fidonews», где выглядит вот как:

                   __
                  /  \
                 /|oo \
                (_|  /_)
                 _`@/_ \    _
                |     | \   \\
                | (*) |  \   )) 
   ______       |__U__| /  \//
  / FIDO \       _//|| _\   /
 (________)     (_/(_|(____/


Хорошо известно также, что Томас Дженнингс, создатель сети, нарисовал её логотип от руки:

[изображение собаки с дискетой]

Меня несколько лет не покидала мысль (я излагал её и отдельно, и в хабрасорсинге) — мысль о том, что из этой собачки неплохо бы сделать значки (размером 16×16, 32×32, 48×48, 64×64 пикселов) для употребления и в HTML-теге <link rel="shortcut icon" href="…">, и в Windows, и в других графических интерфейсах.

Я рад объявить сегодня, что DarkWood воплотил этот замысел. Представляю вашему вниманию нарисованные им значки, которые с его согласия будут распространяться по лицензии Creative Commons Attribution 3.0:

Читать дальше →
Total votes 64: ↑23 and ↓41 -18
Comments 15

Видеозапись настройки и донастройки фидонетовского узла в течение минуты (в крайнем случае, двух минут)

Reading time 1 min
Views 5.2K
В конце октября нынешнего (2012) года в фидонетовской эхоконференции Ru.Husky были выложены гиперссылки на видеозаписи, которые нагляднейше показывают, что новая (сейчас разрабатываемая) версия пакета программ fidoip будет обильно снабжена скриптами для автоматизации большинства основных и типичных действий, необходимых для настройки и донастройки фидонетовского узла или пойнта.

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

Вон там видеозапись про настройку под Windows, а вон там под Linux. Обе видеозаписи длятся минут по восемь. И обе они хостятся на SourceForge, так что по гиперссылкам придётся идти браузером вместо того, чтобы сразу скормить их менеджеру закачек.

Читать дальше →
Total votes 20: ↑14 and ↓6 +8
Comments 11

Практическое руководство по коллективным действиям

Reading time 2 min
Views 9.7K
На сайте Polit.Ru вчера появилась книга Александра Борисовича Долгина «Как нам стать договоропригодными, или Практическое руководство по коллективным действиям» (с подзаголовком «Начала экономической теории клубов»); она доступна и для чтения на самóм сайте, и для скачивания в формате PDF.

Автор книги (известный как основатель «Имхонета») подвергает более или менее обоснованной критике как существующие социальные сети и сообщества, так и их противоположность — краудсорсинг и краудфандинг, полагающиеся на добровольное участие отдельных случайных людей. Идеалом же Долгина, насколько я мог судить по тексту его книги, является широкое распространение клубов людей, связанных общими жизненными, коммерческими, политическими, общественными интересами, притом людей осведомлённых о математических и экономических и айтишных механизмах для получения выгоды из объединения и для нахождения таких коллективных решений, которые действительно устраивают большинство. Также автор считает в ряде случаев желательным или даже категорически необходимым полагаться на репутацию людей вместо того, чтобы обращаться к первым встречным. Ещё он рекомендует в сообществах поскорее устанавливать достаточно жёсткие правила и тем устранять издержки анархии.

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

Пусть название сайта Polit.Ru не заставляет вас заподозрить, что выложенная там книга изобилует политикою. Изо всех рассматриваемых в ней примеров политическими являются, кажется, не более трети, так что она пригодна для хладнокровного прочтения внеполитическим сообществом Хабрахабра. (Увы, их достаточно для того, чтобы понять, что Долгин либерал.)

Читать дальше →
Total votes 17: ↑12 and ↓5 +7
Comments 6

Орловская прокуратура не оставляет вики в покое

Reading time 1 min
Views 49K
Пару недель назад мне довелось упомянуть о том, что в Советском райсуде города Орла прокуратура требовала признать экстремистским сайт «Орлец», построенный по технологии вики (на движке MediaWiki) и допускающий свободное редактирование всеми желающими. (Вкратце напомню: суду были предъявлены итоги оперативно-розыскных мероприятий ФСБ, которыми на сайте были обнаружены шесть вики-статей экстремистского содержания, но при таких спорных обстоятельствах, что защита объявила эти материалы подброшенными на сайт, и «Орлец» был в итоге оправдан.)

А сегодня (23 октября) утром на сайте РИА Новости появилась другая новость, близкая той предыдущей. Используя вступивший в силу 1 сентября закон «О защите детей от информации, причиняющей вред их здоровью и развитию», орловская прокуратура подала на рассмотрение в тот же Советский районный суд новый иск, требующий от одного из местных провайдеров ограничить доступ учащихся лицея № 22 к Википедии — под тем предлогом, что в Википедии есть статья «Русский мат», содержащая множество нецензурных выражений.

Читать дальше →
Total votes 79: ↑69 and ↓10 +59
Comments 163

Новшества node-webkit версии 0.3.0

Reading time 1 min
Views 10K
Zhao Cheng вчера объявил о выходе новой версии движка node-webkit созданного в недрах Intel Open Source Technology Center мощного сочетания WebKit и Node.js, позволяющего создавать кросс-платформенные графические приложения на языках HTML, CSS и JavaScript.

Новая версия будет иметь номер 0.3.0 и выглядеть вот как:

[скриншот]

(На скриншоте изображена демка от AppJS, которую я портировал на движок node-webkit. Запущена она в Windows XP.)

Как видно, новая версия node-webkit теперь куда более походит на Google Chrome по оформлению окна.

И вот список других новшеств этой версии:

Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 18

Пропал значок Хабрахабра

Reading time 1 min
Views 5.8K
Файл http://habrahabr.ru/favicon.ico ещё остаётся на сервере Хабрахабра, однако его адрес теперь не упоминается в исходном коде страниц Хабрахабра.

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

Досадно это. Я полагался на значки, обегая взглядом корешки вкладок, а теперь они стали безликими.
Total votes 66: ↑27 and ↓39 -12
Comments 22

Новые имена подсайтов Node

Reading time 1 min
Views 1.4K
13 октября документация по API движка Node, наряду с прежним (длинным) адресом nodejs.org/docs/latest/api/, получила новый (краткий) адрес — api.nodejs.org.

Дистрибутивы Node, наряду с прежним адресом nodejs.org/dist/, теперь имеют новый адрес — dist.nodejs.org.

Удобно не меньше, чем api.jquery.com для jQuery.
Total votes 17: ↑2 and ↓15 -13
Comments 3

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

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

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

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

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

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

Встречайте бесплатную и свободную гарнитуру Scada

Reading time 1 min
Views 17K
Дизайнер-шрифтовик Иван Гладких, более известный как Джованни Лемонад (Jovanny Lemonad), вчера (9 октября 2012 года) объявил о выходе гарнитуры «Scada», состоящей из четырёх шрифтов (обыкновенного, наклонного, жирного, наклонного жирного).

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

Лемонад с 2005 года создавал эту гарнитуру для одноимённой латвийской дизайн-студии («Scada», г. Рига) совместно с её работниками. Решение сделать шрифт свободным было принято в честь десятилетия студии. (Если пойдёте по этой гиперссылке, то увидите ряд примеров употребления «Скады» при печати на реальной бумаге.)

Гарнитура «Scada» пригодна для набора обыкновенного текста:

[скриншот Scada]

Читать дальше →
Total votes 54: ↑40 and ↓14 +26
Comments 20

Возможность свободного редактирования вики является открытой дверью для провокации ФСБ?

Reading time 2 min
Views 32K
Четыре дня назад (4 октября 2012 года) на сайте ИА REGNUM стало можно прочесть (со ссылкою на блогозапись правозащитника Дмитрия Краюхина) о любопытном судебном разбирательстве, произошедшем в Советском райсуде города Орла.

Прокуратура требовала признать экстремистским сайт «Орлец», построенный по технологии вики (на движке MediaWiki) и допускающий свободное редактирование всеми желающими. Суду были предъявлены итоги оперативно-розыскных мероприятий ФСБ, которыми на сайте были обнаружены шесть вики-статей экстремистского содержания.

Защита представила в суд доказательства того, что тексты, носящие экстремистский характер, были размещены в вики буквально через две-три минуты после того, как сотрудник ФСБ начал осмотр сайта, причём провисели в открытом доступе около пяти-семи минут, после чего были обнаружены и удалены администрацией вики. По мнению Краюхина, такое необыкновенное совпадение событий во времени указывает на причинно-следственную взаимосвязь их: сотрудник ФСБ либо причастен к размещению экстремистских материалов в вики, либо был заблаговременно и в точности проинформирован о времени их размещения.

Решением суда обнаруженные материалы были признаны экстремистскими, но в удовлетворении требований прокурора о признании экстремистским сайта «Орлец» было отказано.

Читать дальше →
Total votes 120: ↑108 and ↓12 +96
Comments 90

Насколько Node.js быстрее, чем Windows Script Host? И о чём это говорит нам?

Reading time 3 min
Views 2.6K
[цитата]Читатель, заходящий на сайт NodeJS.org, по центру страницы видит четыре цитаты от лидеров сайтостроения, выражающие удовольствие от Node. Цитаты меняются каждую минуту. При некотором везении (или терпении при перезагрузке страницы) читатель увидит похвалу от Клаудио Кальдато из Microsoft Open Technologies, Inc. — для вашего удобства я привожу эту цитату на иллюстрации справа.

Чем вызвана к жизни такая похвала? Ведь, казалось бы, задолго до того, как движок Node вообще успел появился на свет, у Microsoft существовало собственное (встроенное в Windows, начиная с Windows 98, а также устанавливаемое вместе с Internet Explorer 5) средство для запуска скриптов — Windows Script Host.

Ответ на этот вопрос очевиден: Node.js работает гораздо быстрее. (У него, кстати, ещё и API попроще. Но главное — скорость.)

Но насколько именно быстрее Node, чем WSH?

Это нетрудно выяснить опытным путём. Возьмём тот скрипт, при помощи которого evgeniyup вчера сравнивал быстродействие WSH с быстродействием виртуальной машины своего языка ObjectScript. В начале скрипта добавим десяток строк — «костыль» для Node.js, реализующий WSH-функцию WScript.Echo при её отсутствии.

показать (или вновь скрыть) исходный код скрипта
// CScript to Node.js:
if (typeof WScript == "undefined") WScript = {};
if (typeof WScript.Echo == "undefined") WScript.Echo = function(){
  var i;
  var log = '';
  for (i=0; i < arguments.length; i++){
     log += arguments[i];
  }
  console.log(log);
}

var fannkuch = function(n)
{
  var p = [], q = [], s = [], sign = 1, maxflips = 0, sum = 0;
  var i;
  for(i=1; i<=n; i++) p[i] = q[i] = s[i] = i;
  for(;;){
    // Copy and flip.
    var q1 = p[1];				// Cache 1st element.
    if(q1 != 1){
      for(i=2; i<=n; i++) q[i] = p[i];		// Work on a copy.
      var flips = 1;
      for(;;){
        var qq = q[q1];
        if(qq == 1){				// ... until 1st element is 1.
          sum = sum + sign*flips;
          if(flips > maxflips){
            maxflips = flips;
          } // New maximum?
          break;
        }
        q[q1] = q1;
        if(q1 >= 4){
          var i = 2, j = q1 - 1
          for(;;){ var tmp = q[i]; q[i] = q[j]; q[j] = tmp; if(++i >= --j) break; }
        }
        q1 = qq; flips++;
      }
    }
    // Permute.
    if(sign == 1){
      var tmp = p[2]; p[2] = p[1]; p[1] = tmp; sign = -1;	// Rotate 1<-2.
    }else{
      var tmp = p[2]; p[2] = p[3]; p[3] = tmp; sign = 1;	// Rotate 1<-2 and 1<-2<-3.
      for(i = 3;; i++){
        // print "mark 4"
        var sx = s[i];
        if(sx != 1){ s[i] = sx-1; break; }
        if(i == n) return [sum, maxflips];	// Out of permutations.
        s[i] = i;
        // Rotate 1<-...<-i+1.
        var t = p[1]; for(var j = 1; j <= i; j++){ p[j] = p[j+1]; } p[i+1] = t;
      }
    }
  }
}

function getTimeSec(){
 	var d = new Date();
    return (d.getTime() + d.getMilliseconds() / 1000.0) / 1000.0;
}

var n = 10;
var start_time = getTimeSec();
var r = fannkuch(n);
var sum = r[0], flips = r[1];
WScript.Echo(
    sum,"\n",
    "Pfannkuchen(",n,") = ",flips,"\n",
    "time = ",(getTimeSec() - start_time),"\n"
)

После этого достаточно запустить этот скрипт дважды (сперва в Node, затем в WSH) — и мы получим вот какой результат в консоли (и на скриншоте):

[скриншот]

Разница на два порядка! Вычисления, с которыми Node.js справляется за секунду, Windows Script Host перемалывал больше двух минут.

Читать дальше →
Total votes 19: ↑9 and ↓10 -1
Comments 5

JavaScript — это Бейсик сего дня! (В хорошем смысле.)

Reading time 2 min
Views 18K
С каждым днём во мне крепнет осознание того, что JavaScript стремится играть ту же роль (занять ту же нишу), которая была свойственна Бейсику лет тридцать или даже пятнадцать тому назад.

Иными словами, JavaScript становится простым и распространённым языком, далеко переросшим своё первоначальное предназначение, и на нём теперь можно сочинить почти какое угодно приложение (и клиентское, и серверное, и консольное… и даже с GUI, как я недавно убедился).

Создаются целые операционные системы (Firefox OS, Google Chrome OS, Open webOS), для которых JavaScript является не менее «родным», чем Си для UNIX в своё время.

Появляются языки, транслируемые в JavaScript (можно вспомнить CoffeeScript, Dart, новорождённый TypeScript, и так далее).

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

Кроме того, многие существующие проблемы джаваскрипта не имеют особенного значения, потому что устраняются широко распространёнными средствами с открытым исходным кодом. Так, нестрогость синтаксиса устраняется строгою проверкою исходного кода (JSLint, например). Нехватка средств обработки данных (массивов, объектов) и функций устраняется подключением Underscore, а строки помогает обработать Underscore.string, а даты — moment.js, например. Сложность употребления методов DOM (в которой, впрочем, повинен не язык JavaScript, а браузеры и их разнобой) преодолевается с помощью jQuery. И так далее. Это входит в привычку у программистов.

Читать дальше →
Total votes 82: ↑57 and ↓25 +32
Comments 46

Node.js + Chromium = node-webkit: ещё более перспективный вариант второго шага эволюции веборазработчика

Reading time 3 min
Views 47K
Предисловие от переводчика.  В постскриптуме к моей вчерашней блогозаписи я указал, что AppJS — это не единственное такое средство, которое позволяет создавать приложения с GUI (графическим интерфейсом пользователя) при помощи вебоподобных методов разработки на языках HTML, CSS и JavaScript с использованием движка Node.js. Естественной иллюстрацией к этому постскриптуму является нижеследующий перевод гитхабовской страницы проекта node-webkit. И сразу скажу: я предвижу заранее, что непредвзятый взгляд ваш сочтёт node-webkit ещё более удобным и развитым средством, чем AppJS.



Введение


node-webkit — среда для запуска приложений, основанная на Chromium и Node.js. При помощи node-webkit можно создавать традиционные графические приложения посредством HTML и JavaScript. Также node-webkit позволяет вызывать модули Node.js прямо из DOM и тем обеспечивает новый способ создания таких приложений и употребления веботехнологий в них.

node-webkit создан и разрабатывается в Интеловском Центре технологий с открытым исходным кодом (Intel Open Source Technology Center).

Введение в node-webkit (слайды).

Достоинства


  • Приложения создаются при помощи современных HTML5, CSS3, JS и WebGL.
     
  • Полная поддержка API Node.js и созданных другими разработчиками модулей.
     
  • Вызов API Node.js без потерь в производительности.
     
  • Лёгкость упаковки и распространения приложений.

Читать дальше →
Total votes 55: ↑50 and ↓5 +45
Comments 30

Node.js + Chromium = AppJS: один из перспективных вариантов второго шага эволюции веборазработчика

Reading time 4 min
Views 35K
Сейчас мы с вами немного поговорим о том, как недавнее появление нового инструмента и связанных с ним возможностей открывает перед современными веборазработчиками возможность достаточно быстро эволюционировать, переходить на новые уровни, обретать новые профессиональные навыки, осваивать новые области созидательного труда. Таким инструментом является Node.js и растущая вокруг него инфраструктура.

Первый шаг эволюции веборазработчика совершается тогда, когда разработчик знакомится с Node.js и тотчас же постигает, что ему теперь достаточно воспользоваться знанием джаваскрипта и изучить довольно простой API Node, чтобы немедленно получить возможность сочинять не одни только скрипты для сайтов, но также и консольные приложения, и даже серверные (в частности, вебсерверные).

Исторически это не первый из таких инструментов.
Каждый из нас может вспомнить, что были и до появления Node.js попытки создать движок для удобного программирования на джаваскрипте (Windows Script Host, Rhino, JSDB, и так далее).

Однако только у Node мы видим и достаточно быстрый движок (V8), и кросс-платформенность, и простой API, и превеликое множество дополнительных модулей. Сочетание этих достоинств делает Node удачным и удобным.

Второй шаг эволюции веборазработчика совершается тогда, когда знание языка JavaScript (а также других веботехнологий — прежде всего CSS и HTML или XML) становится можно применять для разработки ещё и приложений с графическим интерфейсом пользователя — то есть с GUI.

Многие производители создавали средства вебоподобной разработки GUI-приложений.
Здесь можно припомнить с десяток более или менее успешных попыток достигнуть желаемого.

Фонд Мозиллы придумал сперва XUL и XULRunner, а затем и целую операционную систему — Firefox OS.

«Хьюлетт-Паккард» выпустил webOS (с недавних пор — Open webOS).

Google придумал Google Chrome OS.

Ещё можно вспомнить, что у Qt есть основанный на JavaScript язык разметки GUI — QML называется.

Развиваются PhoneGap, Appcelerator Titanium, Adobe AIR и другие средства вебоподобного программирования кросс-платформенных приложений.

Часть вышеперечисленных решений родилась на свет увесистою (например, когда для запуска вебоподобного приложения требуется крупная виртуальная машина или даже новая операционная система). Большинство из них также потребует от программиста выучить некоторый API, иногда довольно корявый и страшный (например, XPCOM для XULRunner), но даже когда такой API достаточно изящен, то всё же изучение его требует усилий. Чем больше он умеет, тем более обширным окажется API.

Между тем, если на первом шаге своей эволюции веборазработчик успел выучить API от Node.js — нет ли возможности опереться на это знание и не учить в дальнейшем ничего лишнего?

Второй шаг эволюции веборазработчика становится естественным продолжением первого, если разметка и оформление вебоподобного приложения задаются при помощи HTML и CSS, а поведение — при помощи JavaScript, причём «под капотом» работает ужé известный разработчику движок Node.js.

В частности, если воспользоваться AppJS, то тогда объектная модель (DOM) демонстрируемой «страницы» содержит под именем window.node глобальный объект Node.js, и мы можем без труда прочесть в window.node.process.versions.node версию Node, в window.node.process.arch архитектуру процессора, в window.node.process.platform платформу, и вывести какое-нибудь такое сообщение в окне нашего графического приложения:

[скриншот]

(Понятно, что аналогичным образом можно употреблять и другие возможности Node.js — сетевые, файловые и так далее.)

Что же такое AppJS?

Читать дальше →
Total votes 67: ↑54 and ↓13 +41
Comments 58

Встречайте бесплатный и свободный шрифт Yeseva

Reading time 1 min
Views 22K
Дизайнер-шрифтовик Иван Гладких, более известный как Джованни Лемонад (Jovanny Lemonad), сегодня объявил о выходе нового шрифта «Yeseva», отличающегося существенным контрастом между тонкими и толстыми элементами букв.

[скриншот Yeseva]
Читать дальше →
Total votes 48: ↑39 and ↓9 +30
Comments 11

Node.js на узле Фидонета: автоматизация периодических публикаций

Reading time 5 min
Views 6.6K
Некоторые фидошники сталкиваются с необходимостью периодически публиковать в той или иной фидонетовской эхоконференции одно и то же сообщение (один и тот же текстовый файл) раз в несколько дней.

Например, модератору (или комодератору, в зависимости от распределения их обязанностей) приходится раз в неделю-другую класть в свою эхоконференцию её правила. Чуть другим (но всё же подобным) примером являются те фидошники, которые взяли на себя поддержку некоторого FAQ и также публикуют его в одной или нескольких тематически соответствующих эхоконференциях. (В эхе Fidonet.History её FAQ содержит своеобразную летопись истории Фидонета, выраженную в вопросах и ответах, в эхе SU.IP.Point — список узлов, набирающих новых пойнтов, в SU.FidoTech — разъяснение ряда технических терминов и алгоритмы нескольких полезных приёмов. В эхоконференциях, посвящённых тому или иному программному продукту, FAQ поясняет его настройку. И так далее.)

Если узел (или пойнт) работает беспрерывно на одном и том же компьютере, то такая публикация автоматизируется простым, бесхитростным способом: публикацию файла вписывают в список задач для демона cron (в UNIX-подобных системах) или его аналога в других системах.

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

Сегодня мы рассмотрим, каким подспорьем может движок Node.js стать в исполнении этой задачи.

Читать дальше →
Total votes 37: ↑20 and ↓17 +3
Comments 46

Information

Rating
Does not participate
Location
Геленджик, Краснодарский край, Россия
Date of birth
Registered
Activity