Здравствуйте, хабровчане! Сегодня предлагаем вам очередной интересный пост на неисчерпаемую тему микросервисов, на этот раз — для корифеев и неофитов языка Java. Читаем и голосуем!
Сергей @elektron
User
Районы… Кварталы…
3 min
37KСовсем недавно на хабре была статья от AirBnb — «Создавая карту мира». Хорошая и красивая статья про административное деление мира. Один минус — у статьи один комментарий, и то мой.
Вы наверное замечали, что Google.Карты умеют подсвечивать контура городов. С недавнего времени такое есть и на Яндекс.Картах. Мало кто знает, что геометрия есть и на eSosedi.
А вот когда такая возможность появится на вашем сайте — теперь зависит только от тебя %username%.
P.S.: 3 признака того, что год минувший все сделал красиво: 1. Районы 2. Кварталы. 3. Детализация до «Жилые массивы» доступна для некоторых городов.
Пользуясь случаем проведу опрос — хотели ли бы вы такую карту административных делений?А то она у меня есть:
Вы наверное замечали, что Google.Карты умеют подсвечивать контура городов. С недавнего времени такое есть и на Яндекс.Картах. Мало кто знает, что геометрия есть и на eSosedi.
А вот когда такая возможность появится на вашем сайте — теперь зависит только от тебя %username%.
Для достижения эффекта достаточно зайти на data.esosedi.org или GitHub, ознакомиться с документацией библиотеки osmeRegions и начать использовать.
P.S.: 3 признака того, что год минувший все сделал красиво: 1. Районы 2. Кварталы. 3. Детализация до «Жилые массивы» доступна для некоторых городов.
+21
Используем Google Voice Search в своем приложении .NET
3 min
130KФункция распознавания речи с некоторого времени доступна в браузере Google Chrome. Посмотреть как это выглядит можно, например, здесь.
Так как исходный Chromium открыт, возникает закономерное желание подсмотреть, можно ли использовать технологию в
Как это часто бывает, все уже сделано за нас в этой статье. Все оказывается очень просто, необходимо сделать POST запрос на адрес www.google.com/speech-api/v1/recognize со звуковыми данными в формате FLAC или Speex. Реализуем демонстрацию распознавания WAVE-файлов с помощью C#.
+64
Google Fusion Tables API
1 min
3.7KGoogle как всегда показал, что у него ещё много удивительных инструментов и сервисов. И самое главное — он постоянно делятся ими с людьми. На этот раз, для нас, он сделал API для такого сервиса, как Google Fusion Tables. Теперь вы можете выгружать данные из своих БД и визуализировать их в этом замечательном инструменте.
Вот небольшой ролик, про возможности данного сервиса:
Официальный пост в блоге Google
Google Fusion Tables API
Google Fusion Tables
Вот небольшой ролик, про возможности данного сервиса:
Официальный пост в блоге Google
Google Fusion Tables API
Google Fusion Tables
+39
Китайский офис
1 min
2.5K+111
На чем написать програмку?
1 min
5.1KХочу спросить совета у десктоп-программистов…
Давно хотел изучить ЕЩЕ какой-нибудь язык программирования, а тут и повод появился…
Итак, цель: желательно в короткий срок написать небольшую & достаточно простенькую програмку с GUI и, главное, при этом изучить новый язык программирования
Исходные данные:
1) Есть солидный опыт программирования на PHP, Javascript, XSL
2) Я сам сижу под Linux, есть виндовс в виртуалке. Разрабатывать хотелось-бы в Eclipse под Linux-ом
3) Десктопные и GUI приложения никогда не разрабатывал.
Пожелания (читай — требования) к готовой программе:
1) Кроссплатформенная (но основной упор на Linux)
2) На интерпретируемом языке (на 80% склоняюсь к Python, на 20% к Ruby, НЕ хотелось-бы Java)
3) Для Windows можно создать .exe инсталлятор. Чем меньше его размер, тем лучше. После установки сразу работает «из коробки».
Теперь вопросы:
Реально-ли выполнить эти требования? (знаю что реально)))
Какой язык программирования вы бы посоветовали (Python, Ruby, Java… может еще что)?
Какую GUI библиотеку использовать (Qt, GTK, WxWidgets.....)?
С чего начать изучение? по каким ссылкам походить? Какие книжки почитать?
Заранее спасибо за ответы-советы!
UPD1: Програмка эта для личного пользования… Для работы с небольшой XML базой данных с применением некоторых физико-математических законов и преобразований. Возможно построение на основе результатов простых графиков. Для кафедры книверситета моего, хочется науч.руководителю подарок сделать перед дипломом.
Основная цель все-же — НАУЧИТЬСЯ делать десктомные програмки с перечисленными характеристиками. Просто в рамках личного и профессионального развития. Для начала простенькую програмку сделать, потом постепенно может что поинтереснее.
Давно хотел изучить ЕЩЕ какой-нибудь язык программирования, а тут и повод появился…
Итак, цель: желательно в короткий срок написать небольшую & достаточно простенькую програмку с GUI и, главное, при этом изучить новый язык программирования
Исходные данные:
1) Есть солидный опыт программирования на PHP, Javascript, XSL
2) Я сам сижу под Linux, есть виндовс в виртуалке. Разрабатывать хотелось-бы в Eclipse под Linux-ом
3) Десктопные и GUI приложения никогда не разрабатывал.
Пожелания (читай — требования) к готовой программе:
1) Кроссплатформенная (но основной упор на Linux)
2) На интерпретируемом языке (на 80% склоняюсь к Python, на 20% к Ruby, НЕ хотелось-бы Java)
3) Для Windows можно создать .exe инсталлятор. Чем меньше его размер, тем лучше. После установки сразу работает «из коробки».
Теперь вопросы:
Реально-ли выполнить эти требования? (знаю что реально)))
Какой язык программирования вы бы посоветовали (Python, Ruby, Java… может еще что)?
Какую GUI библиотеку использовать (Qt, GTK, WxWidgets.....)?
С чего начать изучение? по каким ссылкам походить? Какие книжки почитать?
Заранее спасибо за ответы-советы!
UPD1: Програмка эта для личного пользования… Для работы с небольшой XML базой данных с применением некоторых физико-математических законов и преобразований. Возможно построение на основе результатов простых графиков. Для кафедры книверситета моего, хочется науч.руководителю подарок сделать перед дипломом.
Основная цель все-же — НАУЧИТЬСЯ делать десктомные програмки с перечисленными характеристиками. Просто в рамках личного и профессионального развития. Для начала простенькую програмку сделать, потом постепенно может что поинтереснее.
+5
Советы по защите диплома. Часть 2
4 min
5.5KВ первой части я вкратце написал о подготовке дипломной работы, о том, чему в ней уделить больше времени. Здесь постараюсь изложить свой личный опыт непосредственно по защите и подготовке к ней. Мне все-таки кажется, что в большинстве случаев защита несколько важнее самого диплома. Хотя, разумеется, бывают и многочисленные исключения…
Итак, диплом написан, через три дня (или завтра) защита. Понятно волнение, особенно у тех, кто защищается в первый раз или не имеет опыта выступлений перед аудиторией. Запомните одну вещь: Вы этот диплом писали и лучше Вас в нем никто не разбирается. Считайте себя автором, который показывает коллегам (проще воспринимать комиссию именно так) свой труд. А отсюда и настрой соответственный: вы не просите поставить вам хорошую оценку, а объясняете им ту тему, в которой вы эксперт. Считайте защиту обычной презентацией человека, который разбирается в предмете (вас), людям, которые хотят узнать что-то новое (комиссия). Почувствуйте себя лектором перед студентами.
Но, чтобы это ощущение было по-настоящему стойким, необходима предварительная подготовка.
Я считаю, что помимо самого диплома на защите должна быть презентация и раздаточный материал. Ну и, разумеется, еда и напитки для задабривания комиссии ;)
Итак, диплом написан, через три дня (или завтра) защита. Понятно волнение, особенно у тех, кто защищается в первый раз или не имеет опыта выступлений перед аудиторией. Запомните одну вещь: Вы этот диплом писали и лучше Вас в нем никто не разбирается. Считайте себя автором, который показывает коллегам (проще воспринимать комиссию именно так) свой труд. А отсюда и настрой соответственный: вы не просите поставить вам хорошую оценку, а объясняете им ту тему, в которой вы эксперт. Считайте защиту обычной презентацией человека, который разбирается в предмете (вас), людям, которые хотят узнать что-то новое (комиссия). Почувствуйте себя лектором перед студентами.
Но, чтобы это ощущение было по-настоящему стойким, необходима предварительная подготовка.
Я считаю, что помимо самого диплома на защите должна быть презентация и раздаточный материал. Ну и, разумеется, еда и напитки для задабривания комиссии ;)
+34
Советы по защите диплома. Часть 1
3 min
13KЗа свою жизнь мне пришлось защитить два диплома и большую кучу курсовых и разнообразных докладов. Ну и по личному опыту я сделал несколько выводов, которыми хочу поделиться с вами. Будем говорить о дипломных работах, которые являются завершением обучения в высшем учебном заведении. Но мне кажется, что эти советы будут полезны и в других случаях.
Итак, диплом. Это не диссертация, но уже и не курсовая. От выпускника требуют продемонстрировать знания и умения, подтверждающие его квалификацию человека с высшим образованием. Соответственно в этом процессе есть два этапа: написание диплома и защита диплома.
Кто-то может высказать идею о том, что главное написать диплом, а защита – ерунда. Я считаю, это не так. Какой бы не был хороший диплом – этого в общем случае недостаточно… Хотя один преподаватель математики защитил диплом сформулировав и доказав теорему. На защиту он пришел с одним листом А4, написал теорему на доске мелом, лист с доказательством отдал комиссии и устно сказал чем эта теорема интересна математическому миру. Через 5-7 минут он вышел с оценкой “отлично”.
Но в большинстве случаев диплом не бывает настолько блестящим. Это обычно повторение уже известных дипломных работ, но с другими цифрами, разнообразные расчеты и проекты. Очень сложно найти тему, которую бы уже не писали до вас. Поэтому не пренебрегайте процессом защиты – это возможность из удовлетворительного диплома сделать отличный :)
Итак, диплом. Это не диссертация, но уже и не курсовая. От выпускника требуют продемонстрировать знания и умения, подтверждающие его квалификацию человека с высшим образованием. Соответственно в этом процессе есть два этапа: написание диплома и защита диплома.
Кто-то может высказать идею о том, что главное написать диплом, а защита – ерунда. Я считаю, это не так. Какой бы не был хороший диплом – этого в общем случае недостаточно… Хотя один преподаватель математики защитил диплом сформулировав и доказав теорему. На защиту он пришел с одним листом А4, написал теорему на доске мелом, лист с доказательством отдал комиссии и устно сказал чем эта теорема интересна математическому миру. Через 5-7 минут он вышел с оценкой “отлично”.
Но в большинстве случаев диплом не бывает настолько блестящим. Это обычно повторение уже известных дипломных работ, но с другими цифрами, разнообразные расчеты и проекты. Очень сложно найти тему, которую бы уже не писали до вас. Поэтому не пренебрегайте процессом защиты – это возможность из удовлетворительного диплома сделать отличный :)
+17
Как подобрать цвет для оформления своей работы
1 min
3.2KЭдвард Тафти в Envisioning Information упоминает об одном способе выбора цветовой палитры для оформления. Он говорит, что очень хорошо использовать цвета окружающего нас мира. Человеку должны быть приятны те сочетания цветов, которые окружают его в природной приятной обстановке в солнечный день.
Решив попрактиковаться, я взял несколько своих мыльничных фотографий, потыкал в них пипеткой и покрасил получившимися цветами маленький бессмыссленный шаблон.
Вот погожий зимний пейзаж
Под катом еще фотографии, а если вам интересен Тафти, у меня на сайте есть ссылки на его книги и примеры из них.
Решив попрактиковаться, я взял несколько своих мыльничных фотографий, потыкал в них пипеткой и покрасил получившимися цветами маленький бессмыссленный шаблон.
Вот погожий зимний пейзаж
Под катом еще фотографии, а если вам интересен Тафти, у меня на сайте есть ссылки на его книги и примеры из них.
+76
Интернет вверх тормашками
3 min
8.2KДобрый день, близится 1 апреля, и очень не хотелось бы, чтобы этот день был таким же как и остальные, поэтому предлагаю особый, айтишный прикол. Это перевод случайно найденной на просторах интернета статьи, собственно, перевел ее a11aud, но ему не хватает кармы на пост, поэтому пишу я (сам a11aud будет очень благодарен за карму:))
Мои соседи воруют мой беспроводной интернет. Да, я мог начать шифроваться, но можно ведь получить кучу удовольствия от созерцания недоумения на их лицах!
Я начал с разделения сети на две части: доверяемую и недоверяемую. Доверяемая имела свою долю сети, недоверяемая — свою. Мы используем DHCP сервер, чтобы идентифицировать мак-адреса для разделения на соответствующие группы.
1) Вступление
Мои соседи воруют мой беспроводной интернет. Да, я мог начать шифроваться, но можно ведь получить кучу удовольствия от созерцания недоумения на их лицах!
2) Разделяем сеть!
Я начал с разделения сети на две части: доверяемую и недоверяемую. Доверяемая имела свою долю сети, недоверяемая — свою. Мы используем DHCP сервер, чтобы идентифицировать мак-адреса для разделения на соответствующие группы.
+137
Простая инсталляция Java веб-приложения (часть 1)
3 min
3.6KИтак, вы написали свое супер веб-приложение на Java и теперь хотите что бы как можно больше людей его скачало, задеплоило и начало пользоваться? Все отлично, только для для некорых java-прораммистов, особенно для тех, кто последние цать лет прожил в мире J2EE может быть открытием, что для 99,9% людей в этом мире слова «Просто задеплойте этот WAR-ник на ваш любимый сервер» окажутся пустым звуком. Ну ок, может не 99,9% а 99,8% — ну или около того.
Ниже следует первая часть туториала о том, как из вашего варника сделать красивый Windows Installer (да-да, мало того что большинство людей не знают слова деплой, так они еще и Windows пользуются!) с использованием WiX
Ниже следует первая часть туториала о том, как из вашего варника сделать красивый Windows Installer (да-да, мало того что большинство людей не знают слова деплой, так они еще и Windows пользуются!) с использованием WiX
+9
Автоматизированный приём webmoney платежей на вашем сайте.
6 min
2.4K0. Вступление
Ни для кого не секрет, что в последнее время webmoney набрало достаточную популярность для того, чтобы стать одним из самых удобных и доступных средств для безналичного расчёта через интернет. Пополнить баланс своего мобильного, оплатить покупку товаров в веб-магазине — всё это можно сделать с помощью webmoney.
Я бы хотел рассказать вам несколько способов, как можно устроить приём оплаты за какие либо товары или услуги на вашем сайте электронной валютой webmoney. Это, кстати, не так сложно, как могло бы показаться на первый взгляд!
Ни для кого не секрет, что в последнее время webmoney набрало достаточную популярность для того, чтобы стать одним из самых удобных и доступных средств для безналичного расчёта через интернет. Пополнить баланс своего мобильного, оплатить покупку товаров в веб-магазине — всё это можно сделать с помощью webmoney.
Я бы хотел рассказать вам несколько способов, как можно устроить приём оплаты за какие либо товары или услуги на вашем сайте электронной валютой webmoney. Это, кстати, не так сложно, как могло бы показаться на первый взгляд!
+38
Алгоритмы и структуры данных поиска. Лекции и курсы от Яндекса
4 min
154KTutorial
Сегодня мы завершаем новогоднюю серию постов, посвященных лекциям Школы анализа данных. Последний по порядку, но никак не по важности курс — «Алгоритмы и структуры данных поиска».
В этом курсе рассматриваются базовые алгоритмы и структуры данных, включая хешировани, сложность и модели вычислений, деревья поиска, B-деревья, задачи геометрического поиска, динамическую связность в графах и другое.
Мы учли то, о чём нас просили в комментариях к прошлым курсам — теперь при желании можно не только смотреть/скачивать лекции по отдельности, но и загрузить всё разом в виде открытой папки на Яндекс.Диске. Кстати — в предыдущих постах тоже появились такие же апдейты (вот ссылки для удобства: «машинное обучение», «дискретный анализ и теория вероятностей», «параллельные и распределённые вычисления»).
Лекции читает Максим Александрович Бабенко, заместитель директора отделения computer science, ассистент кафедры математической логики и теории алгоритмов механико-математического факультета МГУ им. М. В. Ломоносова, кандидат физико-математических наук.
В этом курсе рассматриваются базовые алгоритмы и структуры данных, включая хешировани, сложность и модели вычислений, деревья поиска, B-деревья, задачи геометрического поиска, динамическую связность в графах и другое.
Мы учли то, о чём нас просили в комментариях к прошлым курсам — теперь при желании можно не только смотреть/скачивать лекции по отдельности, но и загрузить всё разом в виде открытой папки на Яндекс.Диске. Кстати — в предыдущих постах тоже появились такие же апдейты (вот ссылки для удобства: «машинное обучение», «дискретный анализ и теория вероятностей», «параллельные и распределённые вычисления»).
Лекции читает Максим Александрович Бабенко, заместитель директора отделения computer science, ассистент кафедры математической логики и теории алгоритмов механико-математического факультета МГУ им. М. В. Ломоносова, кандидат физико-математических наук.
+101
Введение в R-project
5 min
41KTutorial
Во всем Хабре сыскалась лишь пара статей на вышеуказанную тему. А тема благодатная. Да и в минувшую среду как раз окончился курс "Introduction to Computational Finance and Financial Econometrics". По мотивам его пятой недели «Descriptive statistics» и появился этот пост. Причастившимся будет неинтересно, а желающих познакомиться с базовыми приемами анализа данных при помощи R — прошу под хабракат.
+31
Пишем кеш с определенным временем хранения объектов с использованием java.util.concurrent
4 min
21KНе так давно, мне выпала задача, написать кеш, который сам себя чистит по истечению некоторого определенного времени. Требования к нему были следующие:
В общем-то и все. До написания данной задачи с java.util.concurrent дела не имел. На мысль использования этого пакета меня натолкнул один мой коллега, у которого было нечто подобное, но не соответствовало тому функционалу который был нужен. Итак, начнем:
В качестве ключа будет выступать внутренний класс, который помимо прямого назначения будет определять он является «живым» или его можно удалить с кеша, так как время его существования подошло к концу:
- Легковесность
- Потокобезобасность
В общем-то и все. До написания данной задачи с java.util.concurrent дела не имел. На мысль использования этого пакета меня натолкнул один мой коллега, у которого было нечто подобное, но не соответствовало тому функционалу который был нужен. Итак, начнем:
В качестве ключа будет выступать внутренний класс, который помимо прямого назначения будет определять он является «живым» или его можно удалить с кеша, так как время его существования подошло к концу:
+21
Структуры данных в картинках. ArrayList
3 min
871KПриветствую вас, хабралюди!
Взбрело мне в голову написать несколько статей, о том как реализованы некоторые структуры данных в Java. Надеюсь, статьи будут полезны визуалам (картинки наше всё), начинающим java-визуалам а также тем кто уже умеет писать new ArrayList(), но слабо представляет что же происходит внутри.
Сегодня поговорим о ArrayList-ах
ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.
Взбрело мне в голову написать несколько статей, о том как реализованы некоторые структуры данных в Java. Надеюсь, статьи будут полезны визуалам (картинки наше всё), начинающим java-визуалам а также тем кто уже умеет писать new ArrayList(), но слабо представляет что же происходит внутри.
Сегодня поговорим о ArrayList-ах
ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.
+75
Структуры данных в картинках. LinkedList
4 min
543KПриветствую вас, хабражители!
Продолжаю начатое, а именно, пытаюсь рассказать (с применением визуальных образов) о том как реализованы некоторые структуры данных в Java.
В прошлый раз мы говорили об ArrayList, сегодня присматриваемся к LinkedList.
LinkedList — реализует интерфейс List. Является представителем двунаправленного списка, где каждый элемент структуры содержит указатели на предыдущий и следующий элементы. Итератор поддерживает обход в обе стороны. Реализует методы получения, удаления и вставки в начало, середину и конец списка. Позволяет добавлять любые элементы в том числе и null.
Продолжаю начатое, а именно, пытаюсь рассказать (с применением визуальных образов) о том как реализованы некоторые структуры данных в Java.
В прошлый раз мы говорили об ArrayList, сегодня присматриваемся к LinkedList.
LinkedList — реализует интерфейс List. Является представителем двунаправленного списка, где каждый элемент структуры содержит указатели на предыдущий и следующий элементы. Итератор поддерживает обход в обе стороны. Реализует методы получения, удаления и вставки в начало, середину и конец списка. Позволяет добавлять любые элементы в том числе и null.
+42
Структуры данных в картинках. HashMap
6 min
1.2MПриветствую вас, хабрачитатели!
Продолжаю попытки визуализировать структуры данных в Java. В предыдущих сериях мы уже ознакомились с ArrayList и LinkedList, сегодня же рассмотрим HashMap.
HashMap — основан на хэш-таблицах, реализует интерфейс Map (что подразумевает хранение данных в виде пар ключ/значение). Ключи и значения могут быть любых типов, в том числе и null. Данная реализация не дает гарантий относительно порядка элементов с течением времени. Разрешение коллизий осуществляется с помощью метода цепочек.
Продолжаю попытки визуализировать структуры данных в Java. В предыдущих сериях мы уже ознакомились с ArrayList и LinkedList, сегодня же рассмотрим HashMap.
HashMap — основан на хэш-таблицах, реализует интерфейс Map (что подразумевает хранение данных в виде пар ключ/значение). Ключи и значения могут быть любых типов, в том числе и null. Данная реализация не дает гарантий относительно порядка элементов с течением времени. Разрешение коллизий осуществляется с помощью метода цепочек.
+69
Структуры данных: бинарные деревья. Часть 2: обзор сбалансированных деревьев
6 min
242KПервая статья цикла
Во второй статье я приведу обзор характеристик различных сбалансированных деревьев. Под характеристикой я подразумеваю основной принцип работы (без описания реализации операций), скорость работы и дополнительный расход памяти по сравнению с несбаланчированным деревом, различные интересные факты, а так же ссылки на дополнительные материалы.
Интро
Во второй статье я приведу обзор характеристик различных сбалансированных деревьев. Под характеристикой я подразумеваю основной принцип работы (без описания реализации операций), скорость работы и дополнительный расход памяти по сравнению с несбаланчированным деревом, различные интересные факты, а так же ссылки на дополнительные материалы.
+53
Анализируем Twitter при помощи R
4 min
9.4KЗдравствуйте, уважаемое хабрасообщество!
На Хабре уже несколько раз говорили о возможностях среды R, но я считаю, что дополнительная информация станет полезной, так как R — это очень интересный и мощный инструмент, который может быть применен в самых разных областях. Я попробую это доказать на примере анализа появления одного из трендов Twitter. Для этого нам понадобится библиотека twitteR, которая позволяет работать с Twitter через API. Но для начала расскажу подробнее об R.
На Хабре уже несколько раз говорили о возможностях среды R, но я считаю, что дополнительная информация станет полезной, так как R — это очень интересный и мощный инструмент, который может быть применен в самых разных областях. Я попробую это доказать на примере анализа появления одного из трендов Twitter. Для этого нам понадобится библиотека twitteR, которая позволяет работать с Twitter через API. Но для начала расскажу подробнее об R.
+26
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity