40 • June October 2015 • www.todaysoftmag.ro • www.todaysoftmag.com No. 36 2015 • www.todaysoftmag.ro • www.todaysoftmag.com
TSM
T O D A Y S O F T WA R E MAG A Z I NE
Download from
Windows Store
Taming Hadoop PHP 7 – A look at the future
Connected home
Data Security in the era of Cloud Computing Taking responsive website to the next level An introduction to optimising a hashing strategy
The Mindful Offices Why to participate at Cluj IT Days 2015? How can we communicate effectively with our colleagues?
Innovation, entrepreneurship and technology 24-25 November 2015, Cluj-Napoca
Cluj Arena, Conference Room & Multifunctional Hall
www.itdays.ro
2 days access - 80 euro + TVA
November 24
November 25 Conference Room
Multifunctional Hall
Trends & Leadership Sessions
Startups & Entrepreneurship
Software Architecture
Conference Room
09:00
Coffee & Registration
09:00
Coffee & Registration
09:00
Coffee & Registration
09:30
Opening Remarks Cluj IT Cluster & Ovidiu Mățan (Organizer of IT Days)
09:30
09:30
10:00
Vector Watch in the Context of Wearable Fashion Trends Rareș Florea (Country Commercial Manager Vector Watch)
Driving innovation – TechLeague Diana Tîrnovan (Accesa) Florin Pascaru (Accesa)
On synchronizing data in distributed applications Sergiu Damian (iQuarc)
10:10
10:40
Innovation in Product Development and Future of Work Christoph Steindl (CEO Catalysts Software)
Growth Hacking and Lean Canvas Christoph Steindl (CEO Catalysts Software)
10:40
Start-Ups accross cultures Șerban Țîr (CTO Gemini Solutions)
11:10
Coffee & Networking Break 11:10
Local Product Launches Beyond reality. Virtual Reality. The future of gaming and information visualization Robert Mureșan (CEO Exosyphen)
12:00
The Power of Play Simona Bonghez (CEO Colors in projects)
12:30
Launch of Programez.ro Ovidiu Mățan (TSM) and Vlad Derdeicea (Subsign)
13:00
Lunch Break
11:30
Seedfortech Mircea Vădan (Fortech)
12:00
Tools and talents for tomorrow Roxana Rugină (Simplon)
12:30
Local startup pitches
13:00
Lunch Break
Research
Java
Management
14:00
Be Fast, be Off-JVM, be Chronicle-Queue Vasile Mihali (AROBS)
15:30
jOOQ - an object oriented abstraction interacting with relational databases Silviu Dumitrescu (Telenav)
16:00
Pizza Break
14:00
Let’s “GamEventify”! Adina Grigoroiu (Colors in projects)
14:30
Make it Warmer Dan Suciu (3Pillar Global)
15:00
Building a Strong Employer Brand Through Organizational Culture Cristian Philipp (Essential Training and Consulting)
15:30
Big Data 16:20
Evolving Ideas with BigData tools Tudor Mărghidanu (Yardi)
16:50
Data modeling in Apache Hadoop Tudor Lăpușan (Telenav)
17:00
Machine Learning in the age of Big Data Daniel Sârbe (SDL)
17:50
Networking & wine
Decisions in Architecture Florin Cardasim (Endava)
16:00
Usable Software Design A Management Perspective Alexandru Bolboacă (Mozaic Works)
16:20
16:50
14:30
Selenium WebDriver patterns for maintanability Vasile Pop (Intel) Performance testing how the needs for efficiency dictate the Automation Process Codruța Bunea (Yonder)
17:20
Struggling with Test Automation -Issues and solutions Gabriel Fericean (Siemens)
17:50
Networking & wine
Using artificial intelligence for automatizing software development Răzvan Florian (Romanian Institute of Science and Technology) Reliable Chip Designs from Low-Powered Unreliable Components Sorin Coțofană (Delft University)
15:30
Driver assistance systems and outlook into automated driving Cătălin Golban (Bosch)
16:00
Pizza break
16:20
Driver assistance systems and outlook into automated driving Cătălin Golban (Bosch)
16:50
Large-scale Data Analytics for Smart City and Industrial Applications Dan Puiu (Siemens)
Pizza break
Automated Testing
Coffee & Networking Break
Startups & Entrepreneurship
Multifunctional Hall
15:00
10:40
Coffee & Networking Break
Conference Room Work with Hundreds of Hot Terabytes in JVMs Peter Lawrey (Higher Frequency Trading)
What is Reactive Programming and why should you care Robert Cristian (3Pillar Global)
11:10
11:30
14:00
10:10
HR & Management 17:20
Healthy Organizations Andreea Pârvu (Endava)
17:50
Networking & Wine
.NET 11:30
How to manage one million messages per second using Azure Radu Vunvulea (iQuest)
12:00
Implementing Ports-And-Adapters [in the .NET ecosystem] Andrei Larionescu (Yonder)
12:30
ASP.Net 5 (vNext) Performance Characteristics Cătălin Pop (iQuarc)
13:00
Lunch Break
Hands on Lab 14:00
Low Latency in Java 8 Peter Lawrey (Higher Frequency Trading)
15:00
Creating things with a 3D printer Mihai Oltean (Babeș-Bolyai University)
15:30
Programming collaborative robots with ROS László Tófalvi (Accenture) Péter Magó (Accenture)
16:00
Pizza break
16:20
How to build your own Smart House Călin Bunea (Gemini Solutions)
16:50
Crouching Admin, Hidden Hacker Teodor Olteanu (Betfair)
HR & Management 17:20
Is it easy to integrate young people in IT companies? Dan Ionescu (Danis)
17:50
Networking & Wine
6 Why to participate at Cluj IT Days 2015? Ovidiu Măţan
8 How to Web Conference 2015 Alexandru Botez
10 HackTM 2015 Patricia Borlovan
11 Mobile Operating Systems (MobOS) Community Andreea Pârvu
13 Taming Hadoop Alexandru Păcurar
16 Connected Home Challenges In The Field And What’s Next Kovacs Zsolt 20
Taking responsive website to the next level Paul Axente
22 PHP 7 – A look at the future Radu Murzea
24 An introduction to optimising a hashing strategy Peter Lawrey
27 Data Security in the era of Cloud Computing Angela Lepădatu
29 The Mindful Offices Oliver Heath
31 How can we communicate effectively with our colleagues? Ana-Maria Trifan
editorial
M
Ovidiu Măţan
ovidiu.matan@todaysoftmag.com Editor-in-chief Today Software Magazine
aybe more than in other domains, what matters in IT most is to have a clear vision on the manner in which your project lives its existence, by totally proving its sense and utility. Though my statement seems a little sententious, it starts from an ordinary personal experience: turning the central heating on. I don’t know if you are aware of this, but in order to turn a heating station on, it is enough to connect two wires. Basically, any thermostat starts a circuit when the temperature goes under X degrees and stops it when it reaches Y + delta. It is so easy that a child could program this in pseudo code, and it wouldn’t take more than 1-2 hours for a programmer to make such a functional circuit with an Arduino. The common heating station is only one of the examples of successful products which prove just how much the vision matters. Now, think about Nest, which is the best thermoregulator, according to charts and reviews, the company being bought for 3.2 billion dollars by Google at the beginning of 2014. Their product does the same basic things, in a smarter way and with a few more sensors; the company is still seen as a leader in respect to innovation. Asking ourselves, just like in school, what it is that we can learn from these examples, the correct answer would be that vision is what most matters, before all the requirements and technical conditionings. We are hereby inviting you to read the articles of this edition, which has reached the round figure 40, having published since February 2012 over 700 articles, most of them written by programmers from Romania. Among the technical articles of this issue, The Taming of the Elephant – How Hadoop Works invites you to an introduction to what Apache Hadoop functioning means. In Connected Home – Challenges in the Area and What is Next, you can learn about the main trends in regard to a Smart House. Taking Responsive Website to the Next Level proposes the changing of the paradigm through which an user adapts to a website, having, instead, the website adapt automatically to the user’s preferences. The article Joe. PHP7 – Looking towards the Future presents the main features of the next version of the popular PHP language. We are also publishing, from Peter Lawrey, our main guest to Cluj IT Days 2015, a new article for advanced Java programmers on optimizing the hashing strategy: An introduction to optimizing a hashing strategy. Given the fact that the theft of data represents a real problem especially for the software companies, the article called Data Security in the Era of Cloud Computing makes a merit of proposing a solution to this problem. We conclude by a useful article on licenses: Briefly, on licenses in the IT&C industry.
Ovidiu Măţan
Founder Today Software Magazine
4
nr. 40/2015, www.todaysoftmag.com
Editorial Staf Editor-in-chief: Ovidiu Mățan ovidiu.matan@todaysoftmag.com Graphic designer: Dan Hădărău dan.hadarau@todaysoftmag.com
Authors list Ovidiu Măţan ovidiu.matan@todaysoftmag.com
Radu Murzea rmurzea@pentalog.fr
Editor-in-chief Today Software Magazine
PHP Developer @Pentalog
Irina Scarlat
Copyright/Proofreader: Emilia Toma emilia.toma@todaysoftmag.com Translator: Roxana Elena roxana.elena@todaysoftmag.com Reviewer: Tavi Bolog tavi.bolog@todaysoftmag.com Accountant : Delia Mircea delia.mircea@todaysoftmag.com Junior developer: Alexandru Diniș alexandru.dinis@todaysoftmag.com Marketing specialist and tehnoredactor: Ana-Maria Bivol anamaria.bivol@todaysoftmag.com Printed by Daisler Print House
irina.scarlat@howtoweb.co PR Manager @ How to Web & TechHub Bucharest
Peter Lawrey peter.lawrey@ highfrequencytrading.com CEO @ Higher Frequency Trading Ltd
Tudor Bîrlea
Angela Lepădatu angela.lepatadu@cososys.com
Fondator @This Is Not a Storm
Marketing Professional and Account Manager @CoSoSys
t@thisisnotastorm.com
Alexandru Păcurar alexandru.pacurar@ propertyshark.com System Administrator @ Yardi România
Kovacs Zsolt kovacs.zsolt@accenture.com
Oliver Heath Founder @ Heath Design Ltd
Alice Mogojan alice@antoma.ro
Mobile Applications Capability Group Lead @ Accenture
Marketing @ U Cluj Handbal Masculin
Paul Axente paul.axente@3pillarglobal.com
Ana-Maria Trifan anamaria.trifan@happy-employees.eu
Senior UX Engineer @3Pillar Global
PR & Custumer Care Specialist @ Azimut Happy Employees
Made by
Today Software Solutions SRL str. Plopilor, nr. 75/77 Cluj-Napoca, Cluj, Romania contact@todaysoftmag.com www.todaysoftmag.com www.facebook.com/todaysoftmag twitter.com/todaysoftmag ISSN 2285 – 3502 ISSN-L 2284 – 8207
Copyright Today Software Magazine
Patricia Borlovan
Claudia Jelea
Coordinator @ HackTM
Lawyer @IP Boutique
patricia@hacktm.ro
claudia.jelea@jlaw.ro
Andreea Pârvu
Andreea.Parvu@endava.com Organizer @ MOBOS
Any reproduction or total or partial reproduction of these trademarks or logos, alone or integrated with other elements without the express permission of the publisher is prohibited and engage the responsibility of the user as defined by Intellectual Property Code www.todaysoftmag.ro www.todaysoftmag.com
www.todaysoftmag.com | nr. 40/october, 2015
5
event
Why to participate at Cluj IT Days 2015?
I
have recently got this question from a web programmer who is going to be in Cluj during the event. Should he attend IT Days given the fact that there is no track dedicated to web technologies? The answer is affirmative. As a specialist in an area, it is relatively easy to understand the other technologies, and IT culture should consist of several areas, not just the one we are currently working with. Actually, most of the presentations are addressed to programmers, no matter their specialty. Thus, we have the following sections: big data, management, software architecture, products, startups and research. Moreover, those from Hands On Lab will make references to concepts, not necessarily to a certain language. The only tracks oriented towards specialists are those of Java and .NET, where it is recommended that the people attending have some knowledge in these areas. Therefore, the conference will be accessible to all the specialists. But what we are wishing for, as organizers, is that every presentation clearly conveys a message, a tendency or a lesson that the participants can learn. Last but not least, IT days can also be an invitation to technical discussions or an opportunity to meet colleagues who work in other companies. In the following lines, I invite you to read a short presentation music, too, as he is the drummer in two local bands: Relative and of the speakers and the technical subjects of Cluj IT Days, www. Holy Motors. His presentation in entitled: Evolving ideas with itdays.ro, on November 24th -25th. Big Data tools. Tudor Lapusan, initiator of the Big Java Data Cluj group, is an admirer of Big Peter Lawrey is a special guest, who Data technologies, especially of Apache participates for the second time in the Hadoop technologies. His presentation conference. He has a popular blog, will be on modeling data in Apache Hadoop: Data modeling in Vanilla Java, which has recently reaApache Hadoop. ched 4 million views. The open source Daniel Sarbe coordinates the Big Data projects he is working on, OpenHFT, Chronicle-Queue and and Machine Translation group within Chronicle Engine also have now a component oriented towards SDL Research Cluj, where he is working companies. Peter will also lead, separately, a workshop for advanon a solution for processing unstructuced Java programmers. His presentation, Work with Hundreads red data, given a volume of the order of petabytes, with the help of Hot Terabytes in JVMs, which is also presented these days in of Hadoop technologies. Moreover, he is involved as speaker and the JavaOne conference in San Francisco, proves how terabytes of organizer in the Big Data community. His presentation will be: data can be accessed and how real time updates can be obtained Machine Learning in the age of Big Data. from the SQL data base by using Java language. Vasile Mihali, a software passionate, Software Architecture especially keen on Java, has worked in Sergiu Damian, software architect, cloud distributed projects, using tens distinguishes himself through a clear of machines and terabytes of data. His understanding of the architecture of presentation, Be Fast, be Off-JVM, be systems, practices and processes of Chronicle-Queue will use the libraries described by Peter in software development. His initiative, order to prove the optimization of applications and of using the RABS, enjoys a real success among the specialists, having an hardware resources through Chronicle-Queue. active role in the local communities. Within Cluj IT Days, he will Silviu Dumitrescu is an old collaborator of the TSM magazine, talk about synchronizing data in distributed systems, in a presenwho has taught for many years in the university of Oradea, also tation entitled: On synchronizing data in distributed applications. starting recently a collaboration with The lack of a stable and reusable modality in synchronizing data companies in Cluj. Having a passion between the client applications and server represents a problem for Java and a trainer certification awar- that is frequently encountered in the modern frameworks and ded by Oracle, Silviu will talk about his applications. His presentation will debate precisely this problem, practical experience with JOOQ in the offering possible solutions and answers. presentation called: jOOQ – an object oriented abstraction, Robert Cristian is the manager of the interacting with relational databases. advanced technology group within the Romanian branch of 3Pillar Global. Big Data His role is to lead the R&D effort and Tudor Marghidanu, a software devehis areas of interest are software archilopment manager and software architect tecture, reactive systems and functional programming. His in Yardi Romania, is a computer passiopresentation, What is Reactive Programming and why you nate, who finds time, in spite of his busy should care?, will bring up reactive programming, a fashionable schedule, to express himself through concept in the last years.
6
nr. 40/october, 2015 | www.todaysoftmag.com
programare
TODAY SOFTWARE MAGAZINE
Florin Cardasim comes from Iasi and he leads the development team of Endava. Besides his technical knowledge, he is also an active trainer within the local communities. Moreover, he is co-founder of CodeCamp Iasi, one of the largest IT communities in Romania. He will present to us Decisions in Architecture, which will also include study cases that analyze the positive or negative impact of some decisions taken too late or too early.
.NET
Radu Vunvulea is an old collaborator of TSM magazine, asserting himself as the writer of the most numerous articles published. Keen on Microsoft technologies, he has received for the fourth consecutive year the Microsoft MVP distinction. This year’s presentation, How to manage one million messages per second using Azure, will show us how easy it is to build a solution that can process one million messages per second. The session will begin with a real time demo and will continue with the concepts of building such a system in less than 8 hours, using the Azure services. Andrei Larionescu, software architect in Yonder, having over 8 years of experience with Microsoft technologies, is fond of technology and always in search of some technical challenges in the current projects. His presentation, Implementing PortsAnd-Adapters [in the .NET ecosystem], will show us how we can develop software products without depending on a certain service vendor or on the interruption of an open-source project. Catalin Pop has more than 12 years of experience in Microsoft technologies. He is very keen on technologies and in time he has introduced new technologies in his projects or on the company level, such as: Entity Framework, WCF, Silverlight, ASP. Net MVC, WF, Rx-Framework and MEF. Furthermore, Catalin is a trainer of SQL Server, Entity Framework, ASP.Net, WPF, WCF, Workflow Foundation and other technologies. His presentation, ASP.Net 5 (vNext) Performance Characteristics, will cover the main features that are going to appear in the next .NET platform.
Research
Dr. Razvan Florian, manager of the Romanian Institute of Science and Technology, is the author of several
papers on the third generation of neural networks. Florian has founded two companies, Arxia and Epistemio. His presentation is called Using artificial intelligence for automatizing software development and will show one of the pursuits of his research: the creation of smart systems capable of writing software autonomously. Dr. Sorin Cotofana comes from Netherlands, from Delft University, where he is an associated professor of the Faculty of Electronics, Mathematics and Computers. He is author and co-author of over 300 works in his field of study. He has received 12 awards for the best piece of writing in international conferences such as: 2012 IEEE Conference on Nanotechnology, 2012 ACM/IEEE International Symposium on Nanoscale Architectures, 2005 IEEE Conference on Nanotechnology, 2001 International Conference on Computer Design. He served as Associate editor for IEEE Transactions on CAS I (2009-2011), IEEE Transactions on Nanotechnology (2008-2014), Chair of the Giga-Nano IEEE CASS Technical Committee (2013-2015), and IEEE Nano Council CASS representative (2013-2014). To these, we may add the quality of HiPEAC member and senior member of IEEE (Circuits and System Society (CASS) and Computer Society). His presentation, entitled Reliable Chip Designs from Low-Powered Unreliable Components, will present his research regarding the building of some processing and storage units starting from unreliable components from the domain of nanotechnology. Catalin Golban graduated from his Master degree studies in 2008 from the Technical University in Cluj-Napoca, in the Image Processing and Recognition department. Since 2013, he has been leading a research and development group within Bosch, developing assistance systems for drivers, through algorithms of video processing and the development of a software platform. All these are a step forward in regard to autonomous cars. This is actually the subject of his presentation, too: Driver assistance systems and outlook into automated driving, in which he will present the solution for safety and comfort in this domain. We hope that the topics approached and the professional quality of the speakers have convinced you to participate in Cluj IT Days!
www.todaysoftmag.com | nr. 40/october, 2015
7
event
The CEE Innovators Community Meets this November at How to Web Conference 2015
1
000+ tech professionals will get together on November 26 & 27 for the 6th edition of How to Web Conference, the most important event on tech innovation & entrepreneurship in South-Eastern Europe. They will meet some of the best
Irina Scarlat
irina.scarlat@howtoweb.co PR Manager @How to Web & TechHub Bucharest
& brightest minds in the region, listen to hands-on talks and practical case studies, and get to feel the vibe of the CEE startup ecosystem. The 4th edition of the Startup Spotlight competition and mentoring program will be organized in parallel, bringing together 32 promising startups that will compete for the USD 20.000 cash prizes offered by IXIA Romania. Organized in collaboration with Telekom Romania, IXIA, and Bitdefender, with the support of Microsoft, Avangate, hub:raum, the Canadian Embassy in Romania, Mozilla, and Okapi Studio, How to Web Conference 2015 brings together 1000+ startup founders, product managers, developers, online marketers & community leaders from all around the CEE. Beyond high-quality content, including case studies and hands-on talks on different topics, the attendees have great networking opportunities by connecting with the who’s who in the regional tech industry.
Best practices shared by reputed entrepreneurs & professionals Successful entrepreneurs and experienced professionals from all around the world will take the main stage of How to
8
nr. 40/2015, www.todaysoftmag.com
Web Conference to share best practices & practical case studies, and deliver insightful talks on product launches, product metrics, product marketing, content marketing, conversion rate optimization through growth hacking, or team building and management. Among the speakers that confirmed their attendance to How to Web Conference 2015, there are: • Jan Reichelt, Co-Founder and President, Mendeley, a company that disrupted information sharing in scientific research, grew to 50 employees and a few million users, and was acquired by Reed Elsevier in April 2013; • Larry Gadea, Founder & CEO, Envoy, startup that allows businesses to check-in people and keep track of their visitors and that recently raised a USD 15 million series A round led by Andreessen Horowitz; • Martin Eriksson, Co-Founder, Mind the Product and Product Tank, entrepreneurial, driven and innovative product management professional with 18+ years experience in building leading online products; • Kalman Kemenczy, Director of Product, Prezi.com, a cloud-based
TODAY SOFTWARE MAGAZINE (SaaS) presentation software and storytelling tool for presenting and sharing ideas on a virtual canvas; • Edial Dekker, Co-Founder, Gidsy & Hack de Overheid and ex-Senior Product Manager, Eventbrite; • Bram Kanstein, Founder, Startup Stash, a curated directory of 400 resources and tools for startups, that went viral and got 230.000 page views in 48 hours, and ex-European Community Manager, Product Hunt; • Sujan Patel, Renowned growth hacker, marketer, and serial entrepreneur, Co-Founder of ContentMarketer. io and author of ”100 Days of Growth”, ebook sold in over 10,000 copies. The complete list of speakers is available online on the conference website. The secondary stage of the conference will approach topics of interest for the startup community and will bring into discussion themes such as best practices in raising money from angels / VCs, startup valuation, managing the relationship with investors or the accelerator experience. These add up to a series of community panels with regional experts moderated by the leaders of the local communities.
Networking opportunities with relevant players on the global tech scene The value of How to Web Conference 2015 stands in the excellent networking opportunities it provides, the participants having the chance to meet and connect with the speakers, as well as with remarkable professionals, entrepreneurs and
community leaders from CEE and beyond. The attendees will get in touch with others, set meetings and receive interestsbased recommendations using How to Web Meet, the mobile app developed by mReady for the conference. Besides, they will be able to join roundtables, “Ask the Expert” sessions or open discussions that will be organized in the two networking lounges throughout the event. The networking opportunities will extend way beyond the official program of the conference, with the exclusive cocktails, special events and dedicated parties organized for the innovators community.
Discover the latest trends & how tech is reshaping the world Last but not least, the How to Web Conference attendees will discover what’s new in the IoT world and get to test some innovative devices and machines by visiting the gadget expo area. Product demos will also take place on stage in the gadget showcase section. “How to Web grew organically from one year to another with the support of the tech professionals community, whose endorsement we’re grateful to have. Our main objective is to bring more value added to these amazing people and this is why we’ve added a range of dedicated networking activities and the gadget showcase part, to the practical content that our audience is already familiar with. All these and more to make sure that the How to Web Conference
attendees have a rich experience at the event!”, said Daniel Dragomir, CEO, How to Web.
Opportunities for startups in the Startup Spotlight program 32 promising tech startups that work on tech products with disruptive potential will get to attend mentoring sessions customized to fit their needs and will compete for the 20.000 USD cash prizes offered by IXIA, main partner of the program. All these & more by attending Startup Spotlight, competition and mentoring program that connects the finalists with potential distribution partners, investors and accelerators, facilitates dealmaking and helps them gain visibility and relevant media exposure. Attendance to Startup Spotlight is free of charge, and the finalists are selected by an experienced jury. The applications are open until Friday, October 30, on the program website. „At Startup Spotlight we presented our product for the very first time, we pitched on the main stage of the conference, and we received valuable feedback from experienced mentors. It was the starting point in our journey and an experience we recommend to any early stage startup looking for connections, mentorship, and relevant exposure”, said Cristiana Bogățeanu, Co-Fondator & CMO, Devicehub.net. How to Web Conference is the most important event on tech innovation and entrepreneurship in South Eastern Europe.
www.todaysoftmag.com | nr. 40/october, 2015
9
event
The biggest Southeast Europe hackathon is back at Timișoara
T
imisoara Startup Hub,Banat IT Association and ARIESTM are bringing back HackTM the biggest software & hardware hackathon in the South Eastern Europe.The second edition of the hackathon will take place on 6 - 8 November and the hacks will be held at Heaven Event Venue.
HackTM is a supersized software & hardware development hackathon which aims to mobilize and bring together as many as possible of the techp assionate people and organizations active in IT & tech industries. And a defocused hackathon, which also intends to create opportunities for creative thinking and action and for all those interested in the following tracks.
City projects The smart city projects are in fact very creative software solutions created with one purpose inmind: the quality of life for citizens. So, together with Smart City Timisoarawe are developing severals ideas, to be developed at the hacathon.
eHealth People tend to be more and more concerned by healthcare and wellness, trying to combine a healthy lifestyle with a busy daily routine but hardly do they manage to do so. Doctors try to reach their patients easier, patients need gadgets to evaluate their health problems and everybody seems to find help in advanced technology. This track is a special one, because on 27 28 june we organized a mediumsized HackTM dedicated only to health and medical problems and it’s succes made us think that the projects developed can be really useful.
Automotive The goal of this track is to provide participating teams opportunities to design and rapidly engineer various projects like digital automotive user interfaces and HMIs (Human Machine Interfaces) with reallife tools. Hackers will have the opportunity to work withstate of the art equipment provided by our sponsors and
10
partners, and design novel and innovative Our team will support the lonely gadgets and/or apps interconnecting in participants to form teams prior to or a clever way with current and stilltob e during initial phase of the event. The most invented automotive systems. promising projects will be also awarded with gadgets, tickets for international Game development conferences, hardware and many other As we all know, games have a special surprises. place of their own when it comes to AriesTM,the coorganizer of the event Software development. There are many and our special partners, Audials by Rapid reasons for this track to have its place Solution Software will offer the big prize to on HackTM 2015, firstly because games the winners. This will be a ticket to Mobile are the most complex of software and World Congress from Barcelona, which especially because the group of game normally would cost 800 EUR. Here is also developers from Timisoara is growing and important to mention that the ticket to the offering great support to us. conference will include the participation to the biggest hackathons organized Open (IoT, hardware, mobile development during the event. and web development, etc.) The registration for tickets is available Open section is specially created on the hackathon’s website, www.hacktm. for those who want to expand their ro and Eventbrite. experience and knowledge in existing  projects or ideas. If there are people focused on IOT, hardware or interested in web, mobile, graphic design, gaming, game development etc., our mentors are willing to help them to develop their Patricia Borlovan patricia@hacktm.ro ideas and make sure the code is ready for production. Coordonator @ HackTM
Junior league coding. We’ll have a special track dedicated to our ninjas who are still enrolled in secondar y school or highs chool or CoderDojo activities, but if they want and can contribute, they can also join teams and grownups groups registered in any of the other tracks. Regarding the participants, organizers are welcoming up to 500 participants from secondary school, high school and university students to freelancers, employees, hackers and geeks with interest in coding are also more than welcome, within a readytostart team or individually, with or without their own hacking idea!
nr. 40/october, 2015 | www.todaysoftmag.com
event
TODAY SOFTWARE MAGAZINE
Mobile Operating Systems (MobOS) Community
T
he Mobile Operating Systems Community Romania is intended to build a community around the field of mobile software development. The community will be mainly build through virtual communications, but also with key points of interaction in form of dedicated events. On 6th of October MobOS organized the second main practical event with lots of demos on IoT and Robots because we identified a clear interest on the market regarding this concept. There were three technical topics on the table presented by Laszlo Tofalvi who introduced the audience in the Robot Operating System with the presentation „ROS based robots in Industry 4.0”, • Ioan-Paul Pirau and Roman Reaboi that presented a solution implemented by Accenture and Intel in order to solve the issues on a „Connected Kitchen in Food & Beverage Industry” and in the end • Liviu Stirb shared his experience in building drones during a very entertaining presentation called „Quadrocopters: from parts to losing it - the hard way”.
2015 and this will be a place for professional capability development inside AISS, hobby groups in AISS like G.R.E.E.N, university collaboration and diploma projects, and this will also be open for enthusiasts in Cluj. Actually GREEN has already members outside of AISS, who regularly join their gatherings. The IoT/IIoT Lab currently has a number of robots like Baxter, TurtleBot, Double, Lego Mindstorms, Parot quad-copter drones, IoT gateways from Intel, Dell, sensors, electrical equipment to build electronic circuits and to measure them, smart devices from glasses like Google Glass, Vuzix, Oculus Rift, watches Moto360, Apple Watch and variety of mobile devices and indoor navigation beaThe event was hosted by Accenture, cons and many other equipment including because they are encouraging the deve- a Railway Automation kit as well. lopment of an IoT Lab. IoT/IIoT Lab is yet another concept in Accenture besides “I am pleased to have the opportunity Tech Labs and Innovation Labs where new to attend such a successful event and to see technology is tried out and competences passion floating in the air. I could see it on are built around them by creating proof of people’s faces, involvement during presentaconcepts, then knowledge is used in real tions, in the late-night discussions after the projects. Accenture Industrial Software agenda finished, in the thousands of EUR Solution (AISS) has its focus on the personal investments without intention to Industrial Internet of Things. This is a bit recover the money, in the fine details peodifferent from IoT; however, for skill buil- ple described their “toys” that were actually ding and community involvement, this is state-of-the-art technologies and last but the most appropriate form. AISS launched not least from the very fast reaction in the IoT/IIoT Lab during mid September, assembling systems to show the participants demos on how IoT and Robotics work. Thanks to Accenture for investing in IoT Lab and for facilitating access to different communities to meet and share knowledge and experience. Thanks to our friends from MobOS for choosing us to host the event and hope we will meet each other at the next sessions that will be
organized before the MobOS Conference in February 2016.” (Kovacs Zsolt, Mobile Applications Capability Group Lead, Accenture) “A very good introductory session into IoT and industrial robotics. And let’s not forget quadcopters, quadcopters are always fun! I wanted to start tinkering with Intel Edison or Raspberry Pi for a while now and I can say the after sessions were very helpful! Thank you guys for this opportunity to learn about the wonderful world behind IoT!” (Valentin Radu, Mobile Consultant, Participant, Endava )
About MobOS – 2016 3rd Edition of MobOS conference MobOS hosts every year a conference dedicated to all IT professionals that are passionate and have an interest in the mobile software applications. The purpose of the conference is (1) to facilitate knowledge sharing by bringing international speakers that are subject matter experts in their field and (2) to share give case practices and present devices that are on the edge of technology. MobOS 2016 will host the 3rd edition and will bring a new concept. Until now we had 2 days, one with various presentations during the conference day and one day dedicated to workshops. This year we plan to have also an expositional stand with some of the newest devices in the domain. The event will take place on 18-19th of February 2016. You are invited to participate. Andreea Pârvu
Andreea.Parvu@endava.com Organizator @ MOBOS
www.todaysoftmag.com | nr. 40/october, 2015
11
communities
IT Communities
T
he calendar of the community page has become scanty for all the events of November. We recommend that you attend them all, if you have the time. If you are in Cluj for the end of the month, we recommend, of course, Cluj IT Days. Another project we are launching is the involvement of the technical communities, as we wish to promote the active ones more, we invite you to write to us in order to start collaboration in article publishing.
Transylvania Java User Group Community dedicated to Java technology Website: www.transylvania-jug.org Since: 15.05.2008 / Members: 598 / Events: 47 TSM Community Community built around Today Software Magazine Websites: www.facebook.com/todaysoftmag www.meetup.com/todaysoftmag www.youtube.com/todaysoftmag Since: 06.02.2012 /Members: 2700/ Events: 33 Cluj Business Analysts Comunity dedicated to business analysts Website: www.meetup.com/Business-Analysts-Cluj Since: 10.07.2013 / Members: 91 / Events: 8 Cluj Mobile Developers Community dedicated to mobile developers Website: www.meetup.com/Cluj-Mobile-Developers Since: 05.08.2011 / Members: 264 / Events: 17 The Cluj Napoca Agile Software Meetup Group Community dedicated to Agile methodology Website: www.agileworks.ro Since: 04.10.2010 / Members: 437 / Events: 93
Calendar October 28 (Cluj) Launch of issue 40 of Today Software Magazine www.todaysoftmag.ro November 3 (Cluj) SAP Business Intelligence eventbrite.com/e/conferinta-sap-business-intelligenceregistration-18669807898 November 6-8 (Timișoara) HackTM hacktm.ro/2015/ November11 (Cluj) Startup Grind Cluj-Napoca Hosts Bogdan Herea meetup.com/StartupGrindClujNapoca/events/225737432/ November11 (Cluj) Emerson IT Conference eventbrite.com/e/emerson-it-conference-registration18954055089 November 13-14 (Cluj) Typo3 conference t3ee.org
Cluj Semantic WEB Meetup Community dedicated to semantic technology. Website: www.meetup.com/Cluj-Semantic-WEB Since: 08.05.2010 / Members: 192/ Events: 29
November 14 (Cluj) Global Day of Coderetreat 2015 - Cluj-Napoca coderetreat.org/events/global-day-of-coderetreat-2015 -cluj-napoca-romania
Romanian Association for Better Software Community dedicated to experienced developers Website: www.rabs.ro Since: 10.02.2011 / Members: 251/ Events: 14
November 14 (Cluj) Hello Reactive World! eventbrite.com/e/hello-reactive-world -cluj-napoca-tickets-19252484700
Tabăra de testare Testers community from IT industry with monthly meetings Website: www.tabaradetestare.ro Since: 15.01.2012/Members: 1243/ Events: 107
November 24-25 (Cluj) Cluj IT Days 2015 - recomandarea TSM itdays.ro
12
nr. 40/october 2015 | www.todaysoftmag.com
November 26-27 (București) How To Web 2015 2015.howtoweb.co
programming
Taming Hadoop
B
ig Data has become one of today’s most frequent buzzwords and the web is full of articles describing it and defining it. But behind all that hype, the paradigms imposed by this buzzword and the technology stacks that enable it, continue both to grow as exponents and as companies who adopt it. Speaking about Big Data and it’s technologies, we unequivocally have to speak about Hadoop, since it’s the cornerstone for all emerging Big Data technologies. Alexandru Păcurar alexandru.pacurar@propertyshark.com System Administrator @ Yardi România
Hadoop is a top project of the Apache Software Foundation, and has been around for about 10 years now. It started actually as a means to support distribution of another Apache incubator project, a web-crawler named Nutch, and it was inspired by the work done at Google, which was made public in the 2004 article MapReduce: Simplified Data Processing on Large Clusters. Ten years later, this page stands as testimony for the adoption of Hadoop in today’s technology market. The scope of this article, seeing that it is written by a sysadmin, is to shed some light on the installation, configuration and management of a Hadoop cluster and to maybe show the amazing progress that was made in this area, which makes the adoption of such a technology much simpler.
How it works - a brief introduction
community, and it is here where the Big Data ecosystem truly took off. Hadoop consists of two main components: HDFS and YARN, which are acronyms for Hadoop Distributed File System, respectively Yet Another Resource Negotiator, and, as inferred before, it uses the MapReduce computation paradigm. The use of the said paradigm is the basis of Hadoop, because the system was designed around the concept of data locality in the sense that it is faster to send computation (think jars or even bash scripts) where the data resides, than to bring data (think on the order of terabytes) over the network where said scripts reside. So, from the aforementioned principle, the design decision to have two main subsystems becomes more clear because you need a system to handle the date and one to handle the computation and, as you will see, also the resource management.
First things first - How it works. This article will focus on the 2.x branch of Hadoop Without further ado, let’s talk about because these days it has the most active the HDFS component. HDFS, as the name www.todaysoftmag.com | nr. 40/october, 2015
13
programming Taming Hadoop implies, is a distributed file system which implements a “relaxed� POSIX standard and is designed to be run on commodity hardware. The simplest version of an HDFS cluster consists of two types of daemons: the Namenode and the Datanode in a master/slave architecture. HDFS exposes files which are kept as 128MB blocks on the Datanodes. There is usually only one Namenode in the cluster and its role is to keep the file system metadata. It regulates the user access on the files and it issues operations such as opening, closing and renaming files. It also keeps the mappings of blocks on the Datanodes. Datanodes keep all the blocks of which the file system consists and are responsible for servicing read and write requests.
HDFS was designed with fault tolerance, and it is implemented, as you can see in the image, by replicating blocks between Datanodes, a design choice which also helps in distributing the computation, but more on that later. There are a lot more features which are worth discussing, but this is supposed to be a brief introduction, so I’ll mention just one more, which came with the 2.x branch. HDFS can be set up with high availability, which brings the possibility of rolling restarts and also prevents downtime in case of Namenode failure. The second component of Hadoop, in charge of computation is YARN (sometimes referred to as MapReduce 2.0) and this one is available only in the 2.x branch. YARN splits its functionality between three types of daemons: the ResourceManager, the NodeManager and the ApplicationMaster. The architecture of YARN is also master/slave oriented, because the cluster has only one ResourceManager who services the request for resources (memory, and from 2.6 CPUs) for all the cluster, and the NodeManagers are spread over all the hosts in the cluster. In broader terms, you can think of the ResourceManager as the CPU scheduler of an operating system and the NodeManagers as processes on a system which ask for time on the processor, a view also known as Datacenter of a Computer. To see all the parts in motion, we can analyze the life cycle of a job submitted to YARN. The computational unit in Yarn is the container, which is a JVM virtual machine. This container can take two functions: it can be a mapper or it can be a reducer. Once submitted, the ResourceManager allocates an ApplicationMaster on one of the nodes in the cluster, which is further responsible for the job execution. The ApplicationMaster negotiates with the ResourceManager for further resources and also with the NodeManagers, which launch the necessary containers for accomplishing the job. Because of the data locality principle, the ApplicationMaster can request that different NodeManagers do the same job (if the NodeManagers reside on nodes which have replicated data). This is useful in large clusters
14
nr. 40/october 2015 | www.todaysoftmag.com
which have a high rate node failure, because it makes the failures transparent to the submitted jobs. NodeManagers also interact with the ResourceManager, but only to report their available resources.
Some features worth mentioning for YARN are the possibility of configuring the cluster with high availability, a possibility which, as of the release of 2.6, also transfers job states for the active ResourceManager to the passive one in case of failover; this means the cluster can operate normally during a rolling restart or an unpredicted downtime, and the presence of queues which enable the cluster to be used by different teams at once with some guarantees.
Tools from the ecosystem After a not so brief introduction, we get to the crux of the matter: bringing up a Hadoop cluster and keeping it that way or, if you will, the infrastructure challenge. The infrastructure challenge can be split into three smaller challenges: the install of the cluster, the configuration of the cluster and, last but not least, the maintenance of the cluster. On this front, there are a few competitors whose solutions are aimed at solving this challenge, such as Hortonworks, Cloudera and even Oracle in a manner of speaking. I have chosen the solution offered by Hortonworks, which they dubbed Ambari. First, the install of the Hadoop cluster. Ambari is designed with master/slave architecture, where the master has a web interface which enables the user to control the cluster and the slaves are located on all the nodes that make up the Hadoop cluster and execute the actions triggered on the master. Installing Ambari is pretty straight forward in the sense that you have to add the repository for your linux distribution and then install the amabri-server package via the package manager. Once installed, you have to configure ssh key authentication from the ambari host to all the nodes in the cluster, and, from here on, your interactions are done via the Ambari web interface. If you have an already configured cluster and need to add more nodes, the interaction is the same, you add the public key on the new server (or deploy via puppet) and thano from the Ambari web interface you just add the node to the cluster and Ambari takes care of the deploy. With that said, the first of the smaller challenges is resolved. For the configuration part, Ambari exposes all the configuration files present in a Hadoop cluster in its web interface so you can edit them. As of Ambari 2.1.2 it also presents some of the
TODAY SOFTWARE MAGAZINE properties in a more user friendly way, through the use of sliders. A really nice feature that alleviates the integration work needed for the cluster is the configuration versioning that Ambari has out of the box. Any modification made to the configurations generates a new version for said configuration, so you can rollback with a couple of clicks, in case the changes in the new configuration break something. That being said, we have cleared the second of the smaller challenges. Last but not least is the maintenance of the cluster, which Ambari tries to simplify. It enables a granular control of all that is running in the cluster, so you can start it or stop it, but also gives the possibility of starting and stopping larger components like the YARN subsystem or the HDFS one. Any modification to the configuration requires a restart from the corresponding daemons and Ambari marks the ones that run with stale configs and also provides the possibility of restarting only the affected components. Adding a new service (think Spark, Oozie, Scoop) is done from the web interface in a straightforward manner. Starting from 2.0 version, it has an integrated system of monitoring and alerting called ambari-metrics, which also alleviates the integration work which was needed with tools like Nagios and Graphite. The metrics can be customized and organized in dashboards in the ambari web interface. One last perk of Ambari that should be mentioned is that it has support for updating the running Hadoop stack in a rolling manner, making life easier for the cluster maintainer. With this, I consider sub challenge number three done and, with it, the infrastructure challenge is covered.
Hadoop cluster and run a batch job which implies multiple steps like getting data from an external source doing some work over it and that outputting it also in an external source. In a normal Hadoop setup, this would imply some scripts or commands run from the command line or maybe some jobs run from something like Jenkins, but with Hue you can load your scripts on HDFS and create a workflow in a drag and drop manner, which can be saved and run multiple times. It also gives the possibility of scheduling jobs through its coordinator. Some other features that come in handy are a much better file system interaction from the web interface than the one offered by default by hadoop, and also the job control offered from the web interface, which also is better that the default one offered by Hadoop, because it enables you to stop jobs from the interface. Hue can be integrated with LDAP, so each developer who interacts with the cluster through Hue sees only his context meaning his own home directory in HDFS and his own jobs on YARN.
Conclusion The scope of this article is to give a broad view over the architecture requirements of a Hadoop cluster and to propose a solution in solving them in order to encourage and ease the adoption of these new technologies. It was a personal conviction that maybe people are interested in the hype of Hadoop and MapReduce but are intimidated by the infrastructure requirements for running a cluster; but with the help of the ecosystem that has formed around Hadoop, those requirements have become easier to meet.
Hue As a little bonus, I want to mention another great tool existing in the Hadoop ecosystem and that is Hue. Hue is an open source project which aims to simplify the interactions with the cluster from a developer or data scientist point of view. It integrates many of the projects developed over Hadoop into a single interface and enables the developer to work faster and in a more visual manner. The feature that seems the most useful from a developer standpoint is its integration with oozie. Say you want to use a
www.todaysoftmag.com | nr. 40/october, 2015
15
programming
Connected Home Challenges In The Field And What’s Next
S
mart Home is one of the most popular Internet of Things (IoT) use-cases in the consumer space and with a lot of exposure to the software engineers due to the increasing number of product manufacturers that are forced to offer value-added services to keep up with competition. Smart Home is more than Home Automation: it adds Broadband, Entertainment Energy optimization, Health and Security on top of Automation. Kovacs Zsolt kovacs.zsolt@accenture.com Mobile Applications Capability Group Lead @ Accenture
As an important player in the field of IoT and Industrial IoT (IIoT), Accenture has already a major contribution in Smart Home domain offering end-to-end solutions and platforms to its customers, under the name of Connected Home. In this article we will look into the challenges faced by consumers, product manufacturers, developers and other stakeholders. The challenges range from hardware and software interconnectivity to usability issues all the way. In-between security and monetization issues play a major role. Ultimately we will try to guess, based on current trends, what is to be expected next in this domain. Let’s start with a sample use-case to understand the context better.
Sample Use-Case Michael lives in the rural Germany. He has a house equipped with Miele washing machine, Nest thermostat, Bosh Buderus boiler, automatic roller-shutters and connected electrical switches to control appliances. For security, he has motion sensors installed in various rooms, combined with Samsung SmartCam(era). He needs to have an outdoor weather station, so he buys one from Netatmo. In order to be self-sufficient energetically and to lower his bills, Michael purchases solar panels and batteries to store redundant energy.
16
nr. 40/2015, www.todaysoftmag.com
With all this technology around, Michael has trouble to remember where he left his remote for the roller-shutters and he is constantly faced with cabling challenges for wired equipment. He needs to open up different apps to control his Philips Hue lights and SmartCam, even Nest and Buderus fail to work with each other seamlessly. Michael learns there are platform providers that solve some of his issues, so he phones up a well know integrate, Louis to offer him the best alternative for his situation. Louis proposes to install Revolv to integrate all his hardware under one hood. He also fixes Michael’s connectivity issue between Buderus and Nest, by installing a relay panel on his boiler. Now Michael is good to go. After a few months, Michael realizes his energy bills significantly drop, after he implemented the suggestions of his Smart Grid energy provider. He is not concerned anymore about the security of his house while being away and he actually receives a bonus from his insurance company. He has added comfort by being able to connect all the devices in a way that add value to him like: his alarm is adjusted based on weather and traffic conditions and, amongst others, the roller-shutters lower during a sunny
TODAY SOFTWARE MAGAZINE day, so that the sun doesn’t heat up his house unnecessarily. To be continued…
Can I Do The Same? Some of the use cases are context dependent, some can be reconstructed everywhere. Smart Grid is not yet present everywhere and not all insurance companies offer this service either. Traffic info is not measured on all roads yet. However, all these services are gaining ground and it will be possible to integrate some in the near future, while others only in the longer term.
Challenges From Different Points Of View:
Consumers: As we could see, Michael prefers “fire & forget” solutions (60% of consumers). Devices should be energetically autonomous and people should not care about keeping them up to date with security patches. Michael needs a simple and easy control mechanism that allows for most of his ever-changing usecases and he wants to keep his options open when it comes to HW. He would like to avoid headaches whether one of his existing devices is compatible with the one he wants to buy or not. Developers and service integrators: Louis, on the other hand, faces a much larger problem. Different protocols are around, protocol implementations in the form of libraries and smart object definitions to handshake capabilities of these smart devices. For these reasons, solutions developed these days have the Smartphone or a Home Controller at the center of the ecosystem, making a star-network in both cases. On the protocol front, XMPP, MQTT, LwM2M, 6LoWPAN, CoAP, IPSO, ZDO are the biggest players, the library front ranges from big guns like Apple with his IoT implementation HomeKit, to open standards, like Open IoT stack Eclipse SmartHome that has LwM2M, MQTT and CoAP implementations. From skills perspective, Louis faces another challenge: various skillsets from embedded to wearable/ mobile/bigscreen/car, API & microservice development and analytics are needed to develop end-to-end Connected Home solutions. Louis needs to learn all his life. He needed to know 6LoWPAN and Nest cloud API to integrate Nest, XMPP and P2P technologies for SmartCam. Netatmo was integrated using a REST API just like Philips Hue, MQTT was also used. Product manufacturers: Adam, like the increasing number of his fellow competitors, keeps close to his customers. He produces Nest and offers free updates to the users and promises to keep their personal data secure. He realizes that Nest is not yet smart enough to communicate locally to all possible devices, so he offers cloud APIs to integrate the rest of the users’ appliances. Besides Smartphones, most of the devices are not yet smart and product manufacturers, to differentiate themselves, offer value-added
cloud services on top of t h e i r pro du c t s . Philips Hue, Nest are good examples of that. Most of these devices are built on the ZigBee open source stack, integrate the proprietary Z-Wave chip or expose a BLE interface. It’s easy to see how interconnectivity suffers. To make money, Adam needs to come up with clever options from freemium, in-app purchase, subscription based, pay-per-use to premium model. Service providers: Alex is a platform owner and he is faced with the challenge to glue together all the above. His platform is especially useful during the time when there are so many interoperability issues between devices. Alex strives to bring Michael on the platform, to support all Adam’s devices and use-cases, to offer him ease of integration and good monetizing options, while maintaining his differentiation. He do esn’t necessarily agree to Louis. There are other stakeholders in this ecosystem. The government provides the infrastructure via SmartGrids and regulations for energy price. There are also different industries that are interested to interconnect, like Insurance, Energy and Telecom.
The Glue. What Does A Connected Home Platform Do? Alex thinks he has a better option to what Louis proposed. Let’s see what his platform does. Discovery of devices. Home Controller implements Z-Wave, ZigBee, WiFi, BLE and is capable of identifying all the devices that are in the range of action and acts as an internet gateway or a network controller for the ones that don’t connect to a cloud service. Star networks and client-server connections are typical these days, mesh networks and peer-to-peer connection is the connectivity between the devices of tomorrow.
www.todaysoftmag.com | nr. 40/october, 2015
17
programming Connected Home - Challenges In The Field And What’s Next
Securing logically and physically for anti-theft. TLS is mainly used as a secure communication channel for securing sensors and actuators, MD5 hashing can also be used. However, a semi-decentralized signing/verifying is desired, like Blockchain Certification Protocol that will aid secure communication between devices even without a platform and a management authority at hand. Configuring the devices. Each device has various capabilities (think about solar panel & washing machine), different ways to configure. Some configurations are common like frequency of data polling, other are very much device dependent and described in the Smart Objects like IPSO, ZDO. One particular aspect in a battery-powered device is knowing and improving battery lifetime; how to operate in critical operation mode in low battery conditions. Security systems are a good example. Monitoring the devices. Viewing current data (eg. Netatmo weather station, SmartCam) or viewing historical data. Integrate devices in use-cases; create scenarios or scenes (Z-Wave term) that are personal and relevant. As an example,
18
nr. 40/october 2015 | www.todaysoftmag.com
Michael’s alarm clock adjustment; HVAC changes operation mode triggered by door locking, lighting and blinds adjusted, TV watching scene with some lights off, some partly on, blinds down and volume levels up to a limit etc. Firmware update of the field devices. This typically happens without user intervention when subscribed to a service. Some manufacturers offer free updates and stay closer to consumers; others, not so close and may even charge for updates. In-app purchase of actual physical devices, software packages or items (eg. 100 SMS package for notification), extended warranty/maintenance, integrated services (eg. Apigee, Critercism) for further added value.
What’s Next? It is a disrupted market. New startups are introducing groundbreaking new products, intensifying the competition. There are 120 major Home Energy players only in North American market, source: GTM Research, 2015 Security is the top reason people buy smart home technology
TODAY SOFTWARE MAGAZINE according to 90% of current deployments. Energy optimization is a distant follower and other use-cases started to appear as well. Entertainment is a top trending use-case and this is where large companies are currently focusing their efforts as well. Adoption is expected to increase as consumers see the considerable reductions in their energy consumption and improved comfort Connected Home can deliver. 50% of USA/CAN consumers say they plan to buy at least one smart home device in the next year (iControl report). Those who know someone with a smart home have almost double likelihood to buy than the rest. Gartner predicts a typical family home can contain more than 500 smart devices by 2022 but right now most consumers see Connected Home as a nebulous term without a clear value proposition. On the protocol front, it is desirable that one protocol implementation will emerge. Will it be Thread? Will open source be the future? On the energy front, Smart Grid implementations move much slower. Public investments are needed and this is just not there yet in most countries. So I’d not plan for the next decade to have it in Romania, while building highways represents a challenge to us… On the entertainment front, Apple is pushing hard on its Apple TV. They say “Apps are the future of television”. Is it possible this is their quest to take over not only our living room but our whole house as well?
www.todaysoftmag.com | nr. 40/october, 2015
19
programming
Taking responsive website to the next level
R
esponsive web design started three years ago when media queries made it to W3C’s recommended standard in June 2012. It was the most anticipated CSS feature at that time (the one that put responsive before web design) and it became a game changer that would open a door of endless possibilities for designers and developers alike. The most important trend that followed shortly after its introduction was mobile first. Paul Axente paul.axente@3pillarglobal.com Senior UX Engineer @3Pillar Global
After three years of making responsive websites, I think we need to take a moment and see where we are heading and if the path we started on is the right one. So far, the only thing responsive about our website is the way it looks and feels on a mobile device and occasionally print. If, in fact, a device-first approach is the way to go, then we should keep in mind that we can do much more to help our users. We could take advantage of all the good stuff HTML5 APIs offer (battery status, network information, etc.) in order to respond and adapt to certain events such as: the network going down, the battery getting low while browsing a website, etc. But why stop here? A responsive website should respond, in real time, with a solution to a user’s problem. There are many ways to support this type of responsiveness, and even more benefits that come from this heightened response, but, in order to achieve this, you’ll need to think about what you’re
20
nr. 40/2015, www.todaysoftmag.com
trying to do. Making websites look good on mobile devices is easy, but, making it react to the way a user interacts with it, is a whole new story which requires knowing certain information about the user. Usually, gathering this information would be prohibited by the government, but because we are using the information to improve user experience, we are still able to make websites.
Responsive Website Example Each one of us uses the web differently, so why not make a website that responds to our behavior and adapts within certain bounds to our unique way of using the web? For too long, users have had to adapt to the way a website works; it’s time for websites to adapt to user behavior. We should not block certain types of users from using our sites simply because they are not in the targeted group; they may still end up using the site, but becoming frustrated when they can’t navigate it as easily. Instead of potentially alienating
programare
TODAY SOFTWARE MAGAZINE
Young spirit Mature organization A shared vision Join our journey! www.fortech.ro
users who are not a part of the group that the website is catered toward, we should focus on creating a website that will respond to everyone. Let’s use Angry Joe, a hyperactive person and a passionate gamer, as an example. Angry Joe loves blowing off some steam while playing games, but usually ends his gaming with a rage quit if things don’t go as planned. Joe has started shopping online recently, but he is having a hard time using a well-known gaming shop because he has a very high DPI mouse that causes him to navigate around the screen too fast and click on things that he is not interested in. Additionally, being an avid PS4 fan, Joe does not want to see the always-visible sidebar advertising old games that he knows he will not want to buy. At this point, though Joe really likes this company, the website is deterring him from shopping there anymore. Now let’s see how a responsive website would respond to Joe and convince him to stay. His first problem is site navigation, which might not be an issue for a regular user; however, Joe, with his highly responsive mouse, usually browses in a chaotic and fast-paced way and loses patience each time he makes a wrong click. To solve this problem, the website would respond by increasing the button size and the margins throughout the page to minimize the chance for him making a wrong click.
Joe’s second problem is his annoyance that the website does not recognize his love of PS4 games. To fix this, the website will respond by having the PS4 category as the first menu item that appears, and will list PS4 games before any other kind of product. Additionally, Joe has never clicked on the sidebar, so it does not need to be kept active. The removal of the sidebar not only reduces Joe’s chance of a mis-click, but also allows for the website to list five products per row instead of only four. At this point, we managed to improve Joe’s experience and focused everything around the things he likes just by watching his interaction patterns and responding to the pain points. Now Joe is a happy client and continues giving his business to this website. He even refers new customers because he likes the overall user experience and client service so much. Even though Joe is only one example, there are many other online users out there that have similar problems with website navigation. There is much more that we can do for our users if we are willing to pay more attention to the small details. Making a website that looks good across different devices is just the tip of the iceberg. Instead, let’s start making smart websites that respond with a solution to a user’s problem, not just adapt the content to fit on different devices.
Our core competencies include:
Product Strategy
Product Development
Product Support
3Pillar Global, a product development partner creating software that accelerates speed to market in a content rich world, increasingly connected world. Our offerings are business focused, they drive real, tangible value.
www.3pillarglobal.com
www.todaysoftmag.com | nr. 40/october, 2015
21
programming
PHP 7 – A look at the future
T
he PHP language started as a simple collection of C binaries used for maintaining a simple web page. Today, PHP runs on millions of webservers and is ranked very high on the list of the most popular programming languages in the world. Its most intense growth of popularity happened in the first half of the 2000s,
Radu Murzea rmurzea@pentalog.fr PHP Developer @Pentalog
22
nr. 40/2015, www.todaysoftmag.com
followed by an accelerated development and maturing process of tools and frameworks of this ecosystem. Now, in 2015, with the release of the language’s next generation (PHP 7), it’s a good time to try and predict what the future holds, with a particular focus on PHP 7’s new features. I). Bad Reputation. PHP’s high popularity, combined with an easy learning curve, attracted many beginner programmers who popularized many sub-optimal and unsafe programming practices. Given the multitude of defects and shortcomings of PHP implementation, led to multiple criticisms from the programming community and PHP ended up with a label of “second-hand language” which was “not used by real programmers”. II). Current Status. The current situation of PHP’s ecosystem is very different from the one described above. As I mentioned in the article’s introduction: in the last few years, many frameworks and tools have evolved a lot and started a migration to high-quality, clean and mature software tools. The best example of such a tool is the appearance of the Composer project
in 2011, a tool inspired by “npm”, which provides dependency management functionality for a project. Composer had a great contribution to PHP’s maturation because it allowed the use of correct, modern, easy and robust software practices. Pretty much all modern PHP frameworks use Composer for dependency management (Symfony 2, Zend Framework, CakePHP, CodeIgniter etc.). Another example for the development of the language is the focus on correct implementation and usage of object-oriented concepts. Most frameworks and libraries migrated to such code; their users were encouraged to do the same. III). Major new features of PHP 7. PHP’s new major version 7 is planned to be released in November 2015 (https://wiki. php.net/todo/php70#timetable). We’ll list most main new features (https://wiki.php. net/rfc#php_70) and, based on them, we’ll try to predict how the PHP language and its ecosystem will evolve in the following years. a). AST-based Compilation. Given how interpreted languages (like PHP) are implemented, it’s expected that low performance would be common among its
criticisms. Switching to an AST-based compilation was inspired by Facebook’s HipHop VM project. This will allow simplified maintenance of PHP’s implementation (more modular code), significantly increased performance and will allow implementing the feature mentioned at point b. b). Uniform Variable Syntax. This feature introduces consistent left-to-right variable dereferencing; this way, more complex expressions will be correctly interpreted. Some examples include property content used as object name or using the result of an anonymous function as class name. c). Type Declarations. A feature inspired by Facebook’s Hack language is declaring the data types received (parameters) and returned by functions or methods. Until now, only declaration of parameter type was supported and only class names or “array” could be used in this case. If the programmer wanted to document such information, he could only do it by using PHPDoc. But now, these declarations can be added for any data type, including primitive types; this applies to both function parameters and return type. d). Anonymous Classes. Before PHP 7, PHP supported only anonymous functions; anonymous classes did not exist in the language. This is unlike other programming languages, which supported this feature for many years. The syntax of declaring an anonymous class is very similar to other languages (like Java, C# etc.) and its use cases are similar, too. e). Exceptions instead of Errors. In many exceptional situations (parse error, incorrect arithmetic operations, wrong type used etc.) PHP throws errors or warnings, which prevents executing destructors or “finally” blocks. Because of this, many errors were replaced with languageprovided exceptions. PHP’s syntax and keywords are much better at handling exceptions than error, it’s easier and more natural to write and maintain. f). Context Sensitive Lexer. This feature allows designing APIs that are as natural as possible, it was made possible by the AST-based compilation described at point a. For example, you can now declare methods or functions that have identical names with various keywords of the PHP language e.g. “list”, “and”, “or” etc. The lexical analysis stage will detect the context where that
name is used (hence the name of the feature) and will determine if the use of that name in that particular context is valid. g). Unicode Code Point Escape Syntax. This feature adds correct and consistent syntax for using Unicode characters. The syntax is like “u\{xxxxx}” with a variable length, which means it allows more than 16 bits for the length. IV). The PHP Language Specification. We would be careless if we wouldn’t mention an important milestone of the PHP language: its formal specification (https://github.com/php/phplangspec). Even though PHP is 20 years old, until now, no one wrote such a specification for the language. Last year, though, a group of people decided it’s time for something like this and they did it. V). The future of PHP. AST-based compilation and the new type declarations suggest that the PHP community is focusing on performance and are preparing for the possibility of JIT compilation; PHP is heavily influenced in this regard by Hip-Hop VM. Replacing the errors with exceptions and adding anonymous classes assures us that object-oriented-related features will continue to be heavily developed and used in the next few years. Also, a more powerful support for Unicode characters confirms that the needs for the future are internationalized websites in multiple languages. This is especially true in the case of Asian and African languages, because the high rise of Internet connections in those regions translates to a much broader audience. VI). Conclusion. If we take a look at PHP 7, the language and its ecosystem are going in the right direction. The heavy development and maturation of its libraries and frameworks is a strong proof for this. The new PHP language generation is not a revolution, but a simple evolution, one that will make programmers’ lives easier.
www.todaysoftmag.com | nr. 40/october, 2015
23
programming
An introduction to optimising a hashing strategy
T
he strategy that’s used for hashing keys, can have a direct impact on the performance of a hashed collections such as a HashMap or HashSet. The built-in hashing functions are designed to be generic and work well in a wide range of use cases. Can we do better, especially if you have a good idea of the use case? Peter Lawrey peter.lawrey@ highfrequencytrading.com CEO @ Higher Frequency Trading Ltd
Testing a hashing strategy
I just need unique hash codes don’t I?
In a previous article I looked at a number of ways to test hashing strategies and in particular looked at a hashing strategy which had been optimised for „Orthogonal Bits” which looked at making sure each hash result was as different as possible based on just one bit changing. However, if you have a known set of elements/keys to hash you can optimise for that specific use case, rather trying to find a generic solution.
A common misconception is that to avoid collisions all you need to have unique hash code. While unique hash codes is highly desirable, it is not enough. Say you have a set of keys and all of them have unique 32-bit hash codes. If you then have an array of 4 billion buckets, each key will have its own bucket, and there is no collisions. It is generally undesirable to have such large arrays for all hash collections. In fact HashMap and HashSet are limited by the largest power of 2 size you can have for an array which is 2^30 or just over one billion. What happens when you have a more realistically sized hashed collection? The number of buckets needs to be smaller and the hash codes are modulo-ed to the number of buckets. If the number of buckets is a power of two, you can use a mask of the lowest bits.
Minimising Collisions One of the main things you want to avoid in a hashed collection is collisions. This is when two or more keys map to the same bucket. These collisions mean you have to do more work to check the key is the one you expected as there is now multiple keys in the same bucket. Ideally there is at most 1 key in each bucket.
24
nr. 40/2015, www.todaysoftmag.com
programare
TODAY SOFTWARE MAGAZINE
Lets look at an example, ftse350.csv If we take the first column Note: the implementation for String is defined in the Javadoc as a key or element, we get 352 strings. These strings have unique so there is little chance we can change it but we could define a String.hashCode()s, but say we take the lower bits of these hash new hashing strategy. code. Do we see collisions?
Components of a hashing strategy.
The size of the HashMap for a load factor of 0.7 (the default) is 512 which uses a mask of the lower 9 bits. As you can see around 30% of keys have a collision even though we started with unique hash codes.
There is two parts I look at in a hashing strategy. • The magic numbers. You can try different numbers to find the best result. • The structure of the code. You want a structure where you get a good result for any sane choice of magic number. While magic numbers matter, the reason you don’t want them to be too important is that there is always a chance that your choice of magic number wasn’t right for a given use case. This is why you also want a code structure which has a low worst case outcome even for a poorly chosen magic number. Lets try some different multiplying factors instead of 31.
The code for HashTesterMain is here. To reduce the impact of a poor hashing strategy, the HashMap uses an agitating function. In Java 8 it is fairly simple. From the source for HashMap.hash You can read the Javadoc for more details
You can see that the choice of a magic number matters, but also there is lots of numbers to try. static final int hash(Object key) { We need to write int h; return (key == null) ? 0 : (h = key.hashCode()) ^ a test to try out a (h >>> 16); good random selec} tion. The source for This mixes the high bits of the hash code with the low bits, HashSearchMain to improve the randomness of the lower bits. For the case above where there is a high collision rate, there is an improvement. See the third column.
A look at the hash function for String The code for String.hashCode() public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i++) { h = 31 * h + val[i]; } hash = h;
}
} return h;
The key code to look at is public static int hash(String s, int multiplier) { int h = 0; for (int i = 0; i < s.length(); i++) { h = multiplier * h + s.charAt(i); }
www.todaysoftmag.com | nr. 40/october, 2015
25
programming An introduction to optimising a hashing strategy return h;
} private static int xorShift16(int hash) { return hash ^ (hash >> 16); } private static int addShift16(int hash) { return hash + (hash >> 16); } private static int xorShift16n9(int hash) { hash ^= (hash >>> 16); hash ^= (hash >>> 9); return hash; }
As you can see the repeated multiplication of each hash plus the next character is reasonable if you provide a good multiplier, or a multiplier which happens to work well with your key set. If you compare 130795 as a multiplier instead of 31, you get only 81 collisions instead of 103 collisions for the key set tested. If you use the agitation function as well you can get around 68 collisions. This is getting close to the same collision rate as doubling the size of the array. i.e. an improved collision rate without using more memory. But what happens when we add new keys to the hash collection, will our magic number still be good for us? This is where I look at the worst collision rates to determine which structure is likely to produce good results for a wider range of possible inputs. The worst case for hash() is 250 collisions, That is 70% of keys colliding which is pretty bad. The agitation function improves this a little however it’s still not great. Note: if we add the shifted value instead of xor-ing it we get a worse result in this case. However if we do two shifts, to mix not just the top and bottom bits, but bits from four different portions of the hash code generated, we find that the worst case collision rate is much lower. This indicates to me that should the selection of keys change, we are less likely to get a bad result as the structure is better and the choice of magic number or choice of inputs matters less.
What if we have add instead of xor in the hash function? In the agitation function using xor was perhaps better than using add. What happens if we change this h = multiplier * h + s.charAt(i);
with h = multiplier * h ^ s.charAt(i);
The best case numbers are slightly better, however the worst case collision rate are notably higher. This indicates to me that the choice of magic number matters more, but it also means that choice of keys will matter more. This would seem a risky choice as you have to consider that the keys may change over time.
Why do we chose odd multipliers? When you multiply by an odd number the lower bit of the result has an equal chance of being 0 or 1. This is because 0 * 1 = 0 and 1 * 1 = 1. However, if you multiply by an even number
26
nr. 40/october 2015 | www.todaysoftmag.com
the lower bit is always going to 0. i.e. it is no longer random. Say we repeat the earlier test but only using even numbers, how does this look?
If you are lucky and have the right input for your magic number the results are just as good as for odd numbers, however if you are unlucky, the results can be pretty bad. 325 collisions means that only 27 out of 512 buckets are being used.
How do more advanced hashing strategies differ? For the hashing strategies we use based on City, Murmur, XXHash and Vanilla Hash (our own) • The hashing strategy reads 64-bits at a time which is faster than reading byte-by-byte. • The working value computed is two 64-bit values. • The working value is reduced to a 64-bit long. • More multiplying constants are used as a result. • The agitation function is more complex. We use long hash codes in our implementation as; • we optimise for 64-bit processors, • the longest primitive data type is 64-bit in Java, and • if you have large hash collections (i.e. millions) 32-bit hashes are unlikely to be unique.
In summary By exploring how we generate the hash code, we have found ways to reduce the number of collisions for 352 keys down from 103 collisions to 68 collisions but also have some confidence than should the key set change, we have reduced the impact this might have had. This is without using more memory, or even much more processing power. We still have the option of utilising more memory. For comparison, you can see that doubling the size of the array can improve the best case, but you still have the problem that a miss match between the key set and the magic number can still have a high collision rate.
Conclusion In situations where you have a stable key set you can get a significant improvement in the rate of collisions by tuning the hashing strategy used. You also need tests which indicate how bad things are likely to get if the key set changes without re-optimisation. Using these two in combination you can develop new hashing strategies to improve performance without having to use more memory or much more CPU.
programare
Data Security in the era of Cloud Computing
W
hen it comes to personal or corporate data security, generally we think about using an antivirus and avoiding navigation on websites which are likely to have viruses. It is not wrong to do so, but the context in which we use data and the evolution of technology have determined the emergence of new threats. If, in the past, the
Angela LepÄ&#x192;datu angela.lepatadu@cososys.com Marketing Professional and Account Manager @CoSoSys
most frequent cause for a data breach was an external attack, today, the weakest link is represented by the members of the organization and the information owners, through the accidental and rarely intentional errors. The consequences can be disastrous, from loss of customersâ&#x20AC;&#x2122; confidence, image prejudices, to data breach remediation costs and downtime, etc.
But what are the data security threats in this case? A research conducted by CoSoSys on our customers revealed that 7 in 10 employees have access to corporate confidential data and they use them in their daily tasks. A simple example is uploading customer data bases on Google Drive, an environment where the company has no control. If Google Drive suffers a data breach, like it happened to Dropbox in 2012, the stored data is exposed to the risk of being stolen or leaked. Data security experts see cloud data storage apps like public containers and they recommend individuals and companies to avoid saving or transferring through these financial data, customer data, marketing plans, and other confidential data, if they want to have control over what happens to them. They have the same recommendation for personal data. Remember the 2014 iCloud breach that exposed Hollywood stars naked pictures?
Cloud computing has had the greatest impact in data security solutions development. In the last few years, the number of cloud applications and their developers has grown substantially. According to WallStreet.ro, cloud computing services market in Romania will grow with 20% in 2015, for both personal and company use. Applications such as Google Drive, Dropbox, OneDrive, Box, etc., are the most popular, thanks to the ease of use and great storage capacity. Of course, the fact that these apps can be used on any operating system, web-browser, or As methods to prevent data loss and theft, mobile device with Internet connection, is organizations must ensure that employees also a big drive. and collaborators have the required www.todaysoftmag.com | nr. 40/october, 2015
27
security Data Security in the era of Cloud Computing
knowledge on data security best practices, like using a strong password and avoiding the use of the same password on multiple accounts. Also, the data security staff or the IT Manager should indicate clearly what data is confidential and should regulate its use. Usually, employees sign a non-disclosure agreement when they are hired, but this doesnâ&#x20AC;&#x2122;t correspond to the actual context and, more importantly, very few people read it. It is just a formality that they know they must fulfill. A solution that complements employeeâ&#x20AC;&#x2122;s education is the Data Loss Prevention (DLP) technology. This is a technology which has been developed since 2007-2008 to control and block portable storage devices, like USB sticks, to prevent transfer of confidential data. Meanwhile, it has evolved simultaneously with the emergence of cloud applications and other online applications like e-mail, instant messaging, file sharing apps, etc. We, at CoSoSys, Romanian â&#x20AC;&#x201C; German company headquartered in Cluj-Napoca, develop data security software since 2004, and entered the DLP market in 2008. Our product, called Endpoint Protector, is the only one of its kind developed in Romania. It allows IT administrators to control, through a server-client architecture, what files can be transferred through portable storage devices and through various online applications, including those previously mentioned. A clear example would be to define a policy that blocks the transfer of documents containing confidential information by unauthorized people. The filters can be defined depending on the type of confidential data, like credit card numbers, e-mail addresses, personal identification numbers, keywords, and even
28
nr. 40/october 2015 | www.todaysoftmag.com
certain file types like office, programming files and others. It is an effective way of ensuring business continuity and that company secrets are safe. Moreover, in the event of data loss or theft, the administrator can detect the responsible person in the software detailed reports. He / she can find out exactly who transferred what data and from which computers. Demand for Data Loss Prevention is constantly rising due to current threat landscape and increased number of breaches caused by insiders. In the era of cloud computing, organizations and individuals should value data security more, they should be aware of the consequences of a data breach and they should implement data security strategies. Their business success and personal safety and reputation depend now more than ever on their capacity of protecting data against loss or theft.
others
The Mindful Offices
H
Oliver Heath Founder @ Heath Design Ltd
ow can we design the mindful office? What would a mindful office look and feel like? We live and work in a world full of distracting pollution. With increased digital connectivity through access to emails, social media, and all the other distractions that are commonplace in office environments – other people’s conversations, phones ringing, and the sound of passing traffic – we are increasingly finding it impossible to focus on the task at hand. Professor Gloria Mark, from University interruptions can be beneficial and proviof California, who researches “interrup- ded they are short and fairly automatic, they tion”, conducted a study of information won’t cause too much disruption; however, workers in high-tech companies. She found if they require a switch in cognitive functithat the people they observed over 3.5 days oning, they can make it difficult to regain switched activities every three minutes focus. and five seconds on average (half of these From what she obser ved, 82% of switches were caused by self-interrupti- interrupted work was resumed on the same ons). In the study, she found that relevant day; however, it took the workers an average
www.todaysoftmag.com | nr. 40/october, 2015
29
others The Mindful Offices of 23 minutes and 15 seconds to return to what they were doing. Surprisingly, those who were interrupted worked faster, without any significant difference in the number of errors in the work. However, these interruptions have more serious implications as they increase stress levels. Excessive or prolonged stress can lead to illness, physical and emotional exhaustion and depression. It can affect the behaviors and factors that increase the risk of heart disease (high blood pressure, cholesterol levels, smoking, physical inactivity and overeating). In fact, the World Health Organization believes that the stress related illnesses of heart disease and depression are projected to become the prime causes of illness by 2020. Considering that 90% of a typical business operating costs are related to staff (salaries and benefits), as opposed to 10% spent on the physical environment, it is worth considering how the office environment can be designed to help workers focus on the task at hand and reduce the risk of increasing prolonged stress levels, which in the long term will affect both the individuals’ health, their ability to work and the costs for the company. So, how do we create working environments that encourage mindfulness and help employees stay focused on the task at hand? Biophilic Design offers opportunities to encourage sensory awareness required for mindful states by appealing to a range of senses: • Sight – through increasing the amount of natural light & creating views out to nature, it’s possible for employees to have greater awareness of the present moment, whether that is the time of day or year. Partitions can help in open plan offices, not only do they block visual distraction, but if planted or natural material partitions (ex. timber boards) are used, they can also dampen sound and have positive effects on health and wellbeing. • Smell – Introducing plants can improve air quality and increase oxygen level, but also emits a subtle scent by putting pot plants & green planted walls. Other natural aromas can be introduced to help. • Touch – Range of natural surface textures e.g. Timber furniture grain provides haptic stimulation. Interface’s Human Nature and Urban Retreat collections of flooring mimic the varying textures in natural environments and the undulating surface to walk across. • Hearing – Sound masking – can be introduced where it is impossible to block out extraneous noise, as a method of stress reduction. Recorded sounds, like water flowing, can effectively mask disruptive noises like passing traffic or others’ conversations. Sound insulation – wall panels made from natural materials like wool felt or green walls can absorb excessive sound whilst introducing natural elements and textures. • Temperature – Thus optimizing ventilation and thermal control – to ensure workers can control the temperature and air flow according to their needs (ie windows and vents that can be opened when needed and accessibly localized thermostats). With this in mind, the slick shiny surfaces used in minimalist office interiors of
30
nr. 40/october 2015 | www.todaysoftmag.com
the past, which were meant to reflect and encourage efficiency, actually prove to be less efficient. This is because a lack of sensory stimulation in the workspace can lead us to seek or be susceptible to distractions and to interrupt our work flow. Have you been distracted in the course of reading this article? Could your surroundings need to become more “mindful”?
marketing
How can we communicate effectively with our colleagues?
I
t would be simple if people, just like any gadget, would come with an instruction manual which could tell us how to approach them and how to interact with them. Sadly, or luckily, we know that this will never happen, which only adds more mystery to a person. In regards to communication though, there is a solution we can approach: behavioral styles. Each personâ&#x20AC;&#x2122;s character can be attributed to one of these styles, so it is really important for us to know what to expect and how to best communicate with that person. Ana-Maria Trifan anamaria.trifan@ happy-employees.eu PR & Custumer Care Specialist @ Azimut Happy Employees
1. The Partner:
2. The Encourager:
How can we recognize this person? The partner is balanced, stable, loves peacemaking, is loved by all, and is trustworthy and dependable. This person is preoccupied with the wellbeing of others around him, and that is why often he or she will complete tasks picked up and abandoned by others. On the other hand though, he doesnâ&#x20AC;&#x2122;t like change. How can we communicate with this person? We need to clearly define our expectations and motivate our actions â&#x20AC;&#x201C; why we need to do something, why we need something accomplished. Furthermore, an empathic attitude, which shows our interest towards what that person says and does, coupled with active listening, can really be of great help. It is also important to ask relevant questions and present every situation logically, with clear steps.
How can we recognize this person? The encourager is characterized by enthusiasm, passion, spontaneity, good communication, persuasion, creativity, and a well-developed sense of humor. This person is sociable, a good presenter, a good motivator, and is capable of inspiring those around him or her. How can we communicate with this person? While interacting with such a person, it is important to maintain a positive attitude, keep smiling and have a good sense of humor. In order to capture his or her attention, we need to trigger an emotion in this person, by using such techniques as storytelling, but also remembering that this person likes to be in the center of attention at all times. That is why we can expect conversations to spin off into different directions, so we must remember to bring back the conversation to the initial topic. Another helpful thing is to ask miscellaneous questions meant to jog the conversation and get to know this person better, and also questions which ask for his or her opinion.
www.todaysoftmag.com | nr. 40/october, 2015
31
marketing How can we communicate effectively with our colleagues?
3. The Thinker: How do we recognize this person?
4. The Leader:
If one of our colleagues is precise, clear, logical, focused on How do we recognize this person? facts, prudent, organized, fair, punctual, disciplined, conventio The clues that help spot a leader are: a strong personanal, sticks to the rules and likes high standards, then he or she lity, a focus on results and actions, dynamism, determination, a belongs to the thinker style. competitive character, mobility and involvement. If we can find these in a few of our colleagues or friends, it becomes clear what How do we communicate with this person? type we are dealing with. Considering the fact that we are dealing with an analytical person, an effective way of communicating involves a lot How do we communicate with this person? of precise, logical, and proven data, specific processes and pro Results are the first and foremost thing that a leader is cedures (how we are going to implement what we are currently interested in. It is highly recommended to be short, to the point, debating), and deadlines. We must realize that a thinker needs and discuss from a win-win situation. We need to keep up with time in order to analyze and process all of the information, and this personâ&#x20AC;&#x2122;s quick rhythm, while all the while being professional that is why we must allow him or her this time. This person will and concise. ask a multitude of questions over the course of our interaction and will keep asking for more and more details. We will get How can these behavioral styles help us? along fine if we provide these details, as well as sufficient time for First of all, they help us realize how different we are from each thought. other. Secondly, they help us realize that we have different reactions and needs when it comes to the way we communicate. But if we manage to identify the predominant typology of the person we are talking to, we will be able to quickly personalize the way we communicate in order to achieve maximum effect. Thus, we increase the chances of our interactions becoming more positive and more effective.
32
nr. 40/october 2015 | www.todaysoftmag.com
(y)
g
� o
[@]
@
ays
� �
d
�
8
[SJ [Sl
workshops
JAVA PERFORMANCE WORKSHOP FOR SENIOR JAVA DEVELOPERS An advanced review of how the JVM really uses memory:
(i[SJ-�
� OC:::::::::,00
o=oo
OC:::::::::,00
i--------1 -----
()
� o
�
LEARNING BV HAVING FUN PROJECT MANAGEMENT THROUGH PM GALAXY BOARDGAME FOR TEAM LEADERS & PROJECT MANAGERS
What are references, What is compressed OOPS,
Come to learn and play! Join us on a learning journey, in a workshop about Project Management. Our guide is the first Romanian Project Management boardgame.
How are the fields in an object Laid aut.
Pushing Java 8 Lambdas to their limits and beyond: · How can new features in Java 8 be used to make writing Low Latency application easier? · How do you tune garbage creation in the use of Lambdas?
Chronicle Engine hands on: Publish/Subscribe and Key-Value stare lt supports building and wiring of objects with a simple configuration Remote access to those components for Java and C#. Real time updates to Live queries via a streams Like API using Lambdas. · Write Lambdas on the client to be executed on the server atomically or asynchronously, for any purpose. Supports clustered applications. · Support for millions of distributed actors per server.
This workshop is an introduction to project management and offers a clear structuring of projects: a simple approach, but nat simplistic. lts goal is to guide participants through project management main stages: initiation, planning, executing, monitoring and controlling, and closing. Traps, challenges and best practices will be experienced with the help of a boardgame especially designed for this purpose: PM Galaxy. The game aims to test your project management knowledge and skills on a fun, challenging route, where the only constant is the struggle for resources. There are five projects in the game, each coordinated by a player. Projects have their own objectives, but are interdependent. The player who completes the project and meets the success criteria Listed in the project description wins the game. The game follows closely a traditional Project Management approach, suitable for companies developing their own products or services. The players choose to respond or nat to Quizzes, gaining Resources (in exchange for correct answers) and decide how to deal with Challenges and whether or nat helping other projects. Resources are shared and - as in real Life - Limited!
lf you want to learn or simply recap your project management knowledge, join us for a colorful workshop, full of fun, challenges and AHA! moments related to Project Management best practices.
SIMONA BONGHEZ, PHD
PETER LAWREY Higher FrequencyTrading
Colors in Projects
He has a popular blog "Vanilla Java" which gets 120K page views per months, is 3rd on StackOverflow.com for [Java] and 2nd for [concurrency], and is lead developer of the OpenHFT project which ineludes support for off heap memory, thread pinning and low latency persistence and IPC (as low as 100 nano-seconds)
Owner of Confucius Consulting, member of the PMI CMAG has over 15 years of experience as a trainer and consultant in management and project management. She truly believes that humour, games and metaphors are powerful tools for having interactive and enjoyable training sessions, thus enforcing the learning process.
Price: 250 euro+ TVA
Price: 90 euro+ TVA
Partners
Supporters
�YARD/
GEMINI :ft
SOLUTIONS
® !!:D!!:nm:m1c: --=--------
BANCA TRANSILVANIA'
Ve
SUBSIGN
..
.,......�
colors in projects
>
accentu re TELEN
v·
"CLUJ
ţ
softlead
Loopaa
cl'd"ubC
Organizer FREE WIFI
(AD)HUGGER" ,:U:•R'·1 poţisiJtli!
I'
:HANNEJ,
DA DC' N•,c,;J
sponsors
powered by