Showing posts with label Drupal. Show all posts
Showing posts with label Drupal. Show all posts

Friday, August 19, 2016

DrupalatON

       Drupalaton has just ended, 4 amazing days at Balatonalmádi made all of us a bit more enthusiastic for Drupal. We are still in the DrupalatOFF mood: looking at each other and laughing at one of Tomi’s jokes, remembering the stories which happened to us, or just sitting at the table and discussing topics mentioned at the camp. We are really amazed by the people who came to our booth, it was soooo great to see that even the programmers could be excited in seconds by games like a bubble-blowing contest or treasure hunt. I think navigating the drone was one of the most popular games, but the darts contest next to us by Pitech+ was pretty close in beating it. :D We are thankful to all of those who stopped by and played with us, had a brief chat, said a few kind words or simply shared a smile.


Sometimes it was really hard to decide which workshop to choose; all were great and exciting, and even when the topic was more well-known to us the presenters could always say something new and share a new perspective. The motivation of Drupalaton attendees was surprisingly clear, and a tad unbelievable, to many of us - even the sprint-room was always full. According to this progress, on the next year sprinters will need a bigger one. :)


As has been in the past, the nights were crazy.  But something has changed: I hope it was not just me, who felt the overwhelming love and familiarity-for-others type of atmosphere among us. It was really good to see how people were becoming closer with each other. The cruise party has just proven that (and as the diamond sponsor of the event we are so happy for that); there was not a single person who was left out of conversation. The community displayed its power through the surprise party as well. I could even add to that that I’m somewhat thankful for the disorganization. As I see it, this intangible represented the coherence between us in the best way.


I hope we all have learnt something from this event; f.e. That lángos is the champion of all that is edible, especially when it is TEJFÖLÖS (:D) and fröccs when it is at least a VICEHÁZMESTER.


We are so amazed by the event, that we can’t even finish our retrospective without turning it into a huge storytelling session. Based on this year's experience, I'm convinced that next year's turnout will higher. So, my dear organizers and volunteers, a big thank you one more time for making this event so great.  Secondly, see how far your dreams can take you into 2017. We had some great presentations this year (ours was about Drupal 8 media). Who knows what could be achieved by next year's Drupalaton. I hope we see each other at the next Drupal event! We’ll be attending the upcoming IronCamp and hope are you too. :)

Tuesday, June 21, 2016

Drupal 7 on PHP 7

We're happy to announce that last week

we successfully upgraded a really complex Drupal 7 based web app to PHP 7 and it works like a charm!


From the upgrade we can measure and feel the performance boost coming with PHP 7! (30-100% performance increase along with a lower memory consumption).

Exact versions? We upgraded from Ubuntu 14.04 LTS and PHP 5.5.9 to Ubuntu 16.04 LTS and PHP 7.0.4 (currently).

Is it a complex project? Yes. It has 277 enabled modules (core, contrib, feature and custom modules together).

Is it a mission critical application? Yes, it's far from a website. It handles sensitive information and used continuously on a daily basis as the heartbeat of an enterprise.

Drupal.org says PHP 7 is not fully supported by Drupal 7 - there is an issue with a solution reviewed and tested by the community, but still open currently. However, there is no aggregated info out there regarding PHP 7 support of contrib modules.

How we took to the liberty of upgrading? How we handled the risks? Simply: we have tests. Yes, automated tests. We have 373 casperjs tests, plus phpunit tests for classes responsible for critical calculations set up as part of a nightly build based on continuous (daily) delivery workflow.

The moral of this story


1. Don't be afraid of running Drupal 7 on PHP 7. Try it, test it and be happy :)
2. Write tests. It's worth it. Of course, this complex D7 project would have been the last to be updated to PHP 7, but we were able to produce quite a nice test coverage, and in this way it came out first! Tests gave us confidence.

We’ve chosen Drupal 8 for most of our new projects since Drupal 8 beta and a huge advantage of Drupal 8 is that it supports PHP 7 out-of-the-box, so you don't have worry about this. But now we see that for projects started in Drupal 7 the future is bright as well.

Thursday, April 28, 2016

Communitism

Have you ever thought that we are living our lives in constant interaction? And I’m not talking about the web2 or life online.
Of course, there are always some exceptions but mostly we spend our lives 24/7 being part of different small communities. 



Let me indulge you for a moment. There are various types of formal and informal groups.  In sociology, formal groups are defined as having an objective, not relating to personal interest of others; whereas informal relates to smaller groups with special bonds, while sharing a common interest.  Take, for example, being a member of a family or as an employee I am a part of informal groups. As a citizen I am also in a formal domain. Now let’s tie that into who we are professionally.  We spend a third of our lives at our workplace (sorry home officers), which is also a community.  Generally, one of these three groups has the biggest impact on us; therefore, it's imperative we utilize all of our time wisely. Here at Brainsum, we strive to develop a real community of people with common interests, clear goals and aspirations to strengthen all of our relationships associated with our community.  What’s more, we fully support communities that share our common goals and interests.


I'd to connect this to another community many of us can relate to.  Let’s break down the activity of scouting into account here and how all these small, individual communities can be viewed as one large informal group . There are some scouts among us, who care a lot about their tribes. Scouting is a movement, where you have to learn how to be independent and team-worker in one. Their morals and goals, such as loyalty, fairness and integrity, are very similar to ours; therefore, when it’s called to our attention that they are in need of help we don’t hesitate -  we act.  As many of you are aware, it's a theme all too common with the Hungarian minorities abroad: many of us have roots from the ex-Hungarian territories, from Slovakia, Romania or Serbia as well. Still to this day we are trying to keep to the traditions. All in all we actively try to be as open-minded as possible, because we know that the diversity of our co-workers is a major asset to the company and in our daily lives. By supporting these diverse backgrounds our company is becoming more tolerant and overall a stronger unit.


If you have been reading the article carefully you should see that we are not talking about spending money mindlessly and making a big issue of it. Referencing a real world community example at Brainsum, for instance, at times we’ve lent our office out to others for weekend concentrations or leadership meetings. This has been way of opening up to other informal communities in supporting each other’s programs and objectives.

Collectively, we believe in the power of togetherness and team-work even though we do not necessitate it. Remember that being tolerant can be the key to gaining your co-workers trust and loyalty.

Monday, February 1, 2016

Case Study: The Story of IOTA

The Intra-European Organisation of Tax Administrations (IOTA) is an intergovernmental organisation, which provides a forum for assisting its members to improve tax administration. We launched their site in the end of January, just before the meeting of Executive Council, where the site get a very positive feed-back.

The system connects official tax authorities from among the
47 member countries in Europe (like HM Revenue & Customs, Bundesministerium der Finanzen).



The main field of the activity is organising workshops which provide opportunity to participants from various member tax administrations to exchange views, experiences and preferred practices about the most relevant issues in the field of taxation.
IOTA also promotes cooperation between tax administrations in Europe and supports their development according to their individual needs.


Creating a new website for IOTA was necessary for a multitude of reasons:
  • The previous one was no longer able to serve the needs of the modern user experience.
  • It couldn’t provide the required services for the members. The aim was to create a 2in1 site, in essence a social network and knowledge sharing system in one. Via this platform IOTA members from various countries can communicate to each other when covering several tax professional topics across Europe, reaching 47 countries at one time if necessary.


The Scope: The website has 3 main goals:
  • News portal and communication platform for the members but also for the public
  • It serves as an intranet for the IOTA staff to support their event planning and organizing workflow by allowing them to create, collect and store documentation.
  • It serves as a registration interface for all potential event attendees by allowing them access to event information, receiving notifications and signing up.
Key Features:
  • Event Management - Complete annual planning and management of the events
  • Custom Notifications - Highly customisable email and web based notifications, reminders managed by the IOTA Secretariat.
  • Form Builder - For creating and cloning custom forms as well as result analysis.
  • Knowledge Base - Categorised and searchable content, constantly growing from multiple sources and discussed by the members.
  • Technical Enquiry - A survey and communication tool for members to help amass the leading practices, managed through complex confirmation levels.
  • Numerous User Groups with Subgroups - Special task delegating rules and workflows for the member organizations.
  • Custom Reports - Event statistics, annual reports
  • Issue Management - Built-in support channel for users.


Challenges:
  • Challenge1: Managing several roles with different user interfaces and authorities.
    • Journey: On the previous site there were 23 different roles and authorities. To manage them we had to merge some of the roles, unlike what has recently been done with the new site’s 8 main roles, which can have some subroles as well. The main roles are the Secretariat, Technical Advisory Committee (TAC), Principal Contact Persons (PCP), back office user, group member, PCP extended, authenticated user and Anonymous.
    • Solution1: Drupal’s role and permission system + custom modules for task delegation inside of the organizations.
  • Challenge2: Custom forms, surveys built by the users + analysis.
    • Solution2: Custom form handling by form builder based on Entityforms, extended functionality of the module and interface via custom modules.
  • Challenge3: Replace the legacy workflows.
    • Solution3: Custom rules, components.

Discovery: Close cooperation helped us find the responsible individuals across the organization for each key feature.

Technical Details, statistics:
  • Infrastructure: dedicated server with Ubuntu LAMP + Varnish reverse-proxy
  • CMS framework used: Drupal 7
  • 9 developers committed to the code 965 times totally over 221 active days
  • 65 custom / feature modules have been created
  • 132 contrib modules used with 2 custom patches
  • 108 views, 23 content types and 824 fields are in use
  • 125 user generated custom forms have already been created
  • 1500 users were migrated from the legacy system


Results:
  • Getting accustomed - we’ve set up a sandbox instance of the system for the IOTA Secretariat where one can learn the system by trying out every function risk-free (online support is provided in the meantime).
  • The top level board IOTA, the Executive Council gave fully positive feedback about the platform at the IOTA conference in Paris in January 2016.
  • As of February 2016, the platform is used by 523 users from 47 member countries
Continuous support and maintenance:
  • We will continue to help leveraging the power and adoption of the system across the organisation via fine tuning, continuous maintenance and support.
  • We are working on the automated test suite for regression tests.
  • Mobile version development (not in the original scope) is forthcoming.
  • Cooperative editing and other interesting features are also on the roadmap.

Friday, January 15, 2016

Summary of 2015

The year 2015 was stirring for us, particularly in relation to the release of Drupal 8. We didn't wait for the stable release, we launched the first Corporate D8 site in Hungary in April, the Gravity R&D.
Currently, we are working on our second D8 project ThermalCorvinus, which is also going to be the first Slovakian D8 site. Additionally, we were working on projects such as, MABIASZ, Iota, Rustique, Plast-Ex, SlovakLines, Új Szó, Slovnaft and others.

Up to now our biggest professional success has been our newest Swiss HR software launched at the end of the year. It's a cloud based SAAS solution. The trial version are still freely available! If you would like to give it a try please just let us know, we will help you onboard. :)
On top of all this we have contributed our OTP module, also freely available to anyone interested.


Together in a Community

The Hungarian Drupal Association took off last year, with a Brainsumist between the board members. The community arranges Drupal Users Group every month, the 10th held in our little home. We delegate a board member to the Slovakian Drupal Association too!

We attended more DrupalCamps and DrupalCons, we were in Kolozsvár, Bratislava and Barcelona as well.
One of the biggest programs was Drupalaton in Keszthely with our company being the premier diamond sponsor of the event. In addition, we held two presentations in accordance with D8. If you would like to receive any further information, click HERE.
In the end of the year our CTO had a presentation on the Hungarian WebKonf regarding D8’s CMIs.

Building the Team

We’ve introduced an internal motivation ritual for the projects’ milestones and launches to commemorate our successes.
We consider teamspirit as important as individual motivation, this is why we routinely organize teambuildings. In 2015, for example, we went to the Capa Center’s interactive high-tech exhibition; yet contrastingly, Brainsum’s anniversary was celebrated with a BubbleBall match.


In November, we spent a weekend in Győrújbaráthely at the impressive Villa Corvina.
At the Christmas Party we summarized our achievements and performance over the year. Also we touched on our future plans and personal challenges for 2016.

Thursday, May 7, 2015

Our first Drupal 8 site was launched on 10th of April!

Last year in Amsterdam at the DrupalCon, after the first official Drupal 8 beta release we were sitting enthusiastically and felt the courage to offer Drupal 8 to a client.

Not for a complex system though, just for a corporate website. Views is in core and there will be an upgrade path between beta releases -- at least we thought at the time. So what could go wrong? Well we know that anything :) So we tried to be careful.


The client was selected carefully

  • Our client Gravity Research & Development is known by its recommendation engine. They are an innovative IT service company so choosing an innovative platform for their new website is a good fit.
  • We already maintained the client's legacy Drupal 7 site so their needs were well-known for us. 
  • Does this mean that we charge the client with our learning process? No! From the beginning we counted with a large investment on our side + we were generous when it came to change requests.
  • We created the wireframes and the graphic design too, so we had chance to discuss these with the developers.
  • The scope of the new site was very limited: a one page site with a couple of additional simple subpages (by the end this had changed a lot)
  • 1 language only


We set some principles for the project

  • Using only Drupal core and no contrib modules
  • Trying to minimize custom module development


The start: Drupal 8 beta6

  • When we started the actual development, Drupal 8 was in beta 6 and we realized that no official beta to beta upgrade path will be available. No panic, we will only upgrade to the stable release. (There is a contrib module which has upgrade path from beta9, but we haven't tested it yet)
  • On our weekly internal training sessions we focused on Drupal 8. This way not only the 2 involved developers had to solve the issues, but the whole team was there to help and to learn at the same time.


What worked well

  • TWIG template engine and template debugging.
     
  • Core configuration management. Works like a charm on the admin UI and it has drush support as well.


Custom module development

A views plugin to handle custom navigation tabs (note that there are tabs below the content area too).
We will show this in a separate post later.


Struggle with simple things


Bye-bye drupal_goto(), hello RouteSubscriberBase!

The nice thing with using new technologies is that even the easiest thing can become a real pain. 
One example: we had to redirect all node view pages to the corresponding custom page and even activate the right tab. For this a simple redirect with some additional information after a # for Javascript is enough.
But in Drupal 8 the good old drupal_goto() doesn't exist anymore. We had to figure out the Symfony way and ended up with two files (classes) as we had to override the NodeViewController and the RouteSubscriberBase instead of that single drupal_goto. We will show a working example on this in a separate post.


YML

In Drupal 8 a lot of declarative things (info files, menu hooks etc.) are placed in YML files and this is good. But the current IDEs (we use PHPStorm and Netbeans) the Drupal 8 - YML support is limited and it can take really a long time till you find out that you made a typo somewhere in your YMLs. I hope that this will get better with time.


Our next Drupal 8 project?

Gravityrd.com is up and running, but we still don't recommend Drupal 8 for complex projects. Most of the documentation on the web is obsolete, things are still changing and there are a lot of critical issues left. On the other hand we believe that this is the future so it's worth it to invest time to learn and adapt early. We are already planning our first headless Drupal 8 project, so that we can benefit from its in-built webservice support.

Last week we hosted the Drupal User Group meetup in Budapest, where we shared our experience with the local community. Check out the presentation slides about creating the first production Drupal 8 client site in Hungary.




Monday, January 6, 2014

A short look-around for new Drupal alternatives

My friend and co-owner of our company ( http://www.brainsum.com ) asked me to check out some alternatives of Drupal. Maybe we should use some of them for some project types he said.

http://jekyllrb.com - this toolset provides a very interesting approach for creating and maintaining static html websites. It could be useful for developers (requires knowledge of technologies such as Markdown and Liquid) who have to create their personal blog-like pages or documentation sites but without interactive elements such as comments. 
For our Drupal shop this is not useful since our developers are not blogging or they prefer to use a public blog engine such as blogspot.com :) with interactive features. Brainsum is currently not maintaining public documentation-like websites we are using Google Docs for creating and sharing documentation with clients. Altough for a startup with coder minds could be a good toolset for creating and maintaining a global introduction site free on github's infrastructure.

http://strikingly.com - yet another wysiwyg drag'n'drop create your website (self-service) tool.  Sorry, I don't have the time to test it deeply maybe we will try it out as a wireframe / "clickable demo" creation tool in the future.

http://getkirby.com - a file based cms. One step ahead from a wysiwyg site towards a real CMS but simplified, no database. I think this is still not the way for a Drupal company for 30 EUR / site and a limited feature set.

http://www.wix.com/ - I think this is the biggest modern wysiwyg drag'n'drop website creation tool. I've already checked this earlier. It provides an e-commerce offering and you can even hire a designer for a custom design so this is a serious service for a wide range of projects from personal sites to company solutions too.
I think the biggest disadvantage of wix.com is the commitment. You have to host your site on wix.com, you can't even backup your HTML5 site (currently). The whole technology is closed, your project's future will be inseparably linked to the wix.com startup. For an enterprise project I think these facts are enough for exclusion.

My decision for 2014: we will continue to use Drupal as the primary platform for our new web projects altough the importance of client side development will rise (We use Cordova/ Phonegap for mobile app development). 
I prefer to use a low number of programming languages/technologies but on a higher level so if we choose a static site creation and management tool (http://staticsitegenerators.net) for our mobile apps it will be a javascript based one.

For simple, short-term web projects such as simple Facebook apps for a campaign we will consider to build the backend without a full Drupal installation, maybe we will just pick a modular PHP framework like Symfony - which is inside Drupal 8 :)

Drupal will remain the best choice for complex / heavily customized / high traffic sites as it's shown in this  w3techs.com report:

Happy and effective new year for everyone! 

Thursday, September 26, 2013

Route planning with Drupal + OpenLayers and powering Phonegap mobile apps

I had a session at DrupalCon Prague yesterday. I just created this blog to have a place to share and discuss more details about this ongoing real-world project.
I will share details in separate posts topic-by-topic and I promise I will try to answer all the incoming questions.