Technology

Showing 625-640 of 652 results

Share

Modernizing Legacy Software: MUD Programming Using Erlang and CloudI

The need to adapt legacy code and systems to meet modern day performance and processing demands is widespread. This post provides a case study of the use of Erlang and CloudI to adapt legacy code, consisting of a decades-old collection of multi-user game software written in C, to the 21st century.

7-minute readContinue Reading
Michael Truog

Michael Truog

Michael is a distributed systems and fault tolerance expert, having worked with AT&T, E*Trade, Nokia and others.

Automated Android Crash Reports with ACRA and Cloudant

Making a basic Android app is easy. But making it reliable, scalable, and robust, on the other hand, can be quite challenging. With thousands of available devices pumped out from tons of different manufacturers, assuming that a single piece of code will work reliably across phones is naive at best. Segmentation is the greatest tradeoff for having an open platform, and we pay the price in the currency of code maintenance, which continues long after the app passes the production stage.

In this post, we’ll walk through a solution: automated crash reporting with ACRA and a Cloudant back-end, all visualizable with acralyzer.

9-minute readContinue Reading
Ivan Dimoski

Ivan Dimoski

Ivan is an accomplished Android developer and consultant with six years of experience developing user-friendly applications.

A Guide to Building Your First Ember.js App

As modern web applications do more and more on the client-side (the fact itself that we now refer to them as “web applications” as opposed to “web sites” is quite telling), there has been rising interest in client-side frameworks. There are a lot of players in this field but for applications with lots of functionality and many moving parts, two of them stand out in particular: Angular.js and Ember.js.

Angular.js has already been introduced on this blog, so we’re going to focus on Ember.js in this post, in which we’ll build a simple Ember application to catalog your music collection. You’ll be introduced to the framework’s main building blocks and get a glimpse into its design principles.

12-minute readContinue Reading
Balint Erdi

Balint Erdi

Balint has been practicing TDD since before it became popular. He was a classic PHP coder, and has since moved on to Java, Python, and Ruby.

Computational Geometry in Python: From Theory to Application

When people think computational geometry, in my experience, they typically think one of two things:

1. Wow, that sounds complicated.

2. Oh yeah, convex hull.

In this post, I’d like to shed some light on computational geometry, starting with a brief overview of the subject before moving into some practical advice based on my own experiences in computational geometric programming with Python.

16-minute readContinue Reading
Charles Marsh

Charles Marsh

Charlie (BCS, Princeton) has been an engineering lead at Khan Academy, then Cedar, and nowadays does ML at Spring Discovery.

A Year Building a WebRTC Application: Lessons in Startup Engineering

I’ve been an Engineer at Toptal for just about one year now, working on the same project since I joined the network: Ondello, a service that connects doctors and patients over WebRTC.

When I first joined Ondello, I was hired as a Senior Ruby on Rails Developer, tasked to build a service up from scratch. These days, we’re a team of multiple developers working on a fairly large, complex system.

With this post, I’d like to share the story behind Ondello. Specifically, I’d like to talk about: how a simple application became not-so-simple, and how our use of cutting-edge technologies posed problems I’d never considered before.

9-minute readContinue Reading
Alexandre Mondaini Calvão

Alexandre Mondaini Calvão

Alexandre is an expert Ruby on Rails developer who is also experienced with Java and various front-end technologies.

World-class articles, delivered weekly.

By entering your email, you are agreeing to our privacy policy.

An Introduction to Python Mocking

More often than not, the software we write directly interacts with what we would label as “dirty” services. In layman’s terms: services that are crucial to our Python application, but whose interactions have intended but undesired side-effects—that is, undesired in the context of an autonomous test run.

9-minute readContinue Reading
Naftuli Kay

Naftuli Kay

From building custom TCP servers to large-scale finance apps, Naftuli’s breadth of experience makes him a top-of-class dev and sysadmin.

Anti-Patterns in Telecommuting

As a veteran telecommuter through multiple jobs in my career, I have witnessed and experienced the many joys of being a remote worker. As for the horror stories, I have more than a few I could tell. With a bit of artistic inclination and a talent for mathematics, I also have a fascination with patterns: design patterns, architectural patterns, behavioral patterns, social patterns, weather patterns—all sorts of patterns!

When I first encountered anti-patterns, I discovered a trove of wisdom I wish I had known before I had learned the hard way. Anti-patterns are recognizable repeated patterns that contribute significantly to failure. For example, the manager that keeps interrupting the employee in order to see if the employee is getting any work done is engaging in an anti-pattern that serves to prevent the employee from getting any work done!

Based on my own experiences and experiences of friends and co-workers, I am assembling descriptions of anti-patterns related to telecommuting.

16-minute readContinue Reading
Steven S. Morgan

Steven S. Morgan

Steven is an expert Java architect and developer with extensive experience in distributed architectures, scalable solutions, and more.

Great Developers Know When and How To Refactor Rails Code

If it ain’t broke, don’t fix it.

It’s a well known phrase, but as we know, most of the human technological progress was made by people who decided to fix what isn’t broken. Especially in the software industry one could argue that most of what we do is fixing what isn’t broken.

Fixing functionality, improving the UI, improving speed and memory efficiency, adding features: these are all activities for which it is easy to see if they are worth doing, and then we argue for or against spending our time on them. However, there is an activity, which for the most part falls into a gray area: refactoring, and especially large scale refactoring.

14-minute readContinue Reading
Radan Skoric

Radan Skoric

Radan is a senior full stack developer who splits his time between writing advanced, but simple, Ruby code and leading a team of developers.

Credit Card Hacks: With Some Tricks, Hacked Card Numbers Are Still, Still Googleable

In 2007, Bennett Haselton revealed a minor hack with major implications: querying ranges of numbers on Google would return pages of sensitive information, including Credit Card numbers, Social Security numbers, and more. While Haselton’s hack was addressed and patched, I was able to tweak his original technique to bypass Google’s filter and return the same old dangerous results.

6-minute readContinue Reading
Toptal emblem

Toptal Talent Network Experts

A Step-by-step Tutorial for Your First AngularJS App

If you haven’t tried AngularJS yet, you’re missing out. The framework consists of a tightly integrated toolset that will help you build well structured, rich client-side applications in a modular fashion—with less code and more flexibility.

One of the reasons I love working with AngularJS is because of its flexibility regarding server communication. Like most JavaScript MVC frameworks, it lets you work with any server-side technology as long as it can serve your app through a RESTful web API. But Angular also provides services on top of XHR that dramatically simplify your code and allow you to abstract API calls into reusable services. As a result, you can move your model and business logic to the front-end and build back-end agnostic web apps. In this AngularJS tutorial, we’ll do just that, one step at a time.

11-minute readContinue Reading
Raoni Boaventura

Raoni Boaventura

Raoni’s BCS and decade of web-dev experience have seen him lead and contribute to a wealth of projects using RoR, JS, and PHP, among others.

Why Writing Software Design Documents Matters

If you’re an experienced developer, you’ve probably progressed from being a humble tester to a senior developer, and if you’re a freelancer, you’ve made another leap, perhaps the biggest of them all, when you started working with clients directly.

Some clients aren’t in the software business; they’re in an entirely different industry that needs a piece of software, and they don’t have a clear and precise vision of what they want from you. This is a far greater challenge than it appears, and here’s what you can do to improve client communication and project documentation.

8-minute readContinue Reading
Christopher J Fox

Christopher J Fox

Chris has a BSc and 25+ years of development experience, including senior engineering positions at Microsoft and RealNetworks.

Hunting Java Memory Leaks

Inexperienced programmers often think that Java’s automatic garbage collection frees them from the burden of memory management. This is a common misperception: while the garbage collector does its best, it’s entirely possible for even the best programmer to fall prey to crippling memory leaks.

In this post, I’ll explain how and why memory leaks occur in Java and outline an approach for detecting such leaks with the help of a visual interface.

14-minute readContinue Reading
Jose Ferreirade Souza Filho

Jose Ferreirade Souza Filho

Jose is a developer with 12+ years of experience in the development, migration, and integration of software and efficient architectures.

Why Are There So Many Pythons? A Python Implementation Comparison

Python is amazing.

Surprisingly, that’s a fairly ambiguous statement. What do I mean by ‘Python’? Do I mean Python the abstract interface? Do I mean CPython, the common Python implementation? Or do I mean something else entirely? Maybe I’m obliquely referring to Jython, or IronPython, or PyPy. Or maybe I’ve really gone off the deep end and I’m talking about RPython or RubyPython (which are very, very different things).

While the technologies mentioned above are commonly-named and commonly-referenced, some of them serve completely different purposes (or at least operate in completely different ways). In this post, I’ll start from scratch and move through the various Python implementations, concluding with a thorough introduction to PyPy, which I believe is the future of the language.

10-minute readContinue Reading
Charles Marsh

Charles Marsh

Charlie (BCS, Princeton) has been an engineering lead at Khan Academy, then Cedar, and nowadays does ML at Spring Discovery.

How to Build an Infinite Runner on iOS: Cocos2D, Automation, and More

Building games for the iOS platform can be an enriching experience in terms of both financial and personal growth. Recently, I deployed a Cocos2D-based game to the App Store. In this post, I’ll explain the process behind developing games for iOS, from Cocos2D through to publishing.

9-minute readContinue Reading
Alexey Zankevich

Alexey Zankevich

Alexey is a full-stack developer and architect. He has expert knowledge of Python and is strong in Java and Objective-C.

The Trie Data Structure: A Neglected Gem

From the very first days in our lives as programmers, we’ve all dealt with data structures: Arrays, linked lists, trees, sets, stacks and queues are our everyday companions, and the experienced programmer knows when and why to use them.

In this article we’ll see how an oft-neglected data structure, the trie, really shines in application domains with specific features, like word games.

9-minute readContinue Reading
Anna-Chiara Bellini

Anna-Chiara Bellini

When Anna started coding at a young age. Since then, her career has spanned many different projects and programming technologies.

Scaling Play! to Thousands of Concurrent Requests

Web Developers often fail to consider the consequences of thousands of users accessing our applications at the same time. Perhaps it’s because we love to rapidly prototype; perhaps it’s because testing such scenarios is simply hard.

Regardless, I’m going to argue that ignoring scalability is not as bad as it sounds—if you use the proper set of tools and follow good development practices. In this case: the Play! framework and the Scala language.

5-minute readContinue Reading
Paulo "JCranky" Siqueira

Paulo "JCranky" Siqueira

Paulo’s 19+ years in software development have seen him switch from being a Java senior to a Scala powerhouse. He also has a BCS degree.

Toptal Engineering Expert

Gabriel is a highly efficient and reliable professional who possesses a broad skill set for web application development. He's been working on a range of products and clients—from working on scalability problems in production engineering teams at Shopify and Autodesk to launching new applications for startups. Most of his work consists of leading technical teams, by creating an easy development environment, fixing technical debts, providing best practices code examples, and mentoring devs.
Read more

Previously At

Shopify

World-class articles, delivered weekly.

By entering your email, you are agreeing to our privacy policy.

Join the Toptal® community.