Translate

вівторок, 31 грудня 2013 р.

З Новим Роком і Різдвом Христовим


Бажаємо всім членм JUG Львів кращого і цікавішого нового року ніж попередній :)

ПС: 2014 рік стане новим проривом для JAVA і JUG Львів. Очікуємо на Вас на наших зустрічах :)

JUG Team

четвер, 12 грудня 2013 р.

вівторок, 10 грудня 2013 р.

Java Build Tools


Знову нас тішить zeroturnaround чудова стаття Java Build Tools: Part 1 – An Introductory Crash Course to Getting Started with Maven, Gradle and Ant + Ivy

середу, 4 грудня 2013 р.

понеділок, 2 грудня 2013 р.

Node.js at PayPal


There’s been a lot of talk on PayPal moving to node.js for an application platform. As a continuation from part 1 of Set My UI Free, I’m happy to say that the rumors are true and our web applications are moving away from Java and onto JavaScript and node.js.
Historically, our engineering teams have been segmented into those who code for the browser (using HTML, CSS and JavaScript) and those who code for the application layer (using Java). Imagine an HTML developer who has to ask a Java developer to link together page “A” and “B”. That’s where we were. This model has fallen behind with the introduction of full-stack engineers, those capable of creating an awesome user interface and then building the application backing it. Call them unicorns, but that’s what we want and the primary blocker at PayPal has always been the artificial boundary we established between the browser and server.
Node.js helps us solve this by enabling both the browser and server applications to be written in JavaScript. It unifies our engineering specialties into one team which allows us to understand and react to our users’ needs at any level in the technology stack.

Early adoption

Like many others, we slipped node.js in the door as a prototyping platform. Also like many others, it proved extremely proficient and we decided to give it a go on production.
Our initial attempts used express for routing, nconf for configuration, and grunt for build tasks. We especially liked the ubiquity of express, but found it didn’t scale well in multiple development teams. Express is non-prescriptive and allows you to set up a server in whatever way you see fit. This is great for flexibility, but bad for consistency in large teams. Over time we saw patterns emerge as more teams picked up node.js and turned those into Kraken.js; it’s not a framework in itself, but a convention layer on top of express that allows it to scale to larger development organizations. We wanted our engineers to focus on building their applications and not just focus on setting up their environments.
We’ve been using kraken.js internally for many months now (we’ll be open sourcing it soon!) and our engineering teams are eager to finally bring the internal node.js applications we’ve built live.

Bringing node.js to production

Our first adopter of node.js in production wasn’t a minor application; it was our account overview page and one of the most trafficked apps on the website. We decided to go big, but we also mitigated that risk by building the equivalent Java application in parallel. We knew how to deploy and scale Java applications, so if anything went wrong with the node.js app, we could fall back to the Java one. This provided the setting for some interesting data.

Development

We started in January and it took us a few months to get the necessary infrastructure in place for node.js to work in PayPal, e.g. sessions, centralized logging, keystores. During this time we had five engineers working on the Java application. Two months in to the Java development, two engineers started working on the parallel node.js app. In early June they met at a crossroads, the applications had the same set of functionality; the node.js application, a smaller team with a two month delayed start, had quickly caught up. A few details stood out after we ran the test cases and both applications passed the same functional tests. The node.js app was:
  • Built almost twice as fast with fewer people
  • Written in 33% fewer lines of code
  • Constructed with 40% fewer files
This provided encouraging evidence to show that our teams could move faster with JavaScript. We were sold and made the decision to put the Java app on hold while we doubled down on the JavaScript one. The great news is that the Java engineers on the project, unsure about node.js in the beginning, delightfully moved over to node.js and are happily committing to a parallel work stream, providing us with double the productivity we were originally seeing.

Performance

Performance is a fun and debatable topic. In our case, we had two applications with the exact same functionality and built by roughly the same teams: one on our internal Java framework based on Spring and the other built on kraken.js using express, dust.js and other open source code. The application contained three routes and each route made a between two and five API requests, orchestrated the data and rendered the page usingDust.
We ran our test suite using production hardware that tested the routes and collected data on throughput and response time.
Node.js vs Java performance graph
You can see that the node.js application had:
  • Double the requests per second vs. the Java application. This is even more interesting because our initial performance results were using a single core for the node.js application compared to five cores in Java. We expect to increase this divide further.
  • 35% decrease in the average response time for the same page. This resulted in the pages being served 200ms faster— something users will definitely notice.
There’s a disclaimer attached to this data: this is with our frameworks and two of our applications. It’s just about as apples-to-apples a performance test as we could get between technologies, but your milage may vary. That said, we’re excited by what we’ve seen from node.js’ raw performance.

Future

All of our consumer facing web applications going forward will be built on node.js. Some, like our developer portal, are already live while others, like account overview, are in beta There are over a dozen apps already in some stage of this migration and we will continue to share data as more applications go live. This is an exciting time for engineering at PayPal!
– Jeff Harrell
@juxtajeff



суботу, 30 листопада 2013 р.

CRASHING YOUR JVM


Thorough testing can be harmful as we discovered recently. Extending our test coverage led us to a several-hours debugging session caused by just one line of code. What made the debugging particularly unpleasant was the fact that the code crashed not just the JVM it was deployed to, but also the virtual and/or physical machine underneath.
So, run the following at your own risk. Note that you have to provide the tools.jar in your classpath both for compilation and run-time.


Top 10 Algorithms for Coding Interview


The following are top 10 algorithms related concepts in coding interview. I will try to illustrate those concepts though some simple examples. As understanding those concepts requires much more efforts, this list only serves as an introduction. They are viewed from a Java perspective. The following concepts will be covered:
  1. String
  2. Linked List
  3. Tree
  4. Graph
  5. Sorting
  6. Recursion vs. Iteration
  7. Dynamic Programming
  8. Bit Manipulation
  9. Probability
  10. Combinations and Permutations


середу, 27 листопада 2013 р.

One million requests per sec? No sweat for Compute Engine, says Google



Elliot Bentley
One of the best aspects of AWS-style cloud computing is the ability to quickly scale up in times of high traffic. Reddit, for example, temporarily added 40% extra capacity to cope with last year’s Obama AMA using Amazon’s cloud service.
However, while Bezo’s behemoth may be thebiggest cloud provider, it’s far from the only option available. Microsoft arestarting to take Azure seriously, and this week Google trumpeted the advantages of Google Compute Engine with an impressive demo of their load balancing service.
In the days before Nginx, the target was 10,000 simultaneous requests: now, Google haveshown off their virtualised infrastructure scaling up to 1,000,000 per second in just five seconds.
In May, Google Compute Engine hosted the backend for the Eurovision Song Contest companion app. The TV show is watched live by 125 million people across Europe, and its engineers managed to scale the app to a whopping 50,000 requests per second.
In comparison, wrote Voellm, the load generated in this experiment was 20 times that amount – equivalent to truly enormous massive spike in traffic. The million requests per second were served by 200 single-core VMs, each receiving approximately 5,000 requests per second.
The key boast for Google is the speed at which these VMs were spun up: apparently within five seconds and without any ‘pre-warming’ whatsoever. AWS’ Elastic Load Balancing service is nowhere near as flexible – requiring both a $49-monthly premium support agreement and notification of high traffic in advance.
Equally impressive is the fact that this setup cost just $10 USD. Granted, this might go up a notch when sending real responses (the service is billed by GB of data processed in addition to an hourly service charge), but still appears to be jaw-dropping value for money.
As AWS continues to dominate the market, it’s good to see real competition and innovation from rivals – even if it results in Google controlling even more of the internet.


вівторок, 12 листопада 2013 р.

JUG Lviv Flame#1: How to launch project from scratch?



Ми хочемо запропонувати вам новий формат   - JUG Flame
В чому особливість?
Updated: в звязку з певними обставинами зустріч відбудеться 22-го листопада а не 20-го як було анонсовано раніше

Є теми на які нема однозначної відповіді, теми дискутивні та все ж  важливі.
Отож ми пропонуємо вам прийти та поділитись власним досвідом, обговорити чи просто послухати думку колег.
Для першої такої зустрічі ми вибрали тему - 

Як запустити проект з нуля?

За час своєї роботи у львівському аутсорсі, я не раз бачив ситуацію, коли люди навіть з великим досвідом все ж мали проблеми з запуском нових проектів, робили одні й ті самі помилки та витрачали купу зусиль на непотрібні речі. Дуже часто аутсорс змушує нас розвивати існуючі проекти та доволі рідко трапляються випадки коли проект потрібно запустити самотужки. 
Якщо вас цікавить дана тема, якщо ви хочете дізнатись щось нове - реєструйтесь та приходьте.  Кількість місць обмежена!

  • Коли:  22 листопада 2013 року о 19-00
  • Де: Федьковича, 60а, 4004 конференц-зал, компанія SoftServe
  • Вхід вільний
  • Реєстрація обовязкова




P.S. Як завжди ми розіграємо серед слухачів ліцензію від JetBrains

Scala Day at manning.com - 50% off



    

Scala Day at manning.com

 

I
It's Scala Day at Manning. Enhance your programming library with 50% off these selected Scala-related books. Just enter dotd1112tw in the Promotional Code box when you check out at manning.com to save half. Offer expires at midnight EST November 12, 2013.

 Only at manning.com 


пʼятницю, 8 листопада 2013 р.

Java Performance Problems eBook


корисна і головне безкоштовно доступна для завантаження книжка присв"ячена типовим проблемам з перформансом при розробці на Джаві
http://info.appdynamics.com/Top10JavaPerformanceProblems_eBook.html
освітленні лише певні топіки, але проглянути всеодно цікаво



середу, 6 листопада 2013 р.

R.I.P. GlassFish - Thanks for all the fish.


R.I.P. GlassFish - Thanks for all the fish.

 
We've all heard it coming probably. Yesterday the official roadmap update for JavaEE and GlassFish was updated and published. And beginning with the title the whole post was basically about one thing: GlassFish Server as we know it today is deprecated from a full blown product to a toy product.

The Long Road from Sun to Oracle
GlassFish was something to worry about right from the start. After the merger it took some time to silence the voices which insisted on "Oracle killing GlassFish". Oracle did a decent job in nurturing the community and keeping their stuff together. I've written a couple of blogs myself helping to get the word out. The 100-day releases 2.1.2 and 3.0.1 have somehow become the milestone to prove the will to improve. And we all have been fine with it after a while. Even back in January 2013 I compiled a list of open source application servers and which one to pick. The final criteria was vendor support. That kicked WAS CE out of the game. As of yesterday it would also removed GlassFish. The two remaining alternatives burned down to one: Which is JBoss AS7 / WildFly.


The Rise And Fall Of Waterfall





четвер, 31 жовтня 2013 р.

Popular coding resources to learn online


Code School teaches web technologies in the comfort of your browser with video lessons, coding challenges, and screencasts.



Тематичні майстер класи від GlobalLogic


Компанія GlobalLogic запрошує студентів та аспірантів, майбутніх ІТ-професіоналів, на серію тематичних майстер-класів, що пройдуть з 1 листопада в головному корпусі Львівської політехніки в аудиторії №139 (мапа).
Початок занять о 18:00.

Читайте анонс безкоштовних майстер-класів: http://bit.ly/gl_m_c

Реєструйтесь, щоб отримати запрошення на них: http://bit.ly/gl_m_c_reg

середу, 30 жовтня 2013 р.

Webinar from Luxoft


Сьогодні (30.10) відбудеться вебінар Write mobile applications to all devices (Java) від Luxsoft

Реєстрація і деталі:
http://www.luxoft.com/lts-luxoft-technology-series/

вівторок, 29 жовтня 2013 р.

JDK™ 8 Early Access Releases + Bonus


Якщо Ви ще не пробували JDK 8 і не знаєте  де її знайти.

Вам сюди: https://jdk8.java.net/download.html
JDK 8 для різних платформ

І невеликий буонс.  JavaOne 2013 Roundup: Java 8 is Revolutionary, Java is back

вівторок, 22 жовтня 2013 р.

JDay is coming back




Пройшов якийсь час і нам пора готуватись до нового JDay Lviv. Щире прохання до всього комюніті, якщо хтось хоче та може допомогти в залученні спонсорів або має контакти з хорошими доповідачами чи просто людьми, які працюють над відомими продуктами на чи для java або jvm (наприклад Minecraft або  Eclipse) - пишіть нам. 
Якщо ви просто хочете допомогти в організації конференції або маєте пропозиції, зауваження, побажання - звертайтесь. 
Ми будемо дуже вдячні за допомогу чи просто добрі слова.





понеділок, 21 жовтня 2013 р.

GA release of Apache Hadoop 2.x


Apache Hadoop 2.2.0 is the GA release of Apache Hadoop 2.x.
Users are encouraged to immediately move to 2.2.0 since this release is significantly more stable and is guaranteed to remain compatible in terms of both APIs and protocols.
To recap, this release has a number of significant highlights compared to Hadoop 1.x:
  • YARN - A general purpose resource management system for Hadoop to allow MapReduce and other other data processing frameworks and services
  • High Availability for HDFS
  • HDFS Federation
  • HDFS Snapshots
  • NFSv3 access to data in HDFS
  • Support for running Hadoop on Microsoft Windows
  • Binary Compatibility for MapReduce applications built on hadoop-1.x
  • Substantial amount of integration testing with rest of projects in the ecosystem
A couple of important points to note while upgrading to hadoop-2.2.0:
  • HDFS - The HDFS community decided to push the symlinks feature out to a future 2.3.0 release and is currently disabled.
  • YARN/MapReduce - Users need to change ShuffleHandler service name from mapreduce.shuffle to mapreduce_shuffle.
Please see the Hadoop 2.2.0 Release Notes for details.


пʼятницю, 18 жовтня 2013 р.

Spring tutorial


Ще оlни сайт з великою к-сть туторіалів Spring і не тільки...
http://hmkcode.com/spring-framework-tutorial/

четвер, 17 жовтня 2013 р.

Java Tech Talks# 11. val you = new Developer[Any] with ScalaKnowledge Одеса


Продовжуючи підтримку активності для тезнічних спеціалістів в Одесі, запрошуємо всіх бажаючих дізнатись більше про Scala в одеський офіс компанії Lohika на 11 зустріч ’Java Tech Talks’.
20 жовтня наші спікери разом з вами будуть боротись з труднощами  функціональних мов на зустрічі ’val you = new Developer[Any] with ScalaKnowledge’.

Доповідачі:

Alex Albul — Scala Zombie Team Leader @ Lohika
Alexey Migutsky — Senior Scala Zombie @ Lohika

Программа:

10:30 — registration, coffee, sweets
11:00 — Sleeping time — duration 1:40
a. Introduction
b. Immutability
c. Building blocks
d. Basic types
e. Class hierarchy
13:00 Pizza break
13:30 WAT? — duration 2:00
a. Functions. Methods. First-class functions
b. Type inference
c. Closures
d. Collections
15:30 — Gore, Blood, Violence! — duration 1:35
a. Loops. For comprehension.
b. Pattern matching.
c. Implicits
d. Scala syntax sugar
Q&A
Для участі заповніть форму реєстрації та приходьте.



середу, 16 жовтня 2013 р.

If Java Is Dying, It Sure Looks Awfully Healthy



A recurring prejudice in the forums where the cool kids hang out (Hacker News, Reddit, etc.) is against Java, the language. The oft-repeated sentiments are that Java is verbose and fading in popularity. While I accept the first descriptor, I can find little evidence to support the latter.
Java certainly can be verbose. Until a year and a half ago, when Java 7 came out, a simple task such as writing to a file required a lengthy multi-step process, laden with "ceremony." In response to this pervasive wordiness, there sprang up several scripting languages, which were purpose-designed to spare developers from long syntactical passages to communicate a simple action: NetRexx, Groovy, Scala, and others. I'm a fan of Groovy and use it in my own projects, but mostly for the additional capabilities it provides (optional typing, closures, method injection, metaprogramming, and so on) rather than its concision.


1000 Responses to Java Is Not Dying


My editorial last week, "If Java is Dying, It Sure Looks Awfully Healthy"  hit a nerve in various developer communities. Between Reddit, Hacker News, and Slashdot, it received more than 1,000 comments. Curiously, very few commenters disputed my central argument; namely, that the common prejudice that Java is dying is not supported by the reality. Here, however, are the major points they did make:


пʼятницю, 11 жовтня 2013 р.

How Java Programmers “Feel” in 2013


My summary of general Java sentiment after attending JavaOne 2013.
“Everyone’s all excited that Java didn’t die. Yay! We made it!”
source


I feel about Java or my satisfaction


JUG Lviv Youtube channel


JUG Lviv має свій канал на Youtube, де Ви можете знайти відео з конференції JDay і де ми в подальшому будемо викладати відео з наших зустрічей.

Підписуйтесь, коментуйте і приходьте на наші зустрічі.

Посилання на канал
http://www.youtube.com/channel/UCW8XWG7scEX50ZuHoMSE9rQ

четвер, 10 жовтня 2013 р.

Доповіді та теми


Привіт спільното,
ми -JUG Lviv - плануємо провести кілька чергових зустрічей, а також на носі 2014 і новий  JDay тож прохання відгукнутись і написати які теми вас цікавлять та які доповіді, що саме для вас є найбільш актуальним?


Буду вдячний за будь які ваші коментарі, відгуки та побажання

/Андрій Андруневчин

Листопадові конференції у Лондоні


Наступного місяця в Лондоні відбудеться дві конференції 

Velocity November 13-15, 2013, London, UK.

Most companies with outward-facing dynamic websites face the same challenges: pages must load quickly, infrastructure must scale efficiently, and sites and services must be reliable, without burning out the team or breaking the budget. Velocity is the best place on the planet for web ops and performance professionals like you to learn from your peers, exchange ideas with experts, and share best practices and lessons learned.








Strata Conference is back in London 11-13 November, 2013

Join the best minds in data at Strata Conference in London and explore the latest the latest developments in data science and big data technologies: trends, tools, new practices, careers & culture, as well as the ongoing discussion around ethics, policy, and privacy. Save 20% with code USRG.

вівторок, 8 жовтня 2013 р.

Embedded Lviv TechTalk


15 жовтня у Львові відбудеться Embedded Lviv TechTalk присвячений темі Embedded/Linux розробки — унікальна можливість для вас першими почути доповіді, підготовані знаними експертами для провідних міжнародних IT-конференцій!

Нір Боренштайн, експерт з більш ніж 15 річним досвідом роботи в області embedded-розробки та R&D, директор з R&D компаній Jungo та Cisco, розкаже про особливості технологічних розробок та R&D в компанії Cisco.

Артем Мігаєв, керівник напрямку Embedded practice компанії GlobalLogic Ukraine, виступить з темою рівня міжнародної конференції: “XEN: Віртуалізація для Android”.

Володимир Остап, провідний інженер GlobalLogic, виступить з доповіддю “Modern Residential Gateway”.

Крім виступів спікерів, на вас чекають networking-party з фуршетом та розіграш призів серед найактивніших слухачів.

Участь безкоштовна за умови попередньої реєстрації.

Приходьте, щоб особисто поспілкуватися з провідними експертами і почути ексклюзивні доповіді!

Час та дата: 15 жовтня, 18:30
Місце: м. Львів, вул. Шептицьких, 26, офіс GlobalLogic, GL-Club (див. на мапі)
Контактна особа: Дар’я Тхоревська, daria.tkhorevska@globallogic.com

Теорія алгоритмів. (рус)


Дуже цікаві статті по теорії алгоритмів.

Дуже раджу почитати. Особливо людям без математичної освіти.

неділю, 29 вересня 2013 р.

DevDay 2013 Report


I've recently visited DevDay 2013 at Krakow, Poland.

DevDay is a one-day long event, organized by ABB.
There were 12 speakers and around 300 participants.

Talks

Back to basics: the mess we've made of our fundamental data types
Jon Skeet

Jon focused on the things we all use everyday, perhaps, not  paying to much attntion to the details. Numbers, strings, dates.
For example, in java,
double d = 0.3d is actually 0.299999999

Also, Jon pointed to interesting facts about dates. For example:
  • CST is the name for 3 different timezones
  • There are dates which exist in one country only - February 30, 1712
And finally "The Turkey Test". If you want to test your application internationalization - just try to run it in Turkey.
It was a great key note from a great speaker, who is known for C# in depth and also, as the most popular user at StackOverflow.

Implementing continious delivery
Patrick Kua

Talk from ThoughtWorks generalising specialist, about what continious delivery really is and how does it help to move the business forward.
So, as Patrick suggests, we should :

  • Release often
  • Make no breaking changes - this becomes easier if you release frequently, because each release becomes a minor change.
  • Make Ops and Dev teams work together




Moving the web to the client
Hadi Hariri
Hadi Hariri, JetBrains evangelsit, had a talk about front-end frameworks in genral and specifically about Angular JS.

He also reminded about the power of HTTP protocol, whch is often undertaken by the developers. The suggestion is to use HTTP not only as a transport protocol, but an application protocol, which it really is.


Full text search with Apache Lucene
Itamar Syn-Hershko

The author of Raven DB in action explained the fundamentals of full text search and how Lucene helps to solve the problem.

He also recommended the ElasticSearch, which is build on top of Lucene and has clustering support out of the box. Apart from ability to scale to many servers, there's also a REST API, which, looks to be easy to learn and use.
The Architecture of StackOverflow
Marco Cecconi
Software engineer from StackExchange, Marco Cecconi gave an overview of the infrastructure and architecture, which lies behind one of the most popluar web-sites in the world - StackOverflow.

Here are some facts:
  • There are only 23 servers handling all the load - it is ~10 times less then sites with similar traffic usually have.
  • Everything is cahced - database servers have ~300GB of RAM memory.
  • At StackOverflow, they scale-up. When everyone is saying that applications should run on cheap comodity hardware, SO runs on big servers, without any cloud platforms.
  • All the server are located in the US.
It was funny to see Marco on the next day, wearing T-shirt, with the following phrase written on it:
"I don't usually test my code, but when I do - I do it in production". 


The software journeyman's guide to being homeless and jobless
Rob Ashton

The closing talk from Rob Ashton was all about fun and motivation. An expiring story of a man, who left a boring job and decided to work for free, for companies who needed help.







Gadgets

Each participant recieved a nice package with high-quality T-shirt, pen and notebook.








Fun

After the closing talk, the place turned into a party-hall, with beer and shampain.
But, at 10 pm we've moved to a pub, for an after-party, which ended at ~5 am in the morning.




Conlusion


DevDay 2013 was perfect.
Well organized, with interesting talks, nice venue and a lot of fun. And it was all free!




пʼятницю, 27 вересня 2013 р.

Java + sailing =


Команда Ларри Эллисона Oracle Team USA выиграла «Кубок Америки»




продвинута програмна начинка яхти (джаба-бейзд) вже згадувалася в нашому блозі


Кофейня Java Update в GTA V


Пасхальні яйця в GTA V: http://habrahabr.ru/post/195484/



четвер, 19 вересня 2013 р.

Spring.io


Spring відкрив/створив новий сайт http://spring.io/ для полегшення і пришвидшення навчання всього спектру технологій.

Дуже раджу відвідати!

вівторок, 10 вересня 2013 р.

Camel 2.12.0 release


Camel 2.12.0 release

Посилання на сторінка з release notes: http://camel.apache.org/camel-2120-release.html

Доречі зявились нові приклади:
http://camel.apache.org/examples.html
http://camel.apache.org/tutorials.html


понеділок, 2 вересня 2013 р.

середу, 28 серпня 2013 р.

How to use Events in Spring 3.x



There are many concepts and techniques for creating loosely coupled applications,Event is one of them. Events can eliminate many of dependencies in your code. Some times without events, SRP* is very hard to implement. Observable interface in java can help us to implement events (through Observer Pattern).
But wait, the goal of this post is a fast tutorial about Spring Event. Spring has some nice facilities for creating Event Driven Applications. You can raise a specific event in a bean and listen to it in the other bean.


понеділок, 19 серпня 2013 р.

Безкоштовний вебінар “Практикум TDD”


Хто ще не знає, завтра відбудеться вебінар “Практикум TDD” Дізнатись більше та зареєєструватись ви можете за посиланням.



четвер, 8 серпня 2013 р.

The Adventurous Developer’s Guide to JVM Languages


The Adventurous Developer’s Guide to JVM Languages from zeroturnaround (creators of JRebel) 


Дуже рекомендую до читання http://zeroturnaround.com/rebellabs/the-adventurous-developers-guide-to-jvm-languages/, розглядають плюшки 8ми мов, доступних в ЖВМ.


вівторок, 6 серпня 2013 р.

Engineering conference survey


Нещодавно пройшла конференція JDay 2013. Для того, щоб краще організувати схожу подію наступного року нам потрібна Ваша допомога. 


Зробіть свій внесок, заповніть опитування!



четвер, 1 серпня 2013 р.

Java Magazine July/August 2013



Що корисного/цікавого в цьому номері? Можна прочитати більш політичну, ніж технічну статтю про долю джави у Twitter'і. Цікава стаття зі консультантом по перформансу, як все змінюється "в облаках", і т.п.. Для тих, хто вирішив освоїти МапРедюс - ріаллайф приклад з кодом. Ну і ще про лямбди, VM code cache, JavaFX, etc

І як бонус: цікава стаття про яхтову команду Оракл, та як технологія джава дозволила виграти їм змагання 2010. Як виявилося, на якті встановлено купу датчиків та сервер, що обробляє 30,000 значень від датчків у секунду і згідно них видає рекомендації щодо керування яхтою  




понеділок, 29 липня 2013 р.

Run your Unit Tests in Parallel


It was about time when the developer of Unit Tests had the ability to run the tests in Parallel using annotations. In today's blog post, we will look at how you can make your traditional Junit Tests to run in parallel using annotations provided by Easytest. EasyTest is a Testing Framework build on top of JUnit to provide you ease of writing and maintaining your tests. It is focused on writing Data Driven Tests for your application.


Lets start by assuming a Class ItemService  that has a method 2 methods :
1) getItems that takes 2 arguments Double itemId and String itemType. The API class is described below.
2)    updateItem that takes an Item instance and updates it in the Database.

public class ItemService {

   public List getItems (Double itemId , String itemType);

   public void updateItem (Item item);

}

We will leave out the implementation for the sake of keeping the example simple.

Lets see the step by step approach of writing Parallel Unit Tests.