Архив за 07 июля 2014 - 3

Autopolyfiller — Precise polyfills
В этой статье я хочу рассказать об инструменте Autopolyfiller, который помогает вам использовать последние функции EcmaScript и при этом не думать об подключаемых полифиллах.

К сожалению, не все пользователи используют самые современные браузеры, и зачастую нам приходится жертвовать читаемостью кода или использовать полифиллы, чтобы более-менее уравнять все браузеры и писать кроссбраузерный код.

Есть целый ряд способов исправить эту ситуацию:

lodash и underscore

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

_.chain([1, 2, 3, 4])
.map(function (item) {
    return item * item;
})
.filter(function (item) {
    return item < 9;
})
.value();

Читать полностью »

Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).Читать полностью »

Возникла необходимость в интеграции офисной АТС (Asterisk) и промышленной АТС (Миником DX-500).

У производителя DX-500, есть решение MSG-1, но в рамки ограниченного бюджета оно не влезло.
Было решено интегрироваться через канал Е1, благо был как-раз свободный.
У меня уже были проекты интеграции Asterisk по Е1, и через раз в них были жесточайшие пляски с бубном вокруг прерываний для плат интерфейса E1, плюс они ограничивают возможности виртуализации, по этому плату брать остро не хотелось.
Давно хотелось попробовать ELF2-AE от Новосибирской Parabel.

Читать полностью »

image

В карточные игры играли и будут играть. За тысячелетия картежники испробовали сотни игр и оставили себе десяток. На века. Если уподобиться литературоведам, то любые карточные игры сведутся к трем сюжетам — покер, преферанс и джин. Например, дурак — это упрощенный преферанс, этакие козырные распасы.

Не знаю как сейчас, а мы в школе и на мех-мате рубились в преферанс днями и ночами. Некоторые умудрялись играть на лекциях в аудитории 16-24. Там удобно. Ряды — как в цирке. Потому МСС многие не знают.
Девушки предпочитали играть в Кинга, дамский преферанс. Хорошая семейная игра.

Легко алгоритмизуется, легко программируется. Как только у меня появился настольный PC и компилятор Turbo Pascal, я первым делом написал компьютерный вариант этой игры. Был 1991 год, падали кленовые листья. За соперников играла машина i286, классический минимакс реализовать не удалось. Программа честно просчитывала оптимальный ответ при глубине 3 хода. При глубине хода 4, компьютер периодически уходил в задумчивость на 30 минут, что не позволяли себе даже самые тупые живые игроки. Вход в игру я зашифровал 5-ти значным паролем (тогда это было модно). Пароль — индекс подписки популярной газеты Комсомольская Правда, причем подсказка была прямо на экране ввода пароля.
Пару раз мне звонили журналисты Комсомолки с целью рассказать про игру, но я отказывался. Не потому что скромный, а потому что туалетной бумаги в то время не было, народ использовал газеты. Понятно ведь, куда уйдет моя статья…

Читать полностью »

Возьмём за основу статью Знакомьтесь, Swift!, где показано как сделать простое приложение на Swift, и добавим туда такие известные и полезные штуки как pull to refresh и infinite scrolling используя встроенные возможности языка. Чтобы было еще интереснее, добавим немного асинхронности, иначе приложение будет каждый раз замирать на время обновления.

Реализуем pull to refresh и infinite scrolling на Swift
Читать полностью »

php as a script

Большинство пользователей PHP привыкли видеть сие чудо лишь на серверах и использовали лишь для динамической генерации веб-страниц (или других целей, подразумевающий работу в составе web-сервера). Однако, php можно использовать отдельно в качестве скриптового языка а-ля питон. Подробности под катом…
Читать полностью »

По сообщениям сайта thaivisa.com, министерство иностранных дел Таиланда разослало письмо во все посольства и консульства, находящиеся на территории Королевства и по всему миру, с подтверждением того, что новый закон о «визаранах» вступит в силу с 12 августа 2014 года.

Министерство утверждает, что новый закон направлен на подавление злоупотреблений «визаранами», которые, по их мнению, способствуют распространению незаконных трудовых мигрантов в Таиланде.

В данном письме Министерство иностранных дел подтверждает опубликованную ранее информацию о том, что «визараны» станут незаконными в Таиланде с 12 августа 2014 года. Всем туристам, желающим остаться в Королевстве на срок более одного месяца, отныне нужно будет заранее позаботиться о долгосрочной туристической визе, которую необходимо получить в посольстве Таиланда до въезда в страну.

Кроме того, ThaiVisa отмечает: «Письмо, направленное Министерством иностранных дел, также может быть сильным признаком того, что посольствам и консульствам Королевства Таиланд, возможно, было поручено носить ограничительный характер в выдачи многократных туристических виз».

Читать полностью »

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

Собственно с задачей прямого и обратного преобразования JSON из текстового представления в объектную модель отлично справляется стандартный Foundation API – NSJSONSerialization. В Apple проделали серьезную работу для обеспечения прямого и обратного взаимодействия Swift и Objective-C кода (Using Swift with Cocoa and Objective-C), поэтому использование привычных Cocoa API не только возможно на практике, но и удобно и не выглядит неестественно:

let jsonString = "{"name":"John","age":32,"phoneNumbers":[{"type":"home","number":"212 555-1234"}]}"
let jsonData = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
let jsonObject: AnyObject! = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions(0), error: nil)

Но работать с полученным результатом в статически типизированном Swift неудобно – требуется цепочка проверок и приведений типов для получения любого значения. Далее я рассмотрю варианты решения этой проблемы, а заодно мы познакомимся с некоторыми особенностями Swift.
Читать полностью »

Игра Tanki Online две недели назад запустившая свое приложение в ВК, собрала 200 тысяч установок, пишет Lenta.ru.

Но давайте посмотрим на статистику в Appdata.ru, на которую ссылается та же Лента.

Tanki Online пермской студии AlternativaPlatform со своими 200 тысячами установок и 6 тысячами активных пользователей - это 1605 место по количеству регистраций и 80-90 место по DAU среди приложений ВК.

И даже по статистике относительно своей основной браузерной игры ВК-версия смотрится никак - там 50 млн регистраций и 4 млн MAU.

Читать полностью »

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

Радиоуправляемый шагающий робот на MG90

  Особенности:

  1) 4 ноги 2) радиоуправление 3) легкий 4) оптимальная цена 5) без тупой ардуины.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js