Skip to main content

Posts

Showing posts from 2017

Perlito - 4 Years On

Perlito, the open source compiler collection that implements a Perl5 and a Perl6 compiler has just launched a brand new Java backend. It seemed a good time to catch up with the project by talking to its lead contributor, Flavio Glock.

Last time I interviewed Flavio Glock about Perlito was back in 2013 when the project was in its first steps. At that time Perlito could compile Perl 5 or Perl 6 programs into various backends,  including JavaScript, Python, Ruby and Go, but it was also designed with extensibility from the ground up so it could be further extended to other backends in the future.

Well this time has come, with Flavio just announcing a brand new Java backend! In those 4 years the project has really taken off, a lot has changed, and given the opportunity of this new and great development I thought that a follow up was in order.

Flavio was once more deeply insightful and provided links to three very interesting video presentations on the topic that took place du…

AWS and Ionic Team Up In Starter Project

Amazon is quick in recognizing that just offering support for a number of popular programing languages is not enough to lure hoards of developers to the platform. That's why we are seeing a move towards wrapping its AWS services with greater user-friendliness.

The start was made with the introduction of CodeStar, which aimed to simplify the setting up of a project's AWS infrastructure, especially  with regard to policy and authorization, as we examined in CodeStar to Simplify Development On AWS. 

It continues this trend with the release of the open source Ionic AWS starter project Mobile Web and Hybrid Application which aims to act as a skeleton, or boilerplate, Ionic application tweaked in such a way to give developers a headstart in configuring their mobile Ionic front-end applications in relation to an AWS backend.

full article on i-programmer

Three Tips for the Linux Shell Addict

This time around we have three great tips for the Linux shell addict, three sites that will increase your productivity and save valuable time in your daily interactions with the shell.

The first one is ok-b.org. It's a shell snippet search engine where you get to  describe the task you are after in natural English and in return be presented with closely related snippets.

For example, in looking up "How to list only files?", will bring up:
Bash: How to list only files?
find . -maxdepth 1 -type fls -l | egrep -v '^d'ls -l | grep -v '^d'
List only common parent directories for files
read -r FIRSTLINE
DIR=$(dirname "$FIRSTLINE") while read -r NEXTLINE; do
  until [[ "${NEXTLINE:0:${#DIR}}" = "$DIR" || "$DIR" = "/" ]]; do
    DIR=$(dirname "$DIR")
  done
done echo $DIR
How to list files in directory using bash?
for file in /source/directory/*
do
    if [[ -f $file ]]; then
        #copy stuff ....
    fi
done

f…

Codetracer - Have Your Code Peer Reviewed

Codetracer is a new free service for coders who seek wisdom through brainstorming when stuck in writing their code.

Here's how it works - you post the snippet of code that puzzles you on the forum, annotate with inline comments the specific lines that give you the trouble, provide a general description of the problem and wait for help from the hosts or any peers, i.e. any interested member subscribed to the service.
Let's see an example. The member a.osman had the following issue:

"What i want to do is to create static method in a class that convert any json type to any HashMap. More details on lines comments."  full article on i-programmer.info

Who to blame? Scapegoating Encryption

Blaming everything on encryption is a recurring event. Whenever something bad happens that the intelligence services have no control over, it's because the encryption is at fault.
The latest outcry against it was UK Home Secretary Amber Rudd's take on What's Ups end-to-end encryption arguing that Britain’s intelligence services must have:

“the ability to get into situations like encrypted WhatsApp”
adding to the voices supporting the weakening of encryption or the planting of backdoors to popular consumer-level applications.

In stark contradiction to the Home Secretary's fruitless political talk, consider the position of ENISA, the European Union Agency for Network and Information Security, and the centre of network and information security expertise for the member states, the private sector and Europe’s citizens. This was outlined in its December 2016 essay on its recommendations on cryptography in the context of proposals to reduce its strength in order to…

Export your Wunderlist tasks with XPath

As brought up in this ProductHunt thread, the news is that Wunderlist is going to be deprecated in favor of the new Microsoft To-Do note taking platform.

This is what Wunderlist support had to say in response to my inquiry on Wunderlist's future:

"Now that the next evolution of Wunderlist is here, in the form of Microsoft To-Do Preview (https://www.wunderlist.com/blog/...), Wunderlist will no longer receive any updates or bug fixes and will eventually be retired. It won’t happen in the next few months and we’ll be sure to give our users plenty of notice beforehand. In the meantime, you can continue to use Wunderlist normally. Of course, we’d also love for you to try To-Do and let us know how you like it – and how we can improve it. While Wunderlist will continue to exist alongside To-Do for the time being, support for Wunderlist will eventually be removed. Not to worry, though! We will inform all Wunderlist users prior to shutting down service. You'll have ample opport…

Kite - Smart Copilot For Programmers

The best products and ideas always spring out of identifying and addressing a general and widespread need. In the case of programming it's the time required when coding for searching the Internet for relevant documentation and code samples.

Kite was invented to address those needs and looks set to become very popular among the programmer tribe; well the Python ones at the moment but Kite's engineers are looking into adding support for languages like C#, Java and Javascript to widen their audience.
So how does actually Kite help a programmer in becoming more productive?

Kite sits next to your favourite code editor, Atom, Sublime Text 3, IntelliJ and PyCharm are currently supported, monitoring what you actually type in order to display highly relevant information.

full article on i-programmer

CodeStar to Simplify Development On AWS

For developers the most important announcement made at last week's AWS Summit was CodeStar, which is intended is to enable you to quickly develop, build, and deploy applications on AWS.

CodeStar is thus an attempt to fix the tedious process of setting up your development infrastructure on the AWS platform, which we uncovered in the AWS for the Impatient series of articles

"The problem with entering the AWS world for the first time is that it's like entering a labyrinth, a futile attempt of navigating through an endless maze of documentation, policies, endpoints, services, tokens and authentications. The task of having to hook all that up in order to get on with your job is daunting."
To alleviate this situation, Codestar provides a set of preconfigured project templates and by taking care of all the necessary permissions, where AWS is particularly picky, "so you don't need to create or manage complex IAM policies".

full article on i-programmer

Insider's Guide To Udacity Android Developer Nanodegree Part 2

Continuing the journal charting my progress through Udacity's course for intermediate Java programmers, we come to the second module - the final stage of project Popular Movies. Here we add  functionality to produce a fully featured application that looks and feels natural on the latest Android operating system.

But before that, let's do a short recap on what we've accomplished in Stage 1. Up to this point, our application can :
Fetch data from the Internet with theMovieDB API.
Use adapters and custom list layouts to populate list views.
Incorporate libraries to simplify the amount of code you need to write.
Present the user with a grid arrangement of movie posters upon launch.
Allow your user to change sort order via a setting; the sort order can be by most popular or by highest-rated.
Allow the user to tap on a movie poster and transition to a details screen with additional information such as: original title, movie poster image thumbnail, a plot synopsis (called overview…

Carnegie Mellon CyLab Challenge: Learn Hacking At School

picoCTF, the world's largest online hacking competition, is a computer security game for middle and high school students. Organised by CMU's CyLab, the third contest opens on March 31st and runs for two weeks.

It's no secret that there's a shortage of professionals with skills in computer security or, put another way, skills in computer hacking.The justification is simple; to be able to defend yourself you first have to be able to think like an attacker.

Awareness about cyber warfare on a national scale, on the latest trends in ransomware, IoT DDOS attacks, sophisticated phishing attempts and XSS exploitations is just the minimum requirement on the ever increasing check list of the security professional.

full article on i-programmer

The Malmo Challenge - Collaborative AI

Project Malmo, established in 2015, called Project AIX back then, finds its way out of infancy and into childhood, and is now looking to engage in its first social interactions. To further this it has launched a contest for PhD students.

It all started with Microsoft researchers trying to make a Minecraft character climb a virtual hill. This might not sound a big deal, but the difference was that this AI agent tried to overcome its hurdle through learning and interacting with its environment, not by being programmed to do so.

Since then, many other research initiatives have found their way into the mainstream, like OpenAI's Gym, a most interesting platform involving AIs that learn  to play a video game on a variety of gaming environments such as Atari, Board Games or even Box2d (Angry Birds anyone?), just as humans do.

full article on i-programmer 

Insider's Guide To Udacity Android Developer Nanodegree

The Android Developer Nanodegree, designed by Google and delivered through Udacity's platform, is for intermediate Java developers, or even those experienced in other object-oriented languages, looking to start developing for Android. As such it teaches the tools, principles, patterns and conventions pertaining to Android.

full article on i-programmer

Password Cracking RAR Archives With Perl

Cracking RAR archives is something not yet achievable as the format has no known vulnerabilities.Let me correct that, no known vulnerabilities as far as unlocking an encrypted RAR archive without the use of a password goes. In this article we look at password cracking by dictionary attack.  Along the way we explore how to turn a single threaded Perl/Tk GUI application into a multi-threaded one.

full article on i-programmer

High-Tech, Cross-Browser Fingerprinting

Do you trust that getting rid of third party cookies keeps you safe from tracking? Think again as there's a new cross-browser tracking that can follow you no matter how often you delete cookies or switch browser.

Nowadays, privacy issues arising from surfing the web are well known to the public and so are their countermeasures: cleaning your browser's cache, removing cookies, deleting history, installing ad-blockers and privacy aware extensions which reveal the trackers behind every page you visit. These are more or less the minimum of actions you can employ in feeling moderately safe.

Of course there's much more you can do, such as Tor-enabled browsing, using a VPN or embrace the extremes of SilentKeys' Privacy Aware Keyboard. Nevertheless, all these measures fall within the realm of the superuser and are beyond the expertise of the general public.

However there's a new technique that exploits other innocently leaked information by the browser in order…

Google's Cloud Spanner To Settle the Relational vs NoSQL Debate?

Cloud Spanner is a new proposition for database as a service that emphatically offers "Relational with NoSQL scaling". Will Google come to dominate yet another market?

Once upon a time there was only one kind of database management system, the RDBMS, "R" for relational. Despite its resilience and trustworthiness, it had its shortcomings; it did not scale well, and the relational model it served proved inadequate in the dawn of the Big Data era for handling massive amounts of schema-less, unstructured data.
For this and a few other reasons, a new breed of DBMS's emerged, one that could handle the avalanche of big data, based on the notion of the key-value pair, and doing so by scaling horizontally. But, in order to become versatile, this new breed of management systems had to forgo the safety of the ACID and the cosiness of SQL, both long term partners of the relational model. full article on i-programmer

AWS Lambda For The Impatient Part 3

We completed Part 2 of our tutorial on AWS Lambda by calling our Lambda function through an authenticated HTTP endpoint, aided by Postman and leveraging IAM security. In this third and final part, we do the same, only this time programmatically, with the aid of Perl and the Paws module.
Introducing Paws Paws is a namespace rather than a module, that encompasses a plethora of sub-modules, which aim to, and actually succeed, in achieving the unprecedented:
to provide a unified programming interface to all accessible through APIs Amazon hosted services, be it Amazon Simple Queue Service, Amazon Simple Notification Service, EC2, DynamoDB or as in this case, AWS Lambda.
We're going to consider Paws in action from two perspectives, assuming a user and assuming a role.

full article on i-programmer

Find Your 2000-Year-Old Double With Face Recognition

Wouldn't you like to know if you look like Caesar or Venus? It's now possible thanks to advanced face recognition software. Discover how the Quebec Musée de la Civilisation is using the Betaface API to find lookalikes of its collection of classical sculptures.

Most people are pleasantly surprised the moment they're told that they resemble a celebrity. Of course, nowadays when VIP's photos are everywhere on the media, comparing oneself to modern day celebrities is very easy.

But what if with today's technology you could discover if you resemble a celebrity of the ancient times, hundreds or thousands of years back? Wouldn't you like to know if you look like Caesar, Augustus, Demosthenes or another historical figure, or are more like a mythical one such as Heracles or Aphrodite?

full article on i-programmer

Bitesnap - Applying Deep Learning to Calorie Counting

Bitesnap is a recently launched mobile app that uses photo recognition to help you control your calorie intake. To learn more, we interviewed Keith Ito, one of the app's core developers to discuss Bitesnap's revolutionary vision for the food sector as well as the technological infrastructure behind it.

 We all know that a healthy diet is very difficult to maintain, especially nowadays where work is mostly done while sitting and entertainment is a matter of staring at screens of all shapes and sizes. The problem is made worse by the plethora of tasty but unhealthy food in existence.

Whereas dietary usually try to impose radical change, Bitesnap in contrast works with what you normally eat, trying to keep it or even turn it healthy, by closely monitoring food intake on a daily basis.Not sure how many calories the meal you are about to eat is? Take a picture of it and let Bitesnap reveal the calories and nutrients behind it, an action that allows you to make qui…

Associate Android Developer Certification by Google

To meet the job market's ever growing demand for  certified Android developers, Google once more in partnership with Udacity, has started offering an "Associate Android Developer Certification",  obtainable through just a single exam.

It's a move that might seem in contradiction to the certifications already offered by Udacity through its Android Developer Nanodegrees, again co-created by Google, but in contrast to a Nanodegree, getting hold of this certification doesn't require attending a lengthy or expensive course, in which you do projects and stick to class deadlines.
The candidate has to only take a one-off exam for a fee of $149. It requires the downloading of a few Android Studio project files and working on them for a period of  48 hours of work before  handing them over for their grading.

full article on i-programmer

Predix IoT for Developers

We have seen businesses transform into software houses to withstand competition. To continue surviving into the near future they'll also have to embrace IoT, as the industry responds to the ever-increasing presence of connected devices.
In this quest of automating everything, smart and embedded devices will play an increasingly significant role in collecting data at its source, data that they then transmit to remote monitoring centers for further analysis and real-time automated decision making. A prime examples of this is monitoring the state of a wind turbine and automatically shutting it down to avoid overheating.
Therefore in essence IoT provides an ecosystem that consists of the hardware and the software
running on the device, as well as a remote management center, typically cloud based, that hosts the facilities necessary for deriving the crucial insights from the raw data received in order to use them as the basis of all further decision making.

full articl…

Pythonroom Brings Coding to the Classroom

Describing itself as a book, Pythonroom is available to all, whether in a classroom or not. Needing just a browser to run, and so suitable for a multitude of desktops and mobile devices, it provides an ideal jump start for kids to start learning coding.

The availability of step-by-step lessons is one reason for choosing Pythonroom as a starting point in learning to code. The other reason for jumping on the Pythoonroom bandwagon is Python itself. The language's clean, readable and English-sounding syntax makes it easy for someone not familiar with coding to get started.That aside,Python is also a fully featured, general purpose programming language with which you can do just about anything: Mathematics, Data science, Statistics, Automation, Natural language processing, Artificial intelligence, you name it.

The platform is built with a curriculum centered on the student, as such it makes it super easy to get started with tasks that require just one, or two lines of cod…

Mozilla Firefox Replacing Gecko With Servo

The time has finally come for Firefox to upgrade the aging Gecko rendering engine that served it for 20 or some years.The upgrade will enable Firefox to take full advantage of modern CPU's and GPU's, and result in lighting fast performance improvements on both desktop and mobile devices.

"Pages will load faster, and scrolling will be silky smooth. Animations and interactive apps will respond instantly, and be able to handle more intensive content while holding consistent frame rates. And the content most important to you will automatically get the highest priority, focusing processing power where you need it the most."

It wouldn't be that easy however.Switching from a solid, long serving and well proven engine to something new, constitutes a formidable task, especially when the project in question, the Firefox browser, is live and in production.

full article on i-programmer

AWS Lambda For The Impatient Part 2

In the first part of the AWS Lambda for the Impatient tutorial series we set to create our very first lambda function and call it through an open, public, unrestricted and unauthenticated endpoint.This time around we add security so that calling our lambdas will require the client to authenticate through an IAM Role and User name.

Step 1 - Create a new Lambda function and API Gateway endpoint
As happened in the first part, we create a new lambda called lambda_basic_execution_helloWorldNodeJS but with the added suffix of _auth. So that we can tell it apart, call it lambda_basic_execution_helloWorldNodeJS_auth.
Despite the name change, the function's code remains the same as last time:
use strict';
exports.handler = (event, context, callback) => {
 console.log('Received event:',
                 JSON.stringify(event, null, 2));
 var inputObj = JSON.parse(event["body"]);
 callback(null, {
    "statusCode": …

Serverless JavaScript

We recently joined in an interesting two-hour long conversation about Serverless JavaScript led by Steve Faulkner of Bustle who answered questions on Bustle, the Shep framework, the mindset behind the AWS Lambda infrastructure, and related topics.

The discussion took place on the Sideway conversation-sharing platform on January 6th. Here we present the best takeaways from the session which really should be taken notice of by anyone working on AWS.

Steve Faulkner:
At Bustle we serve over 50 million unique readers per month through a "serverless" architecture based on AWS Lambda and Node.js.  Of course there are still servers but we don't manage them. This shift has allowed us to develop products faster and decreased the cost of our infrastructure. I'll answer any questions about how we made this transition and how it has worked out. I'll also discuss some of the tools and best practises including our open source framework shep

Eran Hammer:
When would you…

New Facebook Computer Vision Tags

Show Facebook Computer Vision Tags is a new Chrome and Firefox extension that overlays all images appearing on your Facebook timeline with a neural-network derived classification. This reveals what Facebook's algorithms makes of them. Should we be worried?
Before any image reaches your timeline, Facebook's Deep ConvNet deep learning framework scans it in order to recognize the objects that it consists of so that  it classifies it based upon those findings.
Subsequently, these classifications make their way into HTML alt tags in order to annotate the image before it appears on the web and your timeline.
As an example of how it works, consider the following picture of a dog out on the snow, shot by people inside a café.


full article on i-programmer.info

AWS Lambda For The Impatient Part

The problem with entering the AWS world for the first time is that it's like entering a labyrinth, a futile attempt of navigating through an endless maze of documentation, policies, endpoints, services, tokens and authentications. The task of having to hook all that up in order to get on with your job is daunting. Here is the help you need for AWS Lambda.

Tthe range of AWS offerings is just immense with so many services and providers to choose from, like EC2, S3, Athena, Kinesis, Lambdas, CloudFront, DynamoDB, API Gateway, and the list goes on.

In this tutorial, however, we're going to take a deep look into the Lambdas and the serverless architecture they support.The beauty of serverless computing isn't that you don't need a server, but you don't need to manage one.Your function lives in its own space on the cloud, capable of being called through multiple entry points, while despite self-contained, still capable of calling other functions or APIs , tr…