Pull to refresh
0
0

Java developer

Send message

3D-принтеры: еще бюджетнее, еще оригинальнее

Reading time2 min
Views102K


3D-принтеров печатающих пластиком ABS и/или PLA все больше и больше. Хотя основных конструкций, по большому счету, всего 2-3. Поэтому создатели новых принтеров стараются реализовать в конструкции некоторую изюминку или просто сделать еще дешевле.
Читать дальше →
Total votes 73: ↑73 and ↓0+73
Comments78

Знакомтесь: МиниБот

Reading time3 min
Views6K

Это и есть MiniBot, собственной персоной.

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

Учитывая это, а так же то, что большинство интересующихся робототехникой проходят по сути одни и те же шаги (проектируют схему на базе микроконтроллера, делают силовую часть, подсоединяют экранчик, и т.п.) энтузиасты с roboforum.ru разработали MiniBot.

Что за зверь такой — МиниБот? Если кратко — то МиниБот простой готовый робот для начинающих.
Подробнее можно прочесть под катом...
Total votes 21: ↑19 and ↓2+17
Comments8

Hadoop: что, где и зачем

Reading time14 min
Views459K


Развеиваем страхи, ликвидируем безграмотность и уничтожаем мифы про железнорождённого слона. Под катом обзор экосистемы Hadoop-а, тенденции развития и немного личного мнения.
Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments26

Работа с ветками SVN

Reading time6 min
Views185K
Прежде чем приступать вообще к использованию веток, и даже если вы и не думаете их использовать, необходимо прочесть Этот Священный Талмуд.

После того как вы прочли статью о ветках в svnbook, вы уже понимаете для чего нужны ветки, как с ними работать и в каких случаях их необходимо использовать. В принципе, после этого, то, что написано под катом вам уже скорее всего не нужно. Но если вам было лень читать, то может текст ниже вас заинтересует, и вы все таки прочтете статью документации. А может, просто поможет вам лучше понять то, что только что прочли в svnbook-е.
Читать дальше →
Total votes 84: ↑81 and ↓3+78
Comments72

Hexy — сборный робот на основе Arduino

Reading time1 min
Views11K


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

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments15

И еще раз о тестах. Подход к тестированию кода в реальной жизни

Reading time9 min
Views10K
Думаю, почти каждый сталкивался с таким мнением: писать тесты сложно, все примеры написания тестов даны для простейших случаев, а в реальной жизни они не работают. У меня же за последние годы сложилось впечатление, что писать тесты — это очень просто, даже тривиально*. Автор упомянутого выше комментария далее говорит, что неплохо было бы сделать пример сложного приложения и показать, как его тестировать. Попробую именно этим и заняться.

*)Писать сами тесты — действительно элементарно. Создать инфраструктуру, позволяющую легко писать тесты — чуть сложнее.

Впериот!
Total votes 31: ↑31 and ↓0+31
Comments31

Тестирование в Java. JUnit

Reading time8 min
Views531K

Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

Итак, техника довольно понятна, но встает вопрос, что использовать для написания этих самых тестов? В этой и других статьях я хотел бы поделиться своим опытом в использовании различных инструментов и техник для тестирования кода в Java.

Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

Я не претендую на автора каких-либо оригинальных идей, и возможно многим все, о чем будет рассказано в статье, знакомо. Но если вам все еще интересно, то добро пожаловать под кат.
Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments34

Тестирование в Java. TestNG

Reading time16 min
Views234K

Наверняка все знакомы с таким понятием как test-driven development(TDD). Наряду с ним также существует такое понятие, как data-driven testing(DDT, не в обиду Шевчуку) — техника написания тестов, при которой данные для тестов хранятся отдельно от самих тестов. Они могут храниться в базе данных, файле, генерироваться во время исполнения теста. Это очень удобно, так как один и тот же функционал тестируется на различных наборах данных, при этом добавление, удаление или изменение этих данных максимально упрощено.

В предыдущей статье я рассмотрел возможности JUnit-а. Там примерами такого рода подхода могут служить запускалки Parameterized и Theories, в обоих случаях один тест-класс может содержать только один такой параметризированный тест(в случае Parameterized несколько, но все они будут использовать одни и те же данные).

В этой статье я заострю внимание на тестовом фреймворке TestNG. Многие уже слышали это название, и перейдя на него, вряд ли желают вернуться к JUnit-у(хотя это только предположение).
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments22

Java: Socks 4 Proxy работа с неблокирующими сокетами

Reading time21 min
Views23K
Начиная с версии 1.4 в j2se появился package java.nio, который позволяет работать с сокетами в неблокирующем режиме, что зачастую повышает производительность, упрощает код и даёт дополнительные возможности и функционал. А начиная с версии j2se 1.6 на серверах под упралением ОС линукс(kernel 2.6) реализация класса Selector выполнена с использованием epoll, что обеспечивает максимально возможную производительность.

В примере описанном ниже я постараюсь продемонстрироватьь основные принципе работы с неблокирующими сокетами, на примере вполне реальной задачи – реализации Socks 4 прокси сервер.
Описание и исходный код
Total votes 46: ↑39 and ↓7+32
Comments26

5 вещей, которых вы не знали о многопоточности

Reading time10 min
Views291K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →
Total votes 86: ↑77 and ↓9+68
Comments40

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity