React is the one of most famous JavaScript-frameworks. A lot of developers uses it in everyday development. Since its release, I saw a lot of different posts and articles about it. Different people leave theirs reviews and impressions. So, I tried to learn this framework and give to it some respect or discontent. In this article, I’ll look at React as a noob because I really the noob and doesn’t know this framework. You can say “Yet another article about React”, but it’s not. Let’s go!
How does Chrome executes scripts inside Developer Tool
Recently, working with Chrome Developer Tool, I found strange thing, which at first was interpreted by me as a bug.
I wrote some code with pair of opening-closing brackets, like this “}{“ and I tried to execute it. Surprisingly, but it does not produce me any error. I was amazed…
localForage – храним данные offline без головной боли. Удобная абстракция над IndexedDB
Большинство современных веб-приложений каким-либо образом хранят отдельные данные у клиента, пользуясь такими средствами как localStorage, WebSQL или IndexedDB. Так, например, для небольших HTML5-игр весьма удобно хранить результаты игрока локально - не нужно писать взаимодействие с базами данных, а сохранив все локально, игрок легко может продолжить прогресс с места своего сохранения.
Однако несмотря на удобство, возникает проблема - хранилища реализуют схожий функционал, однако методы,предлагаемые API, весьма различаются. Это создает проблемы конечному разработчику, который вынужден держать в голове список всех функций,их аргументов и т.д. Помимо этого каждое хранилище имеет свои достоинства и недостатки, что также сказывается на разработке. По этой причине Mozilla представила свою библиотеку localForage, позволяющую забыть о таких мелочах и сосредоточиться на реализации функционала. Рассмотрим ее возможности подробнее.
Валидация данных в Go при помощи govalidator
Валидация уже очень давно применяется в самых различных веб и декстопных приложениях. Уже сломано немало копий, написана куча пакетов для различных языков программирования, решающих эту задачу. Давайте посмотрим, каким образом можно проверять данные в Go программах, используя пакет govalidator.
Minecraft Forge: кастомные тексты в GUI контейнеров
При разработке очередной версии SmartCursor”а мне потребовалось добавить новую возможность - отображение мода, из которого загружен очередной блок или предмет, в GUI контейнеров, будь то инвентарь игрока, сундуки или даже рюкзаки из мода Backpacks.
Material Design вместе с Angular.js
С выходом в свет новой версии Android 5.0, названной Lollipop, компания Google представила новое видение дизайна пользовательского интерфейса - Google Material Design. Вслед за появлением спецификации разработчики привнесли немного “материальности” в свои фреймворки, такие как Angular.js, React.js, даже всем известный Twitter Bootstrap сделали “материальным”.
В связи с этим хотелось бы рассмотреть, как же такие известные фреймворки внедряют поддержку Material Design. Рассмотрим это на примере Angular.js.
Moment.js: работа с датами в JavaScript
Очень часто необходимо работать с информацией типа времени и дат, обрабатывая их таким образом, как этого требует программа. Существует огромное множество решений, каждое из которых умеет выполнять какие-то информации с датами - одни лучше, другие хуже. Среди этого разнообразия существует библиотека Moment.js, которая умеет больше, чем не умеет.
Grunt: автоматизация работы с JS проектами
Порой очень лениво и сложно выполнять одни и те же задачи раз за разом. Согласитесь, пару раз проверить проект линтом, сделать сборку и минифицировать ее можно руками, но если делать это постоянно… Не самый лучший вариант. Для таких задач существуют специальные инструменты, автоматизирующие долгий и нудный процесс. Знакомтесь - Grunt!
GCJ: Java без JVM
Да, именно так: Java без JVM. В данной статье рассмотрим работу с Java (компиляция/запуск), не используя такие средства, как JVM/JDK и подобное. Ах да, и никаких on-line инструментов, все только локально :) А воспользуемся мы таким инструментом, как GCJ:
GNU Compiler for Java (GCJ или gcj) — это свободный компилятор языка Java, являющийся частью GNU Compiler Collection. GCJ может компилировать исходный код Java в байткод виртуальной машины Java, либо непосредственно в машинный код многих процессорных архитектур. Он также может компилировать файлы классов, содержащие байткод, или целые JAR, содержащие такие файлы, в машинный код.
Hello, Octopress!
Данный пост не имеет особой значимости - я всего-то переменил движок. На этот раз мой выбор пал на Octopress - он показался мне более функциональным и мощным инструментом по сравнению с Jekyll, который я использовал ранее (Хотя бы потому что он является надстройкой над Jekyll).
Использование Октопреса сводится к применению нескольких команд:
По сравнению с Jekyll, имеет улучшенную поддержку плагинов, тем, многие средства, которые в Jekyll отключены, здесь используются по умолчанию (например пагинация или “убирание” постов “под кат”).
Backbone.js: маршрутизаторы
В данной маленькой заметке рассмотрю примеры использования маршрутизаторов Backbone.
Часто в веб-приложении необходимо разделить логику, привязав определенные модели и представления или отдельное состояние приложения к определенным адресам. Для всего этого используется объект Backbone.Router
Jekyll: создание блога
В установке и настройке Jekyll весьма легок и прост. Его можно развернуть буквально за пару минут. Разберем, как это сделать.
JNI: объединяем C и Java
Что такое JNI?
Java Native Interface (JNI) — стандартный механизм для запуска кода, который написан на языках С/С++ или Ассемблера, и скомпонован в виде динамических библиотек, позволяет не использовать статическое связывание. Это даёт возможность вызова функции С/С++ из программы на Java, и наоборот.
Если говорить кратко, JNI - механизм, связывающий Java и C/C++ в одно целое.
JS: Sails.js + Backbone.js = Hello, TODO
Сегодня я решил - пора взяться за веб со стороны Node.js. А именно я решил присмотреться, каково вообще вести разработку на серверном JavaScript. В качестве серверного фреймворка я взял Sails.js - он мне приглянулся хорошей документацией и наличием некоторого количества примеров. В связке с ним я взял Backbone.js для клиентской части - после первого знакомства стоит поработать с ним поглубже. А общей целью поставил написать небольшой ToDo менеджер. Поехали!
JS: Backbone.js, say Hello
Пусть для JavaScript’a существует достаточное число фреймворков, создавать динамические веб-приложения все же достаточно сложно. А когда дело доходит до работы с DOM, событиями и прочими прелестями HTML, JS и CSS, то код становится нереально большим и сложным в поддержке. Backbone призван решить эту проблему. Как написано на сайте русской документации Backbone:
Backbone.js придает структуру веб-приложениям с помощью моделей с биндингами по ключу и пользовательскими событиями, коллекций с богатым набором методов с перечислимыми сущностями, представлений с декларативной обработкой событий; и соединяет это все с вашим существующим REST-овым JSON API.
Что ж, было бы неплохо попробовать его в действии.
JS & API: StackExchange API на пальцах
Иногда возникают ситуации, когда необходимо написать скрипт или приложение, взаимодействующее с каким-либо сервисом. Многие крупные сайты предлагают разработчикам свое API, которое они могут использовать в своих проектах. Однако у каждого сервиса свои функции и способы работы с API. Потому нередко сложно начать использовать сторонние API в своих проектах.
На примере небольшого приложения, авторизирующего пользователя и получающего его последние уведомления с данными профиля, мы рассмотрим, как пользоваться Stack Exchange API.
Clojure: типы данных
После того, как я более-менее понял синтаксис языка, пришло время взяться за разбор типов данных (надо же информацию как-то хранить).
Clojure: второе знакомство
Продолжая знакомство с языком, я решил воспользоваться книгой “Clojure for the Brave and True”. Удобно, понятно, самое главное - обилие примеров, простых и сложных. Что ж, продолжим статью Clojure: первое знакомство
.
Clojure: первое знакомство
Уж не знаю, по какой причине мне вдруг захотелось познакомиться с Clojure. До этого я практически не работал с функциональными языками (несколько маленких программ на Scala не учитываются). Однако рано или поздно приходится переступить через это. Почему я не выбрал Haskell или Erlang? Потому что Clojure крепко дружит с JVM, а это значит, что код на Java доступен в Clojure и наоборот. С другой стороны, почему не Scala? Scala не является абсолютно-функциональным языком, а это значит, что имея в руках функциональный и объектно-ориентированый язык программирования, рано или поздно в силу сложившихся привычек перейдешь на чистое ООП, используя его даже там, где язык предлагает более изящное решение на “функциональщине”.
Scala: первые шаги в акторах
Многопоточное программирование является немаловажным в данный момент. Практически любой современный язык знает такие понятия как потоки, процессы и тому подобное. К тематике многопоточного программирования также относятся так называемые акторы. Дабы не переговаривать некоторые вещи на новый лад, процитирую понятие актора с Википедии:
В компьютерных науках модель акторов представляет собой математическую модель параллельных вычислений, которая трактует понятие «актор» как универсальный примитив параллельного численного расчёта: в ответ на сообщения, которые он получает, актор может принимать локальные решения, создавать новые акторы, посылать свои сообщения, а также устанавливать, как следует реагировать на последующие сообщения.
Что ж, суть вполне понятна и проста. Попробуем написать набор из акторов, один из которых по запросу генерирует следующее число Фибоначчи, а другой запрашивает генерацию.