Search
Write a publication
Pull to refresh
26
0
Send message

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

Reading time28 min
Views188K
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

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

Понятно и просто про веб-компоненты и Polymer

Reading time9 min
Views49K


Кто я

Я — Александр Кашеверов. По образованию — магистр радиофизики. По профессии — веб-разработчик, работаю в компании DataArt с 2011 года, с 2009 увлекаюсь IT и веб-технологиями.

О чем статья, коротко

Рассмотрим, что такое веб-компоненты и polymer. Немного поразмышляем на тему развития веба. Посмотрим на технические детали, примеры, поддержку браузерами, тестирование. Коротко, понятно, по делу. С картинками.

Вступление

Веб постоянно развивается. Технологии были придуманы и внедрены, исходя из потребностей, актуальных на момент создания. Десять лет назад невозможно было сделать то, что мы реализуем сейчас, и сложно представить, что будет еще через 10 лет.

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

Для уменьшения головной боли хорошо бы, если в контексте веб:

  • CSS не пересекался.
  • Области видимости JS не пересекались.
  • HTML был понятным и читаемым, никаких лишних элементов.

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

У нас проблемы с промисами

Reading time16 min
Views245K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи

SVG-иконки – много и со стилем

Reading time14 min
Views51K

Маленький рассказ о том, как наша команда решила организовать иконки в грядущем проекте. Чуть-чуть исторического экскурса, взгляды по сторонам (на PNG и векторные шрифты) и рассказ о том, как мы всё-таки обустроились в итоге.
Читать дальше →

CodeBug поможет обучиться программированию «железа» и ребенку и взрослому

Reading time3 min
Views12K


Конечно, при желании обучающегося. В марте на Geektimes публиковалась новость о том, что BBC собирается раздать около миллиона мини-ПК английским школьникам. Цель этого проекта — стимулировать у младшего поколения желания обучаться электронике и программированию. Сейчас этот проект успешно реализуется. Тогда же, в марте, на Kickstarter был запущен проект по сбору средств на аналогичное устройство, получившее название CodeBug.

Это недорогая мини-плата (около $18), которую могут использовать как детишки (от 7 лет), так и взрослые любители электроники. Основной упор идет, конечно, на детей и подростков, на учащихся школ (также, как и в случае BBC, идет сотрудничество с учебными заведениями, но, правда, речь не идет о миллионах бесплатных ПК). Девайс позволяет обучиться не только основам работы с «железом», но и основам «железного» программирования.
Читать дальше →

Рецепт вращения планет в космосе на HTML5 + JavaScript

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

Вычеркиваем


После непродолжительного подбора различных способов реализации, сразу были исключены варианты:
  • с gif-анимацией (из-за низкого качества изображения);
  • с Flash (по договоренности, Flash-технологии решили в проекте не использовать);
  • с анимацией с помощью JQuery посредством функции $().animate (по причине ее прожорливости).


CANVAS в помощь!


Итак, остановились мы на использовании Canvas и JavaScript, посчитав этот вариант оптимальным для реализации нашей задачи.
Читать дальше →

Мотивация к программированию, через 3д рисование (обзор проекта BeetleBlocks)

Reading time5 min
Views27K


Тема привлечения школьников к программированию — достаточно актуальная. И не мало копий было сломано на хабра полях при поиске самого лучшего языка для начинающих.

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

Если собрать требования к системе для начинающих, то это:

  • быстрый старт (без необходимости устанавливать систему)
  • доступность для начала работы «с нуля»
  • по минимуму клавиатурной работы
  • визуально значимый результат работы, при небольших усилиях
  • небольшие итерации от начала работы до получения результата
  • базовые концепции программирования
  • игровые моменты.

В данной публикации будет сделан обзор системы Beetle Blocks, с помощью которой можно создавать программы, рисующие 3д объекты, и которая, на мой взгляд, удовлетворяет большинству из этих моментов.

В некоторых школах 3д принтер появляется к кабинетах информатики, и поэтому такого плана программы, могут позволить заинтересовать школьников не только в качестве основ программирования, но и для создания реальных 3д напечатанных объектов (этому примеру будет посвящена вторая часть).

А теперь, обзор системы Beetle Blocks.
Читать дальше →

Астротрекер: мой опыт

Reading time5 min
Views31K
Дабы совместить два своих любимых хобби: фотографию и астрономию, решил попробовать себя в астрофотографии. Уж очень глубокое впечатление на меня оказывают фотографии Млечного Пути с огромными россыпями звезд. Тем более что каждое лето бываю на Кавказе, а небо там идеально подходит для наблюдений. Для качественной съемки звездного неба не обойтись без астротрекера. Для чего он нужен не вижу необходимости повторять, т.к. здесь уже было несколько статей на эту тему. Поэтому просто хотел бы поделиться своим опытом создания данного устройства, его настройки и использования. Саму конструкцию я почерпнул из данной статьи, немного упростил её, и оснастил собственными доработками. Подробности под катом.


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

Async/await и механизм реализации в C# 5.0

Reading time20 min
Views81K

Подробно о преобразовании асинхронного кода, осуществляемого компилятором


Механизм async реализован в компиляторе C# при поддержке со стороны библиотек базовых классов .NET. В саму исполняющую среду не пришлось вносить никаких изменений. Это означает, что ключевое слово await реализовано путем преобразования к виду, который мы могли бы написать и сами в предыдущих версиях C#. Для изучения генерируемого кода можно воспользоваться декомпилятором .NET Reflector или ILSpy. Это не только интересно, но и полезно для отладки, анализа производительности и других видов диагностики асинхронного кода.
Подробности

Изучая PureData

Reading time1 min
Views12K
Количество и объем материалов по PureData постепенно растет, значит настало время собрать их в одном месте. Это, своего рода, пост-содержание написанных мною статей. Многие описанные в них принципы и идеи подходят не только для PD, но и для любого MAX-подобного языка. Удачи в экспериментах.
Читать дальше →

IBM и Xerox: мобильные устройства вскоре будут управляться при помощи мысли

Reading time2 min
Views9K


Компании IBM и Xerox на днях опубликовали совместный доклад о перспективах развития мобильных приложений, управляемых мыслью. Точнее, не мыслью, а электрическими импульсами через уже существующий BCI-интерфейс (Brain-Computer Interfaces). Сейчас такого рода системы развиваются довольно активно. Принцип действия — отслеживание управляющих электрических импульсов мозга, а именно — сигналов теменной доли, SSVEP.

В будущем, вероятно, BCI-системы будут намного меньше, чем сейчас. Разработка программного обеспечения, которое распознает сигналы мозга и превращает их в команды для мобильного устройства, ведется сейчас рядом различных компаний. Кстати, к числу наиболее современных BCI-систем можно отнести ЭКГ-гарнитуру от Emotiv.
Читать дальше →

Игра знакомая с детства в реализации на JavaScript

Reading time1 min
Views47K


Нет ничего лучше, чем вновь почувствовать себя ребенком. Воспоминания с детства зачастую самые яркие и приятные. Случайно попавшаяся на просторах интернет фотография электронной игры «Ну, погоди!» («Электроника ИМ-02») навеяла массу воспоминаний и… породила желание не просто сыграть, а еще и реализовать её (специфика профессии). Собственно, результатом и хотел бы поделиться с аудиторией хабра. Игра «Ну, погоди!»
Читать дальше →

Как работает реляционная БД

Reading time51 min
Views559K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →

Простая в использовании обертка над LoadLibrary() и GetProcAddress()

Reading time7 min
Views22K

Преамбула


Использование динамически связываемых библиотек (DLL), как известно, предполагает один из двух способов подключения: связывание во время загрузки (load-time linking) и связывание во время выполнения (run-time linking). В последнем случае нужно использовать предоставляемый операционной системой API для загрузки нужного модуля (библиотеки) и поиска в нем адреса необходимой процедуры. Существует множество оберток, но, к сожалению, все встречавшиеся мне сильно усложнены и перегружены лишним кодом. Предлагаемое решение изначально предназначено для вызова функций, хранящихся в DLL из исполняемых модулей (EXE), отличается относительной простотой реализации, и (что гораздо более важно) простотой использования в клиентском коде.
Читать дальше →

Подальше от обыденной реальности: фантастические романы, которые стоит прочитать

Reading time4 min
Views142K
image

Фантастика как жанр заставляет читателей и писателей выйти за пределы разумного, дать волю своему воображению и отправиться в неизведанные миры. За это мы и любим этот жанр. RoboHunter этой осенью предлагает с головой погрузиться в мир научной фантастики.
Читать дальше →

Роскосмос опубликовал видеоэкскурсию по МКС

Reading time3 min
Views13K
Сейчас Международная космическая станция находится в одной из своих пиковых форм развития. На данный момент срок её работы и жизни хотят продлить как минимум до 2024 года. В ближайшие годы должен состояться пуск надувного модуля компании Bigelow Aerospace, модулей «Наука» (не ранее 2017 года) и узлового «Причала». Но общая сборка станции уже произведена. Логичным было бы документировать её строение для будущих поколений или хотя бы показывать внутренее убранство энтузиастам пилотируемой космонавтики.
Десять видеороликов под катом

Поздравление с 1 сентября от Vert Dider

Reading time2 min
Views10K


Сегодня важный для нас день, так как мы занимаемся популяризацией науки и в какой-то мере чувствуем себя причастными к этому празднику, мы решили сделать подборку видео, озвученных нашей студией, так как считаем, что эти идеи должны применяться на практике. Возможно, эту подборку увидят учителя или директора школ и возьмут идеи из этих видео себе на заметку. Далее под катом очень много видео, так что осторожнее, мы предупреждали.
Читать дальше →

gRPC — фреймворк от Google для удалённого вызова процедур

Reading time8 min
Views183K

В деле удалённого вызова процедур дела уже давно обстоят в точности как в известном комиксе «14 стандартов» — чего только тут ни напридумано: древние DCOM и Corba, странные SOAP и .NET Remoting, современные REST и AMQP (да, я знаю, что кое-что из этого формально не RPC, для того чтобы обсудить терминологию даже вот специальный топик недавно создали, тем ни менее всё это используется как RPC, а если что-то выглядит, как утка и плавает, как утка — ну, вы в курсе).

И конечно же, в полном соответствии со сценарием комикса, на рынок пришел Google и заявил что вот теперь наконец он создал ещё один, последний и самый правильный стандарт RPC. Google можно понять — продолжать в 21-ом веке гонять петабайты данных по старому и неэффективному HTTP+REST, теряя на каждом байте деньги — просто глупо. В то же время взять чужой стандарт и сказать «мы не смогли придумать ничего лучше» — совершенно не в их стиле.

Поэтому, встречайте, gRPC, что расшифровывается как «gRPC Remote Procedure Calls» — новый фреймворк для удалённого вызова процедур от Google. В этой статье мы поговорим о том, почему же он, в отличии от предыдущих «14 стандартов» всё-таки захватит мир (ну или хотя бы его часть), попробуем собрать билд gRPC под Windows + Visual Studio (и даже не говорите мне, что инструкция не нужна — в официальной документации упущено штук 5 важных шагов, без которых ничего не собирается), а также попробуем написать простенький сервис и клиент, обменивающиеся запросами и ответами.
Читать дальше →

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views241K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →

Кластеризация графов и поиск сообществ. Часть 2: k-medoids и модификации

Reading time11 min
Views24K
image Привет, Хабр! В этой части мы опишем вам алгоритм, с помощью которого были получены цвета на графах из первой части. В основе алгоритма лежит k-medoids — довольно простой и прозрачный метод. Он представляет собой вариант популярного k-means, про который наверняка большинство из вас уже имеет представление.

В отличие от k-means, в k-medoids в качестве центроидов может выступать не любая точка, а только какие-то из имеющихся наблюдений. Так как в графе между вершинами расстояние определить можно, k-medoids годится для кластеризации графа. Главная проблема этого метода — необходимость явного задания числа кластеров, то есть это не выделение сообществ (сommunity detection), а оптимальное разбиение на заданное количество частей (graph partitioning).

С этим можно бороться двумя путями:
Читать дальше →

Information

Rating
Does not participate
Registered
Activity