teleren/devto huggingface dataset:
The Demise of Reuse
Tags: software, development, code, reuse
Published: 2017-05-08 18:37:45

---
title: The Demise of Reuse
published: true
description: A rant about the false promise of reuse, and its true cost
tags: software, development, code, reuse
---

I remember when code reuse first became a buzzword, back in the day.  "Code duplication is bad!" they cried. "A maintenance burden! Error prone!  Write code once, reuse, cut costs, and everybody wins!"

But imagine you embraced this mantra.  You have a number of client systems reusing your very useful code, some in your team, some not in your team, and perhaps some you don't even know about… You want to make a change.  How do you not break client code?

You turn your very useful code into a library or perhaps even a service (*waves dusty SOA banner), with well-defined interface contracts, usage guides and a versioning policy. And you start to keep track of your clients.  And of course, you want to write tests.  But since clients will reuse your code in surprising ways, you write more tests, for scenarios you haven't imagined (with your crystal ball.)

And all is good for a while.

Then client N+1 comes along and wants to change the common interface for legitimate reasons – change is to be expected and even embraced, right?  Luckily we used XML or JSON (or both), so we have some extensibility.  But no, the client is not satisfied.  The change is more significant. The business is moving. We are agile. We need to change the interface fundamentally.

So we do, and we version it.  We notify all our clients that there is a new version, and that version 1 is deprecated. They have 6 months to upgrade.

But some are too busy to do that, and we end up with two versions.

Or perhaps we decided the client's requirement is unique, so we write a special purpose adapter.  We end up with two interfaces. Somewhere, a developer's soul dies.

Unless very carefully managed, shared code quickly becomes code nobody wants to touch.  This is a very bad smell. Changes will be made around the edges, and a monster will be created. Nobody will want to own this code.

The very reuse of the code ironically becomes its own demise.
Hi, I'm Gaurav74
Tags: introductions
Published: 2017-05-08 16:52:55

---
title: Hi, I'm Gaurav74
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for [number] years.

You can find me on GitHub as [Gaurav74](https://github.com/Gaurav74)

I live in [city].

I work for [company]

I mostly program in these languages: [languages].

I am currently learning more about [topic].

Nice to meet you.
Maintain Library Versions Across Android App Modules
Tags: android, gradle
Published: 2017-05-08 16:47:23

---
title: Maintain Library Versions Across Android App Modules
published: true
description: How to use gradle to keep consistent library versioning across modules in your project.
tags: android, gradle
---

It is tough enough maintaining your app by updating the support library version numbers every time a new version is out, let alone factoring in any other third party libraries you may use. This is especially painful if you have multiple modules, as you have to update the version in each `build.gradle` file. Thankfully, we can make use of the project level gradle file to make this more maintainable.

<!--more-->

# Define Variables In Project Gradle File

In your root `build.gradle` file for the project, you can define some [ExtraPropertyExtensions](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html) that will be reused for various modules. That would look something like this:

```groovy
	allprojects {
	    repositories {
	        jcenter()
	    }

	    ext {
	        //Android
	        androidBuildToolsVersion = "25.0.2"
	        androidMinSdkVersion = 16
	        androidTargetSdkVersion = 25
	        androidCompileSdkVersion = 25

	        //Libraries
	        supportLibraryVersion = "25.3.1"
	        playServicesVersion = "10.2.1"
	    }
	}
```

Now we've got some reusable variables that we want to be consistent across our various modules.

# Define Global Configuration Reference In Module

In the `build.gradle` file of each module, inside the "android" block, we'll need to define a reference to the global configuration we just created. We can do so with the following single line of code:

```groovy
	android {
	    def globalConfiguration = rootProject.extensions.getByName("ext")

	    ...
	}
```

With that, there are two ways you can use these properties. When trying to reference them individually, for properties such as build tools or compile sdk version, you can reference them using the property key:

```groovy
android {
	...
	compileSdkVersion globalConfiguration["androidCompileSdkVersion"]
	buildToolsVersion globalConfiguration["androidBuildToolsVersion"]
	...
}
```

If you want to include version numbers as part of your compile statements, you can simply use gradle's string interpolation:

```groovy
	compile "com.android.support:appcompat-v7:${supportLibraryVersion}"
```

That's it! That one simple little trick is all you need to have consistent library versions across modules. Some notes on further studying this:
* A gist of all above code can be found [here](https://gist.github.com/AdamMc331/a1dd4e8503c0cf86e0165c5f14c308ba).
* A project that goes even deeper on this topic and reusing compile statements (beyond just build numbers), can be found [here](https://github.com/android10/Android-CleanArchitecture). This came up as a result of a Facebook discussion I was a part of.
Hi, I'm Zoe!
Tags: introductions
Published: 2017-05-08 13:42:14

---
title: Hi, I'm Zoe!
published: true
description: My introduction post
cover_image: 
tags: introductions
---

### First contact

The first time I had access to a programming language was on a Commodore VIC-20. How most people got started was by manually copying the sample programs from the manual, which is what I did. Not really understanding what was what, I was struggling to make some intriguing formulas work on the computer. Those were trigonometric equations, not machine instructions.

The computers in the early 80' were much simpler to get started, provided one had access to them. I'm privileged to have been able to code from a very young age. It's amazing how they were teaching indirect memory addressing in the first few chapters in a manual written for the general public.

### :coffee:

You can find me on Twitter as [@zoeisnowooze](https://twitter.com/zoeisnowooze)

I live in Montreal.

I work for [Shopify](https://www.shopify.com)

I mostly program in Ruby and Python, but anything will do.

I am currently learning more about 6502 assembly and vintage hardware. Hopefully my next programming project will be written in Rust.

Nice to meet you!
From Chaos To REST
Tags: rest, soa, corba, microservices
Published: 2017-05-08 16:16:49

---
title: From Chaos To REST
published: true
description: In the beginning there was chaos, and the enterprise was dark, null and void. Poor software developers struggled in vain to build systems with inadequate tools and tightly-coupled remote procedural calls over clunky and incompatible binary protocols.
tags: REST, SOA, CORBA, Microservices
---

In the beginning there was chaos, and the enterprise was dark, null and void.  Poor software developers struggled in vain to build systems with inadequate tools and tightly-coupled remote procedural calls over clunky and incompatible binary protocols.  But then there was light, and seeing the error of their ways, the developers moved to XML-based RPC over the ubiquitous HTTP protocol.  Some hapless souls stumbled over remaining pools of dark, filled with SOAP, which used to be called simple, but then not, since it clearly wasn’t.  Others were lured in to gloomy caves by evil product vendors, where they were locked into dungeons of proprietary extensions, never to be seen again.  However, the fittest survived, and reached Level 0, and they saw that it was good.

Then, one day, realising that remote communication is best done using coarser-grained payloads, not itsy little bits of data fragments that meant more frequent network calls, they moved towards a document style of programming.  They had unwittingly reached Level 1, and they saw that it was good.

However, soon it became apparent that their myriad document-oriented RPC calls could be distilled down to four basic operations: Create, Read, Update or Delete, and some academic bloke called Fielding observed that CRUD was just like POST, GET, UPDATE and DELETE, and documents just representations of underlying things  called resources, that the web had been doing this for ages, and he called it REST.  Our intrepid software developers had stumbled upon Level 2, and they saw that it was good.

Then they rested.

However, some malcontents clamoured that it was too early to rest, and that the world needed Fielding’s multiple resource representations.  So a few intrepid dabblers set off, generating XML and JSON representations of their resources, but soon decided that this was pointless since JSON was anyway the coolest representation ever.

The developers rested once again.

Then one day, a man came from the wilderness, a wild, woolly-headed man bearing a placard on which was written the word HATEOAS.

“Repent of your ways”, he cried. And lo, some followed him, listening intently as he taught them about  Hypertext As The Engine Of Application State, that resources should link to each other, and that links should be resource identifiers in their own right, and that this was the Web Way.

But the others still rested. 

And the wild, woolly man got fed up, burnt his loin cloth in disgust, and left, muttering something about CORBA.
Hi, I'm Joyesh
Tags: introductions
Published: 2017-05-08 15:13:04

---
title: Hi, I'm Joyesh
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I've been coding for 4 years, and it's been my hobby. I also like doing graphics design and art.

You can find me on GitHub as [therealjoyesh](https://github.com/therealjoyesh) and GitLab as [therealjoyesh](https://gitlab.com/therealjoyesh) also.

I mostly program in C#, Python and JavaScript, and some other languages that don't really count as languages (to me, but that's my opinion) are CSS and HTML.

I'm not learning any new languages steadily, but I've done some programming in C++ and Golang. Nice to meet you!
Hi, I'm Stephanie
Tags: introductions
Published: 2017-05-08 13:39:05

---
title: Hi, I'm Stephanie
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 6 years.

You can find me on GitHub as [smgmaldonado](https://github.com/smgmaldonado)

I live in Guatemala.

I work for Viscosity NA

I am currently learning more about Apex new features.

Nice to meet you.
Hi, I'm Alan Campora
Tags: introductions
Published: 2017-05-08 13:34:27

---
title: Hi, I'm Alan Campora
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 9 years.

You can find me on GitHub as [alancampora](https://github.com/alancampora)

I live in Buenos Aires.

I mostly program in these languages: javascript.

I am currently learning more about js, lisp, haskell.

Nice to meet you.
Magento Facebook Login Extension
Tags: facebooklogin
Published: 2017-05-08 12:31:36

---
title: Magento Facebook Login Extension
published: true
description: Magento Facebook Login Extension allows your customers to register on your e-store at just dew clicks.
tags: Facebook Login
---

If you to make the registration process easy for you customers then Magento Facebook login extension by FMEAddons is the perfect tool for you. This extension enables four social buttons on the registration page and users can log in by choosing any account. Four social accounts are Gmail, Facebook, Twitter, and Yahoo, so customers can log in at just a few clicks. Customers do not need to enter any data because it auto updates their account information. 

Features of Facebook Login Extension for Magento
 - It enables Twitter login functionality
 - Manual login with email and password
 - It enables three buttons such as Register, login, and forget 
 - Social network settings from the back office
 - 100% open source
 - Free lifetime upgrades

More Info: <a href="https://www.fmeaddons.com/magento/social-facebook-twitter-login-extension.html">Facebook Login Add-on for Magento</a>

<img src="https://thepracticaldev.s3.amazonaws.com/i/gq33tx0osq6cp1bfwyeo.png"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/niex334huuqrnyw9ufup.png"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/wbti4z6avrzilwxygh9a.png"/>
Magento Snippets Extension by FMEAddons
Published: 2017-05-08 10:49:18

---
title: Magento Snippets Extension by FMEAddons
published: true
description: Magento Snippets Extension enable you to display 13 types of data in Google search results.
tags: 
---

Magento snippets extension by FMEAddons let you display important information regarding your products in Google search engine. With this addon, you are allowed to 13 types of data in Google snippets which helps to attract the visitors to your website. 

Snippet extension helps to get more targeted traffic on landing pages and boost the sales. You can get this extension with 100% money back guaranty and it supports the following fields 

•    Name 
•    Breadcrumbs
•    SKU
•    URL
•    Image
•    Description
•    Price
•    Currency
•    Status
•    Brand and its product attribute
•    Product color and its attribute
•    Product weight and its attribute
•    Reviews


Morw Info: <a href="https://www.fmeaddons.com/magento/rich-snippets-extension.html">Rich Snippets Extension for Magento</a>

<img src="https://thepracticaldev.s3.amazonaws.com/i/fdpckijptwbmpl1u5ht9.png"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/cinzs8mnzweibgf40xjr.jpg"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/g3l8qetg0yjnoccrjuwh.png"/>
Hi, I'm amosISA
Tags: introductions
Published: 2017-05-08 08:55:05

---
title: Hi, I'm amosISA
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 4+ years on Angular.

You can find me on GitHub as [amosISA](https://github.com/amosISA)

I'm from Spain.

I love Angular.

Nice to meet you.
Forum Magento Extension 
Tags: forumextension
Published: 2017-05-08 08:10:32

---
title: Forum Magento Extension 
published: true
description: Forum Magento Extension by FMEAddons allows you to create the forum on Magento -store.
tags: Forum Extension
---
Forum Magento extension by FMEAddons allows you to run your own forum on Magento e-store. This plugin provides you full control to manage all the things such as threads, posts, users, spam etc. You can also create different sections for product questions, suggestion, off topic to engage the customers. Forum add-on also helps you to promote your new products in the forum easily. 

Main Features of Forum Extension for Magento
 - Enable/disable signatures
 - Google Captcha 
 - Engage community
 - Promote products
 - Free lifetime upgrades
 - 100% money back guaranty

Download Forum Extension by <a href="https://www.fmeaddons.com/magento/advance-forum-extension.html">FMEAddons</a>

<img src="https://thepracticaldev.s3.amazonaws.com/i/t48tfju8lz2w2v1lxie1.png"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/mtzbc68o3744zcd2uf81.png"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/2f4vfsed6m5xyepgjtc6.png"/>
Hi, I'm Tom Docu
Tags: introductions
Published: 2017-05-08 00:35:45

---
title: Hi, I'm Tom Docu
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for [0] years.

You can find me on GitHub as [tommydx](https://github.com/tommydx)

I live in [NYC].

I work for [company]

I mostly program in these languages: [HTML, CSS, Javascript].

I am currently learning more about [HTML, CSS, Javascript].

Nice to meet you.
Hi, I'm Ayoola Ajebeku
Tags: introductions
Published: 2017-05-07 21:24:58

---
title: Hi, I'm Ayoola Ajebeku
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 7 years.

You can find me on GitHub as [ayz4sci](https://github.com/ayz4sci)

I live in Lagos.

I work for Andela Inc.

I mostly program in Java/Android and a little PHP & SailsJS.

I am currently learning more about Leadership, Project & Product Management.

Nice to meet you.
Hi, I'm Alexandru Trandafir
Tags: introductions
Published: 2017-05-08 00:07:35

---
title: Hi, I'm Alexandru Trandafir
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 12+ years.

You can find me on Twitter as [@atrandafir](https://twitter.com/atrandafir)

I live in Barcelona.

I work at [HeavyDots](http://heavydots.com/).

I mostly program in these languages: PHP using Yii/Yii2, HTML, CSS, Javascript, jQuery and use MySQL databases.

I am currently learning more about Yii2 both for using with client projects and on an open source CMS.

Nice to meet you!
Introducing My Self
Tags: javascript, php, swift
Published: 2017-05-07 22:45:57

---
title: Introducing My Self
published: true
description: 
tags: Javascript, PHP, Swift
---
I'm Emmanuel, a Computer Engineering Student in Nigeria, I write iOs apps with Swift and Andriod-iOs with React Native. Also, build BackEnd of Systems with Nodejs or PHP. I am here to Build my skills and be a Better Software Engineer with help from the community ðŸ¤“ðŸ¤“. I am a student, I WANT TO LEARN. Twitter @I_AM_Harkindey.
Hi, I'm demirgokhan
Tags: introductions
Published: 2017-05-07 22:09:06

---
title: Hi, I'm demirgokhan
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for [number] years.

You can find me on GitHub as [demirgokhan](https://github.com/demirgokhan)

I live in [city].

I work for [company]

I mostly program in these languages: [languages].

I am currently learning more about [topic].

Nice to meet you.
Hi, I'm khaledallen
Tags: introductions
Published: 2017-05-07 22:07:20

---
title: Hi, I'm khaledallen
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 5 years.

You can find me on GitHub as [khaledallen](https://github.com/khaledallen)

I live in Boulder.

I am a freelance developer.

I mostly program in these languages: C++, Unity, jQuery, CSS and HTML, PHP.

I am currently learning more about React.

Nice to meet you.
Hi, I'm Joseph
Tags: introductions
Published: 2017-05-07 21:04:06

---
title: Hi, I'm Joseph
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 0 years. I'm steadily learning how to code whilst doing a degree, so progress is slow but steady.

You can find me on GitHub as [demoose](https://github.com/demoose)

I live in the UK, where I'm studying Dentistry.

I'm learning to program in these languages: HTML, CSS and JS.

Nice to meet all of you!
Hi, I'm AzisK
Tags: introductions
Published: 2017-05-07 19:14:30

---
title: Hi, I'm AzisK
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for half a year

You can find me on GitHub as [AzisK](https://github.com/AzisK)

I live in Kaunas

I work for Icybit

I mostly program in these languages: javascript, angular, c#

I am currently learning more about vue.js

Nice to meet you
Hi, I'm Karzealos 
Tags: introductions
Published: 2017-05-07 16:13:59

---
title: Hi, I'm Karzealos 
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding for 3 years.

You can find me on Twitter as [@Karzealos](https://twitter.com/Karzealos)

I live in Stuttgart.

I am currently studying Informatics at Uni Stuttgart



Nice to meet you.
T is for Transitions
Tags: career
Published: 2016-01-08 01:07:43

---
title: T is for Transitions
published: true
tags: career
canonical_url: 
---

For the past year, I’ve been heavily involved with [PyLadies Chicago](https://twitter.com/PyLadiesChicago) as a co-organizer and [ChickTech Chicago](http://chicago.chicktech.org) as the Lead of Mentorship and Volunteer Initiatives. It’s been exciting to be involved with the launching and growth of these organizations, but like all things it’s time to move on.

Over the past year, I’ve been working on a professional services startup ([dsfa](http://dsfa.io)) aimed at providing data science services to small business and community organizations. It’s a cause that I truly care about and want to push forward. But the truth is, over the past year my business hasn’t grown because I haven’t dedicated the time to it. Startups are a two way street, you get back as much as you put in, and I haven’t put in enough.

So I’m departing from my leadership roles with PyLadies Chicago and ChickTech Chicago to put more energy towards my startup. With renewed energy and more focused passion, I hope to accomplish my goals and build a meaningful business.

But I also don’t want to depart the Chicago tech community. It’s been an awesome network and I am so proud to be around so many awesome people. That’s why I’m organizing the PyData Chicago community. It’s another cause that I care about and want to grow. As you can tell, I’m very excited about making data science more accessible to the masses.

I’m looking forward to what the future brings, both for my business and for the Chicago data community. Good things are brewing!

If you’re interested in chatting with me about dsfa or PyData Chicago, feel free to [reach out on Twitter](https://twitter.com/captainsafia) or via [email](mailto:safia@safia.rocks).
Hi, I'm Andy Schneider
Tags: introductions
Published: 2017-05-07 15:46:25

---
title: Hi, I'm Andy Schneider
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been an IT Pro for 17 years and have done a bunch of coding and scripting along the way.

You can find me on GitHub as [AndySchneiderDev](https://github.com/AndySchneiderDev)

I live in Seattle.

I work for Avanade.

I mostly program in these languages: PowerShell and C#.

I am currently learning more about DevOps and infrastructure as code

Nice to meet you.
Hi, I'm Norman
Tags: introductions
Published: 2017-05-07 15:44:10

---
title: Hi, I'm Norman
published: true
description: My introduction post
cover_image: 
tags: introductions
---

I have been coding since I was 10 or so years old.

You can find me on GitHub as [nkoehring](https://github.com/nkoehring)

I live in Berlin, Germany.

I work for fromAtoB. 

I mostly program in these languages: Javascript and Rust.

I am currently learning more about Rust and Plaid (concurrent programming).

Nice to meet you.