Credits : Thestar

Credits : Thestar

 

KOTA KINABALU: Six friends here were behind the bits and bytes of the 29th SEA Games.

They produced the software that prepared starting lists, as well as printed out the results of the various events.

Software developer Adrian Nungka led the team, whose members ranged between 24 and 32 years old, and they developed the on-venue results (OVR) software from scratch; starting in April for the Games that took place from Aug 19 to 31.

His company, Adre’s IT, has done an electronic licensing system, as well as mobile apps for real estate firms.

 Adrian’s work was noticed by retired Sabah Computer Services Department director Koh Choon Kong who recommended the team to the company tasked with handling the information and communications technology aspects of the Games.

As each of the sport was unique, the team found their work challenging because it was impossible to have one template that suited all the events.

“We had to develop software for each sport and some were more difficult than others.

“In diving, for example, there were the synchronised and mixed events so we had to write software for each,” said Adrian.

Similarly, he said, the software for tabula­ting the results for rhythmic gymnastics was one of the most complicated because it involved individual and team events.

“There were many sleepless nights and it was mentally draining,” Adrian said, describing the experience.

“But it was also a rewarding experience and we learnt a lot.

“We hope there will be other similar opportunities in the future,” he added.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

 

Credits : Globenewswire

Credits : Globenewswire

SAN MATEO, Calif., Sept. 05, 2017 (GLOBE NEWSWIRE) — Nlyte Software today announced the appointment of Enzo Greco as the company’s Chief Strategy Officer. In his new role, Greco will focus on new strategic product and market initiatives and expand Nlyte’s leading infrastructure management software solutions.

Greco brings over 20 years of experience developing software solutions. Prior to Nlyte, Greco held vice president and general manager roles for the software unit of Vertiv (previously Emerson Network Power) where he managed the complete data center software suite, including Trellis and Aperture.  Prior to Vertiv, Greco held a wide range of strategic positions at AT&T and IBM. As an entrepreneur, Greco founded and expanded several software companies, the largest of which, Planetworks, was acquired by IBM.

“I have always respected Nlyte’s market leadership in infrastructure management software – echoed recently by the top industry analysts,” said Enzo Greco, Chief Strategy Officer for Nlyte. “I am now very excited to join Nlyte and be part of a dedicated team of innovative technologists committed to producing proven commercial-ready software that continues to have a 98% customer retention rating.”

Nlyte will leverage Greco’s extensive technical and market expertise to further reinforce the company’s leadership and expand into adjacent markets.

“Nlyte continues to invest in and expand our software functionality and the value we provide our customers across the globe,” said Doug Sabella, CEO and President of Nlyte. “We are delighted to have Enzo join our experienced executive team and are confident that Nlyte will benefit from his deep industry expertise while he will enjoy working with an organization dedicated to creating commercial software, ensuring the success of its customers.”

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Japantimes

Credits : Japantimes

 

For managers employing workers with mental disorders, it is vital to detect early signs of changes in their emotional and physical well-being and take action before the symptoms become prominent.

A software program developed by a small website design company in Osaka is intended to enable workers themselves assess their conditions while allowing employers to anticipate changes and adopt flexible arrangements beforehand.

The software, called SPIS, was created by Okushin System to support the company’s policy of promoting employment of people with mental illness.

The system has drawn interest from psychiatrists as a possible tool to prevent work-related mental illnesses from worsening.

The company’s president, Manabu Okuwaki, has actively recruited people with mental disorders and found that the conditions of such people tend to change suddenly and drastically.

The finding led Okuwaki to start monitoring these workers systematically, using an online work report into which employees are advised to enter their conditions on a daily basis.

They are asked to answer a series of questions, including whether they have done all they can to avoid mistakes and if they have slept well through to the morning, in a four-point scale from “bad” to “good.”

The software displays the data from the self-evaluation graphically, so changes in their emotional state and health can be seen at a glance.

Okuwaki found through the monitoring that the workers’ conditions tend to flare up following certain symptoms, such as headache, stomachache and auditory hallucination.

The online report system was developed based on views and opinions presented by employees, especially those with mental disorders.

Judging that it had universal value, Okuwaki decided to sell the monitoring system to other companies. He believes that if quick and adequate measures are taken in response to changes in their conditions, workers with mental disorders will not have to quit their jobs.

Consequently, companies can reduce staff turnover, Okuwaki said.

Risa Urata, 30, has been diagnosed with a developmental disorder that makes social interaction or communication with other people difficult.

She started working at Okushin System two years ago and has been in charge of developing the company’s website.

At her previous companies, Urata frequently experienced uneasiness and depression whenever she felt poorly, and stopped going to work.

She said her SPIS data collected at Okushin System showed she experiences a difficult time about every three months.

“I never realized that it comes in a cycle,” she said.

The company now reduces her workload based on the data.

Since 2013, the Osaka Prefectural Government and various municipalities have subsidized business projects undertaken using SPIS.

Established in 2000, Okushin System has received numerous honors for actively employing people with mental disabilities, including an award from Osaka Prefecture.

The federation of associations supporting employment of people with mental illness has mounted a campaign to spread the software at private companies. Roughly 70 companies, mainly in the Kinki region, have introduced the system.

A survey of about 90 workers who used SPIS for three years through fiscal 2015 found that about 80 percent of them remained at work 18 months after they started using it.

Experts feel it could be worthwhile to share workers’ SPIS data with third parties, such as therapists outside their companies, as well as their supervisors.

“Most mental problems at work get worse if relations between workers and their supervisors are poor,” said Teruhiko Higuchi, a psychiatrist and director of the Japan Depression Center. “Although it is too early to talk about its effects, SPIS could work to prevent employees from developing a major mental illness.”

The center’s Rokubancho Mental Clinic in Chiyoda Ward, Tokyo, has started using SPIS to support employees with mental illness.

“We need to search for a more effective way to use the system while confirming its positive results,” Higuchi said.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Cnbc

Credits : Cnbc

 

Britain’s Aveva Group said on Tuesday it had agreed to combine with Schneider Electric‘s software business to create a London-listed leader in industrial software worth more than 3 billion pounds ($3.88 billion).

France’s Schneider will take a 60 percent stake in the enlarged group under the terms of the deal, which is structured as a reverse takeover, the companies said.

The tie-up comes after two abandoned attempts to agree a deal in 2015 and last year.

 Chief Executive James Kidd said the deal would give Aveva a bigger presence in sectors such as food and beverages and pharmaceuticals as well as in its strongholds in oil and gas, mining and marine.

It will also benefits from Schneider’s bigger position in North America, he said.

The collapse of the first tie-up attempt was blamed by Aveva on the “highly complex structure of the proposed transaction” and worries about “significant integration challenges”.

Kidd said on Tuesday that the agreement was “much more advanced” this time and he was sure it would get over the line.

He said Schneider had done more work to separate its software assets ahead of the deal.

Under the terms of the deal, Aveva shareholders will receive 550 million pounds in cash, worth around 858 pence per share, from Schneider and another 100 million pounds, worth around 156 pence per share, from cash on Aveva’s balance sheet.

Shares in Aveva jumped 24 percent to 23.78 pounds while Schneider Electric was up 1.2 percent at 69.75 euros.

Details of the deal were reported late on Monday.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Prnewswire

Credits : Prnewswire

 

PHILADELPHIAAug. 22, 2017 /PRNewswire/ — Stuzo, a leading digital product innovation firm focused on connected commerce within fuel, convenience, QSR, and other retail categories, announced today that it has been ranked #1 by Clutch in both mobile app development and custom software development in the greater Philadelphia region. Clutch is an impartial 3rd party company that interviews real clients, collects data, compares competitors, and publishes rankings to help companies find market-leading firms.

“We are humbled and honored to be named the industry leader in greater Philadelphia,” said Aaron McLean, COO, Stuzo. “This is a testament to everyone on our team that works incredibly hard to make all of our clients successful. The kudos go directly to them.”

Stuzo, celebrating its 10th year in business, designs and builds innovative digital products that drive business outcomes for clients such as Sunoco, P&G, Mastercard, Swarovski, Verizon, Facebook, SEI, and many other world-renowned companies.

About Stuzo

Stuzo is a leading digital product innovation company focused on Convenience Store, Fuel Retail, QSR, and other retail industries, headquartered in Philadelphia with offices in New York City and Europe. Stuzo helps organizations humanize technology by designing, defining, and delivering digital products that drive business outcomes.

Stuzo Fuel Retail and Convenience Assets

Stuzo Connected Application AssetsSM: a set of prebuilt, market-tested app components for iOS, Android, Connected Car, and Wearables, integrated with a set of pre-designed UX flows and UI components utilizing Apple Human Interface Guidelines and Google UX best practices to deliver mobile commerce experiences that are pre-optimized for performance, ease of use, and a great consumer experience.

Stuzo Open Commerce for Conexxus: an open plugin based reference architecture for the rapid delivery of a purpose built MPPA and development of mobile commerce solutions for fuel retailers and convenience stores, empowering a mobile transaction at the pump and in store.

Stuzo QuickStart for Conexxus: an open simulator and dashboard for rapid understanding and testing of Conexxus compliant integrations to mock site systems, payment providers and processors, loyalty providers, mobile food ordering, and virtual mobile app.

C-Store Digital Ranking Platform: a ranking platform delivering the most comprehensive set of research on the digital capabilities of fuel retailers and convenience store operators. Relevant data is updated on a weekly basis and syndicated across leading industry publications.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Techcrunch

Credits : Techcrunch

 

It’s happening. Bit by bit, little by little, I’m morphing from an engineer into some kind of…manager. Oh, don’t get me wrong, I still write code every day; but I find myself spending more and more time in analysis and discussion, in meetings and calls, making higher-level decisions, trying to organize teams, and worrying about strategy rather than tactics.

Of course this is no bad thing. Higher-level decisions tend to have far more impact than the nitty-gritty of individual classes and functions. Making a team more productive has much higher leverage than just making myself more productive. But I like to think I’ve learned a few lessons from my years of writing code. I hope they’ll mostly translate to managerdom. And I hope you’ll pardon the implicit arrogance of sharing them with you:

1. There are no rules; there are only koans

Let me give you an example: DRY, aka “Don’t Repeat Yourself.” It is so well understood as a fundamental rule of software that it often justifies decisions by itself; “I did X because DRY.” It makes sense, doesn’t it? If you have two or more pieces of code which do the same thing, you are being wasteful, and furthermore, if you need to change one of them, you probably need to change the other, and you might forget, and when they get out of sync you’ll get a weird bug, and… and… and it’s obvious that you don’t repeat yourself.

And yet. After some years of applying that rule one begins to wonder about its universal applicability. Suppose you have two methods which contain the same block of code, so you pull that block out into a separate function. All too often, those methods then begin to evolve in divergent ways … so you find yourself adding more arguments to that function, and perhaps more flags to its results … and the coder who comes along next has the cognitive overhead of that separate function, with all its caller-specific arguments and results … and you realize that if you had let yourself repeat yourself, and had let those two blocks naturally grow into separate things, your resulting code would have been vastly simpler and more intuitive.

Does this mean DRY is bad? Of course not! DRY is correct. …Usually. …Under the appropriate circumstances. …Well, maybe. My personal rule of thumb is: “repeating yourself once is OK, more than once is not OK … but that depends on the context.” Because everything depends on the context. The purpose of DRY is not to DRY. If that is what you believe, grasshopper, you still have much to learn. The purpose of DRY is to make you thinkabout DRY. There are no rules; there are only koans.

(Let me reiterate: I’m talking about software. Hardware rules, in my experience, tend to actually be yes-we-mean-it rules. That’s pretty much why I got out of electrical engineering and into software.)

Consider two of my favorite “laws” of computer science. First: “There is no problem in computer science that cannot be solved by adding another layer of abstraction!” Is this true? Well, no, not literally. Is this frequently phenomenologically true? Well, actually, yeah. Does this mean abstraction is the right way to solve any problem? No it does not. It’s a koan. Brood on it.

And my all-time favorite: “The first law of optimization: don’t do it. The second law of optimization (For Experts Only): don’t do it yet.” This of course is explicitly a koan, snarkily referring itself to a law. Is it time to make your code run faster? No. Is it time to make your code run faster? Not yet. What does this mean? It means consider the time, the complexity, the cognitive overhead, the tangible results, the overall goals, the meaning of life, the purpose of human existence. It means: meditate on it, grasshopper. But not for too long. We have work to do.

2. Earn trust by trusting

This doesn’t just apply to managers, although it especially applies to managers, as trust is really the only thing of value that you have; if your fairness, your judgement, your understanding, your good faith, etc., are not trusted, then the rest of your organization will treat you as damage and route around you. Whereas if you’re a capable but untrustworthy developer, you might still have some value, although it’ll be much undercut by the effort spent riding herd on every decision you make.

The larger point is, though: a team needs to trust one another. When Natascia says, “I’ll take care of that ticket,” you have to trust that she will. When you say, “Peter can cut the build before the deadline,” you have to trust that this is true. When someone says, “Listen, I have a crazy idea,” they have to trust that they will be taken seriously and treated with respect, even if the idea is kinda crazy.

How do you build and earn trust? The answer is simplicity itself: you trust. You trust the person who says they can learn this new library and get it integrated by Monday. You trust the person who says they need to leave early and miss tomorrow’s standup because of a family thing. You trust the person who wants to take a week’s vacation a month before the hard deadline because they feel like they’re beginning to burn out. You trust the junior developer who says they’d like to take a crack at the hard problem.

You won’t always be right. Sometimes people do in fact operate in bad faith, and you need to unveil those people and let them go as soon as possible. And sometimes you will trust people who will try in good faith to succeed… and they will fail. But — counterintuitively — this is usually a win, in the long run. Because those people will remember your trust, and they will do everything they can to pay it back with interest.

3. Simplicity is much more important than elegance

I mean, I get it. I love tight, elegant code too. And I love flexible frameworks with so many levels of abstraction that they’re ready to handle, out of the box, whatever change request might be thrown at them. I like using bit vectors and bit shifts and slightly abstruse data structures and that quirky little language feature that isn’t widely known but is so useful under these particular circumstances.

But you’re not writing this code for yourself. Not even if it’s “just a prototype.” (I’ve lost track of how many of my “prototypes” have wound up in production under a few layers of paint and polish.) And you’re not just writing it to solve the current problem. You’re writing it so the next developer who comes along can use it to solve the next problem. If those five lines of code would be understood more readily if they were ten lines of code, you know what, maybe fifteen would be better.

You can try and solve it for them in advance, with a flexible framework full of abstraction! …But maybe prophecy is not your strong suit; maybe your notion of what the next problem is is completely off base. Maybe the best thing is just to make your code dead simple, with a naming convention and a coding style that makes it read almost like English. Maybe instead of adding another class, another file that the next developer has to keep open while trying to follow your flow of control, you should just do things the dumb way, the inelegant way, the simple way.

4. Momentum matters more than most things

We’ve all seen it happen. One week everyone’s checking in code, the build is visibly taking shape, features are being added every day, test coverage keeps mounting higher and higher, Slack is alive with productive ideas and solutions. And the next week … somehow … things seem to have slowed down. A decision is needed on Issue A, which has knock-on effects on Issues B, C, and D, and while people can work on D, E, and F, they aren’t part of the logical sequence of development; more assumptions have to be made, the cognitive load is higher, you have to mock out a bunch of things to get any non-mock code written at all. Somebody needs to make that decision.

Or maybe it’s not decision paralysis. Maybe all that progress you made last week was built on a false foundation of quick-hit technical debt, and you need to stop everything and go back and refactor it, and you need to do it now because the longer you wait, the worse things will get. Nobody wants to hear that. But they’ll like hearing that now better than hearing that next month. Go tell them.

Or maybe last week was too much like crunch and now everybody’s just a little burnt out. You know what? Give them a day off. A whole day off. Each. It’ll save you time in the long run, I promise.

It’s hard to define; it’s hard to measure; it’s hard to talk about. But momentum is a very real thing in software development, and its loss is a leading indicator of some kind of root trouble that needs to be addressed. Don’t ignore it, and don’t hope or pretend it will magically come back. Know the warning signs and act soon.

5. Work with people who complement you, not with people who are like you

Every time I see something about people hiring for “cultural fit,” I roll my eyes violently. You know what happens to most monocultures? They encounter a pathogen they don’t know how to deal with, and they die.

You don’t want all your developers and your designers and your QA people and your product people and your sales people and your executives to be clones of one another. You really, really don’t. Everyone has strengths and relative weaknesses. Everyone has virtues and flaws. You want to hire people for their chief strengths, and let other people’s strengths counteract their relative weaknesses.

Take me. I write code fast, I communicate well and read and write prose ridiculously fast, I’m conversant in like a dozen programming languages and frameworks at any given moment, I understand things quickly and thoroughly, I have a great breadth of experience; …and I’m a broad generalist without serious, intense, in-depth mastery of any particular field, framework, or language; I’m an architect who really benefits from others tracking all the flesh and polish that need to be added once the skeleton is constructed; and I’m so UX-blind (“Wait, you mean those fields aren’t aligned already?”) that it’s something of a running joke among my co-workers.

People like me are hard to find, and super in demand… and a company that consisted of me and nine of my clones would be completely doomed from the get-go. Oh, we’d do a lot of things really well; but it only takes one collective blind spot, one disastrous lacuna, to kill a company. Most people would concede that there are things they can’t do well, that other people probably need to take care of. These are often the same people who look for “cultural fit” and try to hire people just like them. It is to weep, and/or laugh.

6. Any decision is better than no decision

Don’t dither. When in doubt, do something. OK, this may not apply to promoting code into production, but it applies to every other aspect of software development. We work in the most hyperaccelerated industry in history. We live in a world of exponential growth. Time is not on your side. Don’t waste it.

This is as true of high-level discussions as of low-level decisions. At the high level, the dicussion “should we implement feature A, or B? Should we do it X way, or Y?” all too often lead to “Let’s think this over… let’s have a call about this next week…” or, most insidiously, “let’s research what other people have done and then talk about it again.” In rare conditions, one of those is the right answer. In most conditions, the right answer is for someone to say, “I’ll decide which one we’ll try by the end of the day, so we can start building it tomorrow.”

Even if A is ultimately the wrong answer, the decision to start building A is probably better than no decision at all. This is counterintuitive. It is also usually true. What is always true is that a very good way to understand A substantially better is to actually start building it, and that this understanding will likely lead you to a better decision.

If anything this is even more true of low-level decisions. “The spec doesn’t say how we should handle error condition X, or what the error message should be for this.” (Specifications often seem to be written for an aspirational utopia in which error conditions are as rare as unicorns.) “I know, I’ll just stick a comment in and go back and ask what they want done in that case!”

This is tempting. No one can accuse you of doing anything wrong, if you do this. But it is the wrong thing to do. Better to go ahead and make some decision about this yourself, even if it is crude and ugly, then to do nothing and go back and ask about it. Let them iterate on work you’ve already done and lessons you’ve already learned, even if you know it’s not great, rather than making them start from cognitive scratch. They and the project will both be better for it. Be quick to experiment … and quick to change course.

7. Be humble, but swagger

You don’t have all the answers. Even I, and I say this with what must by now be evident reluctance, don’t have all the answers. Heck, I don’t even have most of ’em, though I feel moderately confident that given sufficient time and effort I could figure most of them out…

…And so could you. We can’t all be Jeff Dean, or Satoshi Nakamoto, or Margaret Hamilton. We work in a field rife with both real geniuses and ersatz self-proclaimed ones, where nobody knows everything and everybody is acutely aware of all the things they don’t know.

Fortunately — for the most part — we’re not scientists. Our job is not to make breakthrough discoveries. Our job is to put others’ discoveries into practice; to make things work, hopefully in the service of something that people actually want. Maybe you’ll never invent anything like a Bloom filter or a Merkle tree. But neither will the vast majority of the people you work with, and besides, that’s not the point; the point is to use Bloom filters and Merkle trees, and/or the even easier layers of abstraction built atop them, to actually get shit done.

So while it’s wrong to assume that you know more than the person across the table, that their counterintuitive idea is crazy, that their language of choice is terrible — it’s also wrong both to assume that they know more than you, or, even if they do, that that matters. The world is full of smart, knowledgeable people who are for some mysterious reason incapable of actually getting shit done. (It’s a cheap joke, but what the hell, I’m going to make it: that’s why we have academia.)

So if you’re a person who gets shit done, don’t be humble when faced with a dizzying array of theoretical knowledge, and/or when faced with a kindred spirit who happens to get even more shit done than you. At the end of the day it’s the developers in the proverbial trenches, building and testing and deploying code, who actually make things happen; and, speaking as someone who finds himself drifting away from those trenches, you have every right to look down just a little bit on those who are not there digging with you, and to greet all those who are as collaborators rather than superiors.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Infoworld

Credits : Infoworld

 

Fast, safe, easy to write—pick any two. That’s been the state of software development for a good long time now. Languages that emphasize convenience and safety tend to be slow (like Python). Languages that emphasize performance tend to be difficult to work with and easy to blow off your feet with (like C and C++).

Can all three of those attributes be delivered in a single language? More important, can you get the world to work with it? The Rust language, originally created by Graydon Hoare and currently sponsored by Mozilla Research, is an attempt to do just those things. (The Google Go languagehas similar ambitions, but Rust aims to make as few concessions to performance as possible.)

What makes Rust a better development language

Rust started as a Mozilla research project partly meant to reimplement key components of the Firefox browser. A few key reasons drove that decision: Firefox deserved to make better use of modern, multicore processors; and the sheer ubiquity of web browsers means they need to be safe to use.

But those benefits are needed by all software, not just browsers, which is why Rust evolved into a language project from a browser project. Rust accomplishes its safety, speed, and ease of use through the following characteristics:

Rust satisfies the need for speed. Rust code compiles to native machine code across multiple platforms. Binaries are self-contained, with no runtime, and the generated code is meant to perform as well as comparable code written in C or C++.

Rust won’t compile programs that attempt unsafe memory usage. Most memory errors are discovered when a program is running. Rust’s syntax and language metaphors ensure that common memory-related problems in other languages—null or dangling pointers, data races, and so on—never make it into production. The compiler flags those issues and forces them to be fixed before the program ever runs.

Rust controls memory management via strict rules. Rust’s memory-management system is expressed in the language’s syntax through a metaphor called ownership. Any given value in the language can be “owned,” or held/manipulated, only by a single variable at a time.

The way ownership is transferred between objects is strictly governed by the compiler, so there are no surprises at runtime in the form of memory-allocation errors. The ownership approach also means there is no garbage-collected memory management, as in languages like Go or C#. (That also gives Rust another performance boost.) Every bit of memory in a Rust program is tracked and released automatically through the ownership metaphor.

Rust lets you live dangerously if you need to, to a point. Rust’s safeties can be partly suspended where you need to manipulate memory directly, such as dereferencing a raw pointer à la C/C++. The key word is partly, because Rust’s memory safety operations can never be completely disabled. Even then, you almost never have to take off the seatbelts for common use cases, so the end result is software that’s safer by default.

Rust is designed to be easy to use. None of Rust’s safety and integrity features add up to much if they aren’t used. That’s why Rust’s developers and community have tried to make the language as useful and welcoming as possible to newcomers.

Everything needed to produce Rust binaries comes in the same package. External compilers, like GCC, are needed only if you are compiling other components outside the Rust ecosystem (such as a C library that you’re compiling from source). Microsoft Windows users are not second-class citizens, either; the Rust tool chain is as capable there as it is on Linux and MacOS.

On top of all that, Rust provides several other standard-issue items you’d expect or want:

  • Support for multiple architectures and platforms. Rust works on all three major platforms: Linux, Windows, and MacOS. Others are supported beyond those three. If you want to cross-compile, or produce binaries for a different architecture or platform than the one you’re currently running, a little more work is involved, but one of Rust’s general missions is to minimize the amount of heavy lifting needed for such work. Also, although Rust works on the majority of current platforms, it’s not its creators’ goal to have Rust compile absolutely everywhere—just on whatever platforms are popular, and wherever they don’t have to make unnecessary compromises to do so.
  • Powerful language features. Few developers want to start work in a new language if they find it has fewer, or weaker, features than the ones they’re used to. Rust’s native language features compare favorably to what languages like C++ have: Macros, generics, pattern matching, and composition (via “traits”) are all first-class citizens in Rust.
  • A useful standard library. One part of Rust’s larger mission is to encourage C and C++ developers to use Rust instead of those languages whenever possible. But C and C++ users expect to have a decent standard library—they want to be able to use containers, collections, and iterators, perform string manipulations, manage processes and threading, perform network and file I/O, and so on. Rust does all that, and more, in its standard library. Because Rust is designed to be cross-platform, its standard library can contain only things that can be reliably ported across platforms. Platform-specific functions like Linux’s epoll have to be supported via functions in third-party libraries such as libc, mio, or tokio.
  • Third-party libraries, or “crates.” One measure of a language’s utility is how much can be done with it thanks to third parties. Cargo, the official repository for Rust libraries (called “crates”) lists some ten thousand crates. A healthy number of them are API bindings to common libraries or frameworks, so Rust can be used as a viable language option with those frameworks. However, the Rust community does not yet supply detailed curation or ranking of crates based on their overall quality and utility, so you can’t easily tell what works well.
  • IDE tools. Again, few developers want to embrace a language with little or no support in the IDE of their choice. That’s why Rust recently introduced the Rust Language Server, which provide live feedback from the Rust compiler into an IDE such as Microsoft Visual Studio Code

     

    This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

 

Credits : Thenextweb

Credits : Thenextweb

 

Software might be eating the world, but most businesses are sitting out the feeding frenzy because they can’t release software fast enough to meet changing customer needs.

No matter what kind of business you’re in — technology, consumer goods, manufacturing — companies are driving engagement with consumers through applications across web, mobile, point-of-sale and more. The faster an organization can improve its software, the more it can drive loyalty for itself and build switching costs for the competition. According to one study, high-performing IT units with faster software releases are twice as likely to achieve their goals in customer satisfaction, profitability, market share and productivity.

Acknowledgement of this has fueled a headlong rush toward what software developers call “continuous delivery.” Whereas in the past organizations would spend months or even years perfecting a release full of new features, continuous delivery allows teams to make incremental changes to software and send them live as each improvement is made.

It’s a process most technology departments aspire to but only a fraction have achieved. According to a recent survey by Evans Data, 65 percent of organizations are using continuous delivery on at least some projects, but only 28 percent are using it for all their software. Among non-SaaS companies, that proportion is just 18 percent.

These leading organizations recognized years ago that they needed to speed up the development process and made organizational changes accordingly. Now they’re eating the competition’s lunch while everyone else is catching up.

The small percentage of organizations that are continuously delivering software lean heavily on automation to speed development and simplify handoffs between developers, QA testers, operations staff and so on. But continuous delivery isn’t an end-state — it’s a process of constant improvement, meaning even the highest performing teams can’t rest on their laurels.

So what comes next?

The future of application development depends on using artificial intelligence (AI) within the continuous delivery model. As a data scientist, I see automation and AI as being on the same spectrum, with automation referring to simpler, rule-based solutions and AI being more complex. A basic automated system might observe something relatively static that a human does over and over, record that action and then repeat it automatically. An AI engine, on the other hand, can generalize a range of actions, learn and anticipate necessary behavior to improve a system.

For example, current automation technology can make it easier to deploy and automatically choose from a set of website modifications for A/B testing. AI could not only do that faster, but also use semantic understanding of page structure to suggest its own novel changes that make the most sense for the user.

We’re at the precipice of a new world of AI-aided development that will kick software deployment speeds — and therefore a company’s ability to compete — into high gear.

“AI can improve the way we build current software,” writes Diego Lo Giudice of Forrester Research in a recent report. “It will change the way we think about applications — not programming step by step, but letting the system learn to do what it needs to do — a new paradigm shift.”

The possibilities are limited only by our creativity and the investment organizations are willing to make. As Lo Giudice notes, using AI within the development tool chain is largely “still science fiction.” But progress is afoot.

At my company, our goal is to help developers test their code more swiftly. We do that by crowdsourcing QA testers, and we use AI both to manage those workers and to rank their reputation, so we can prioritize work for clients based on those findings. Other examples are cropping up every day. Take the progress we’ve seen in AI-powered project management assistants, which prod developer teams to make better decisions based on current activities and deliverables.

The industry should expect more of this process-oriented AI with the recent release by Amazon Web Services of Lex, the natural language processing framework that powers Amazon Alexa. Lex enables developers to build conversational interfaces for their applications. It’s not a stretch to think that creative teams could use Lex within the internal tools developers use to make those applications.

But that’s just the tip of the iceberg. AI could play a bigger role in test automation, for example. And for security stress testing, Netflix made a huge contribution by releasing to open source an automated engine called Chaos Monkey, which it uses to randomly close down application environments to see how well its systems failover and keep things running. What if something similar were powered by an AI engine that explored stress tests more systematically? AI could also be used to configure servers, making small changes that optimize performance based on the applications and workload.

AI could also play a huge role in software documentation. The more incremental an organization gets about improving features and components, the harder it is to keep track of those changes and how they’re made. The same kind of natural language processing used by Google to automate news writing could be used to document feature change lists, API technical details and processes used by DevOps teams.

As with automation, AI won’t put developers out of a job, but it will force them to evolve their skillsets to make better use of machine learning in the development process. To achieve get closer to that future, businesses need to invest in the data science brain trust required to support it. And they need to start collecting the data necessary for training effective AI systems.

There’s a long road to achieving these efficiencies, but smart businesses are moving now to incorporate AI in their software development. The pace of technology continues to accelerate, and consumers have come to expect the best and latest experiences a business can provide. If software is eating the world, automation and AI will be the stakes for a seat at the table.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Engineering

Credits : Engineering

 

If you’re a software engineer, chances are that at some point you considered Silicon Valley for your career. Even if you aren’t considering moving there, it’s a good bet that the Valley is still the first place that comes to mind when you wonder where the best software engineering jobs are.

While it’s true that Silicon Valley and the Bay Area in general offer enticing salaries—an average of $110,554 USD per year, according to Glassdoor—many engineers may not consider the effect that cost of living has on this salary.

This is the focus of a recent study by CodeMentor, which analyzed the “real earnings” of software engineers in 43 cities across the U.S. and around the world to determine the best places for them to work.

“Real earnings” in this case is the value of the salary software engineers earn given the essential costs of living associated with each city, such as rent or mortgage payments, taxes and social security.

The CodeMentor report used a “real earnings formula” to calculate average earnings for a software engineer who lives alone in the city. That formula is:

Real Earnings = Income – Taxes – Social Security – Living Costs – Rent

The biggest effect on real earnings came from taxes and rental costs, both of which vary significantly from city to city.

So which cities are the most affordable, resulting in the highest real earnings for software engineers?

Top U.S. Cities for Software Engineering Salaries

Seattle comes out as the clear winner in the report. The presence of top-tier tech companies such as Microsoft and Amazon serves to put wages on par with Silicon Valley, but the costs for rent are significantly lower – meaning more money in your bank account each month.

Also at the top of the list are Phoenix, Austin and Houston, which offer real earnings above $30,000.  However, these cities are still growing their software industries, and so have relatively modest numbers of software engineering job openings in their job market.

Interestingly, New York and Washington D.C. sit at the bottom of the list, even though these two cities have the largest number of openings in the job market.  This is largely due to the astronomical cost of rent – averaging as high as $3,000 per month – leaving software engineers working in these cities with real earnings in the $15,000 – $18,000 range.

International Cities with Highest Real Earnings for Software Engineers

The report also analyzes cities outside the U.S., for those who may be considering working abroad.  Oslo and Tel Aviv offer the highest real earnings in this group, at an average of $28.1K and $22.9K respectively. However, they also have small – albeit, growing – job markets.

Three Canadian cities also make a good showing: Toronto, Montreal and Vancouver, with real earnings in USD between $16 – $19K, and job markets that are moderate and increasing.

The full report is available and includes a more detailed breakdown of the calculations, methodology and additional analyses of affordability and quality of life across the 43 cities featured.

While salary – or real earnings – alone shouldn’t be the only deciding factor in choosing where you want to pursue your career in software engineering, having this information can help you plan for success.

For more tips on finding a great engineering career, check out Winning Strategies to Land That Great Engineering Job.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Business People Celebration Arms Raised Ecstatic Concept

Business People Celebration Arms Raised Ecstatic Concept

 

It has never been more challenging than today to build a successful software development company. Even just a few years ago, companies would offer breakfast at the office or put their people on training to hone and develop their skills. Today, however, we are in a different world. In order to attract and retain top talent, we are hiring professional business coaches and organising work weeks at the seaside.

Building the core dream team of qualified and passionate IT people

Team is always number one! Having the right core team is what will set you on the path to success! As a CEO of Dreamix – a software company for Java and Angular development – I feel confident saying that the CTO is the most important role in any IT company. Moreover, he or she doesn’t have to be that crazy geek who can code anything you name. On the contrary – you need a leader who inspires people and can attract the best experts to your company.

Our CTO, Angel (yes, he is a real angel!), has been a true blessing for us. By the time he started the company, he was teaching Java Development Technologies at a local university. Having someone well-known in the IT community is invaluable. Having such a person means he is dedicated to growing experts, not just taking the first person he finds and allocating him or her to a project. From our experience with Angel, people recognise and value his attention and care a great deal!

Focus on key technology or business solutions

There is a perennial debate: should you concentrate on technology or business solutions? For us, technology comes first. We have decided to focus on Java backend and web solutions. We don’t build any .Net or smartphone applications, nor do we do web design. We even hired an external company to build our new website because we do not take on any web design projects (yes, some people have found it funny that an IT company does not implement their own website).

The mantra ‘anyone in the company can do anything’ works only when you first start out. Once you begin to be compared with world class players in a technology/business vertical, nobody will believe that you, going into the jungle holding a Swiss Army knife, are better than someone going in holding a machete.

Also from my experience, when you have people with very different skillset, you will have more people sitting on the bench, thus lower your profit margin. This is because you cannot get sales people to look for all the different types of technologies/projects. And following Murphy’s law, once you have a free Ruby developer you will instantly start receiving Java and C# requests, but no Ruby ones.

Establish a tough interview process

Once you have the core team, you should only allow the right people join the company. You will need to conduct both a tech interview and a ‘cultural fit’ interview (you can read more about culture below). A tough interview is good for two things:

  • It helps you hire the strongest experts. You need to make sure you hire A Players. Because A Players make for an A Company;
  • It makes for good PR. Once you turn down someone with ten years’ experience because his multithreading skills are poor, everyone in the city will hear about it. And guess what? Strong candidates will be hungry to see how they will rank in your interview process.

Although you might get only super strong engineers, your company might still not be in good shape, since we all know that a great deal of building software is actually communicating with the stakeholders. That is why we introduced a second stage in our interview process – “Culture Fit” interview. During the interview we ask potential candidates about what initiatives they have started on their own, how have they contributed to the last company they worked with, how do they help their colleagues grow. This makes sure the engineers you are selecting will fit in the culture, but also are good communicators and team players.

Build a partnership and business development network

No business is bigger than its clients and partners. As a nearshore outsourcing software development company, our clients come from different countries and sometimes even different continents. This means we need to focus on staying close to our clients. That is why we have built partnerships with software development companies in various countries, including the UK, Switzerland, Germany and the USA. Having great partnerships will give you access to interesting clients and projects. If you deliver the high quality software, you will soon become the number one option for them. However, have in mind this is tough process that requires a lot of dedication.
From experience, companies will not trust you in the beginning, at least until you have shipped 1 project for them. For example, we started a project with a London based consultancy company by sending 1 of our consultants onsite. Our expert did a great job and delivered the project in no time, showing that he was super proficient with Java and Integration technologies. Shortly after, the partner was calling us for additional small project. Although it required traveling to the countryside in Wales, we accepted the challenged and went there to spend several weeks. The project was a tough one, included a lot of refactoring of old applications, and although it was far from “the dream project”, we put a lot of effort and dedication and delivered it in a way, that exceeded the initial expectations.

After these first projects together, it was really easy to expand the collaboration and talk about future opportunities. That is why I suggest you to focus on starting with small project, deliver the right result and then once you are in the trust zone, it is inevitable that you land a good and long-lasting contract.

Company culture and why it is important

Company culture means what are the values you believe in and why you follow them and what initiatives you create to support them. Here the credit goes to my partner Stoyan, who has done a great job to establish a great culture in Dreamix – you can read more about it in his blog “Dreamix: Why Is Company Culture So Important?
In short, what you need to set is:

  • values of your company – both internal and external. Internal are the ones that help you people work better and the external are the ones which attract/retain your clients
  • Initiatives to support them – if your value is to be great in emerging technologies, then create a bi-weekly event where each of the colleagues presents a new framework/technology/startup company. If you want to be great consultancy, invite famous consultants to present what makes them great.
  • Find ways to promote your culture – you can write blogs, make videos or organize events to showcase what you have achieved in this direction

Having a good company culture benefits you in many ways. For example in my experience when  the management of the company gives personal attention to every team member with weekly face to face meetings, understanding when there are personal issues, etc. people find great satisfaction in their workplace and hence they recommend many friends for new positions. By also adding bonuses for recruited friends, we spend very little on recruitment and can focus on making our company even better, having more resources.

Keep in pace with the new technologies

Being a technology company at a time when technology focus shifts every five years means you need to be constantly on the move, adapting to these changes.

When we started eleven years ago, the RIA (Flash) technologies were widely spread. Nowadays, we are migrating Flex applications to Angular. Had we decided to stick with the old technologies, we would now be supporting old applications; by the next technological shift, we would find ourselves out of business. Instead, we follow the trends and currently, we are even looking to establish an AI department.

A funny story is that in the beginning of the “JavaScript frameworks” hype, I was not a strong believer in it. However, some of our key engineers were super keen on it. Eventually one of our core expertise became JavaScript frontend using AngularJS & Angular, because several of our key developers started experimenting with it, way before it became a common trend.

After getting experience with it, we started doing internal trainings and lectures and once we were professionals with it, we started blogging and spreading the knowledge. The moral of the story is that you need to rely on your tech people – just because you are CEO does not mean you are immune to missing tech trends and business opportunities, that others might have spotted easily.

Keep an eye on the bottom line

Being good at technology does not create instant success. Delivering great projects but making no profit is a dead end. At the same time, as in every business, you need to be able to provide your most cost-effective option. We have created our Business Intelligence Dashboard which monitors our income, expenses, and profit. This helps us:

  • Identify which projects are more profitable;
  • Keep an eye on expenses;
  • Stay competitive by knowing your minimum daily rates;

We calculate this by keeping track of all metrics in the company: salaries, social benefits, rent, sales cost, internal initiatives, trainings, sick leaves, holidays. Additionally, in this way we know the budget of each department, so for example when we want to increase the sales effort, we know how much exactly we want to invest and from where you can cut a bit in order to compensate.

These seven points come from eleven years of experience and are integral to building a great software development company. However, I am sure you have your own secrets or ideas what can make your company stand out from the crowd – I am really looking forward to seeing them in the comments below!

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.