ProtonMail’s encrypted email is now available to all

The strong encryption makes it impossible for the company to comply with government demands for data. And since ProtonMail and its servers are located in Switzerland, there’s nothing that US authorities can do to shut it down. The company gained a lot of publicity, much of it bad, when a leaked document revealed the app was a preferred choice for ISIS terrorists. “Unfortunately, technology does not distinguish between good and bad, so the same technology that protects democracy activists and dissidents can unfortunately also protect terrorists,” it said at the time. ProtonMail also spearheaded a petition that successfully forced a public referendum on proposed Swiss privacy laws.

Unfortunately, technology does not distinguish between good and bad, so the same technology that protects democracy activists and dissidents can unfortunately also protect terrorists.

The app’s incubation period hasn’t been trouble-free. Late last year, it was forced off line by a distributed denial of service (DDoS) attack. According to The Guardian, the hackers were part of a group called the Armada Collective, which demanded a 15 bitcoin ($6,300) ransom. ProtonMail paid it in an effort to halt the attacks, though it said that private user data was never in jeopardy. It’s not clear what steps it has taken in the meantime to curtail the problem.

The app is a good example that even if they government forces US companies like Apple to create backdoors, users will still have communication options that the government can’t crack. If you’re interested, it’s now available for Android, iOS or the web.

Original URL:  

Original article

Atom 1.6 Released with Pending Pane Items, Async Git and Top and Bottom Bar API

Atom 1.6 and 1.7-beta are out. Atom 1.6 comes with pending pane items, improvements to pane management, and new APIs.

Major Changes in 1.6.0 Stable

Below is a summary of the noteworthy things available in Atom 1.6. If you want to see every PR that went into Atom 1.6, check out the Atom 1.6.0 release notes.

Pending Pane Items

Sometimes, it can be useful to take a peek at the contents of a file without opening it in a dedicated tab. For those instances, you want pending pane items.

Pending Pane Items

When you single-click a file from the tree view or the find-and-replace search results, the file in question opens as a pending pane item. When another item is opened in a pane, it replaces the pending tab in that pane instead of being appended to the list of tabs. This allows you to quickly click through several files quickly without opening each of them in a dedicated tab. In the default UI configuration, the tab’s title is italicized if the pane item is pending. If you want the tab to stick around permanently, simply double-click the file or the tab; in addition, when you edit text within a text editor that lives in a pending tab, the tab is automagically made permanent for you.

If you’re not afraid of tab commitment (or just don’t like the feature), you can disable this functionality by unchecking Allow Pending Pane Items in the Core Settings section of the editor settings.

Pending Pane Items Option

Finally, if you want to open pane items as pending from your own packages, simply add pending: true to the options passed to Workspace::open or to Pane::addItem:

// Open a URI in as pending, {pending: true})

// Directly add an item to a pane as pending
myPane.addItem(item, {pending: true})

Multi-pane Usage Improvements

Previously, Atom’s pane management commands left a lot to be desired. There was only one set of commands and keybindings to create a split pane. Say you wanted to create a right split, you would use cmd-k right (or ctrl-k right in Windows and Linux) and it would create the split pane and also copy the existing file you had open to the new pane—rarely what you wanted.

In Atom 1.6.0, a number of new commands have been added to improve working with panes. For now, the default pane-split behavior attached to keybindings like cmd-k right is unchanged, but you can bind these new commands in your keymaps.cson file. If you need some help deciding which keys to use, you can try this set, which are based on Atom packages pain-split and move-panes.

Block Decorations

Block decorations allow a package developer to insert DOM nodes in between lines. This new API opens up a number of new scenarios such as inline diffs, code evaluation, image previews, and very important use cases like watching nyan cat while you write code.


Check out the block decoration blog post for information on how to use them and for all the gritty details about they were implemented.

Async Git

Atom 1.6 comes bundled with NodeGit.

The new GitRepositoryAsync class uses NodeGit to provide a promise-oriented API which is similar to the existing GitRepository. Package authors can get the asynchronous repository from the synchronous repository:

const repo = atom.project.getRepositories()[0].async
repo.getPathStatus(myPath).then(status => {
  // Do the needful.

In the future we’ll be deprecating GitRepository so please update your packages to use the new asynchronous APIs as soon as possible.

Top and Bottom Bar API

A new API has been added to allow package authors to put UI that spans the entire width of the editor. This allows packages like tool-bar to appear across the very top of Atom, and could enable the status-bar to span the entire width of the window.


The API is an extension of our panel API:

atom.workspace.addHeaderPanel({item: /*an item*/})
atom.workspace.addFooterPanel({item: /*an item*/})

See the addHeaderPanel and addFooterPanel docs for more information.

Major Changes in 1.7.0 Beta

See the Atom 1.7.0-beta0 release notes for everything that is in 1.7 beta.

Crash Recovery

Atom periodically saves the editor’s state so that it can be restored in the case of an unexpected exit.

Most Recently Used Tab Switching

In Atom 1.7 beta, ctrl-tab in all platforms will switch between the most recently used (MRU) tabs in an Atom window. Previously, ctrl-tab would select the next tab, which does not take into account which tabs you have been working in. MRU tab switching was a very heavily requested feature that many other editors have as a default behavior, and we’re happy to finally have it in Atom.

Most Recently Used Tab Switching

Windows Improvements

There have been a number of improvements to the Windows experience in 1.7 including:

Environment Patching on OS X

On OS X, when you launch Atom from the Dock, Spotlight or Finder, it receives a different startup environment than when you launch Atom from the terminal. Most people expect Atom to be able to detect one’s terminal environment and use that, since Atom needs access to a lot of the same tools that you use through the terminal. Tools like linters, language interpreters, beautifiers and more. It just makes sense.

Until atom/atom#11054, packages that wanted to access these tools had to roll their own solution. Now, Atom just does the right thing out of the box.

Electron Update

Electron has been upgraded in Atom 1.7 to the 0.36 series. The new version of Electron brings a number improvements. Check out the pull request for more info.

Original URL:  

Original article

For Slack users, the Lookerbot tool brings data to your conversation

In much of the enterprise-software world today, data is data and chat is chat, and rarely the twain shall meet. Looker aims to change all that.

On Thursday the data-platform provider launched Lookerbot, a new tool for Slack’s popular messaging software that lets users bring their data directly into the conversation.

Looker’s data platform aims to create a single source of truth so that every business team can easily ask and answer their own questions; current users include Yahoo, Warby Parker and Sony. Last fall, it rolled out a modular approach to analytics in the form of Looker Blocks, reusable and customizable apps that can be “snapped” together Lego-style to answer different questions.

To read this article in full or to leave a comment, please click here

Original URL:  

Original article

Swift and Go

I have experience in software static analysis and a great curiosity for programming languages. Having some time, this week I could (finally!) take a in-depth look into swift and golang.

Both are sponsored by big companies (apple and google), and there is nothing experimental about them. At the beginning of 2016 there are plenty of big professional projects based on both swift and golang.

I have to confess: I know C and C++, but I come mostly from java world. I’m still a big fan of a modern java based on vert.x, rxjava, quasar: if you can forget (or forgive) the embarrassing job Oracle is doing evolving its standards, there is a big space to use it in a modern way, using its robust and amazing JVM.

But there are worlds where it makes sense not using a traditional virtual machine:

  • Google developed ART for android, to avoid JIT compilation and have less lagging in its apps
  • Apple developed swift to have a more modern language than ObjectiveC for their iDevices
  • Google developed golang for internal use, thinking about its big backend projects

Swift on the dark side

When published, I studied the swift language specification, and I fell in love with it. In the early phases I never had the opportunity to really write swift code, because I’m not a fan of Apple policies: I do not own a mac, and I find it such a closed world. Until Apple open sourced the language itself.
I downloaded and compiled it for linux (my main development environment), and even an unstable windows version.

My conclusion was: swift is a perfect language for backend. It’s functional and object oriented, a little bit a-la-scala, but mostly it reminds me of C#. It’s really really great. Coming from java and other garbage collected languages, I really need to get used to ARC memory management, but that is my problem, and it’s not a limit itself for developing server apps: it probably can be seen as an advantage.

Anyway, it’s already happening: IBM is pushing swift on server with kitura and bluemix. A Ruby on Rail’s inspired framework is on the wild as well.

IMHO, we still need something to happen in order to have a fully operational swift environment on servers:

  • Apple’s package manager will be soon the standard, so it needs to be ready and stable in order to have a decent work flow (similar to npm, for example)
  • Language and library stability: versions must reach some kind of stability, or at least it should be standardize – both for mac and linux – how to install different swift versions (sometime backwards incompatible). Backend development is much more sensible to this issue than mobile development. We can’t accept something like: this is a closed world, we decide, so you must move forward. We really don’t want another pyhton3 vs pyhton2 war!
  • Developer tools, independent from Apple’s dominion
  • Some further attention and care about concurrency

Go on the shiny side (GUI)

My first reaction to go was completely different: I hated it. The first impression was a superficial “Visual Basic” feeling. ARGH! I didn’t spend any time on it more than reading some examples…

But now, after spending some time on it, I really liked many things: the feeling of general simplicity, the ability to have enough low-level control of things, the interaction with C, the opinionated vision on embedding, and concurrency.

It’s somewhat interesting that golang went for a garbage collected memory model. A very interesting choice: I think it’s because it’s easier to deal with concurrency that way. For me it’s definitively a plus, even if there are some caveats (for example C interaction possibilities is limited by the garbage collector presence)

Go for frontend development? at the beginning there was nothing like that, just some unmaintained/experimental projects, but then:

And some other options are available:

  • go-gtk – Go bindings for GTK
  • goqt – Golang bindings to the Qt cross-platform application framework.
  • gotk3 – Go bindings for GTK3.
  • sciter – Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development.
  • ui – Platform-native GUI library for Go.
  • walk – Windows application library kit for Go.

AFAIK, frontend development in go is still in a experimental stage, but I could be wrong, and I would really like to hear about some professional/big projects developed with it!


Both Apple and Google are betting on static typed languages, both compiled to native, and both great languages, for different reasons. What I really love is the effort that the community is making to free them from the cage they were born in.

Backend and Frontend development: are they so different? Well, yes… and it’s probably a title for a whole book: the problems you face are sometimes very different, but the programming language should not be involved in this fight. Most of the times the differences has more to do with different mindsets, background and history of developers, different maintenance issues, but look at javascript: nodejs and react-native are winning the war, they are crossing borders and they are allowing big companies to reuse their workforce for backend, web and mobile development.

I hope that great languages like go and swift can keep up with this mentality, being widely used not just because of their sponsors, but because of their flexibility.

Original URL:  

Original article

Qt 5.6 released

This release has taken a bit longer to finish than we originally expected, mostly because we put a lot of new infrastructure in place, allowing us to make Qt 5.6 a Long Term Supported (LTS) release.

Original URL:  

Original article

Open Government Apps

We’re nearing the end of Sunshine Week, and today’s post is about useful apps that help you access open government. The Sunlight Foundation is a nonprofit organization that uses open data, analysis, and journalism to enhance governmental and political transparency. They have a mobile app called Congress, available for free on both Android and Apple, […]

Original URL:  

Original article

Intel Skull Canyon is the NUC of your dreams — Core i7 6770HQ, DDR4, NVMe, Thunderbolt 3


Having a powerful computer does not mean having a large computer. Big power can come in small packages. While giant towers have long been the darlings of many gamers and technology enthusiasts, smaller boxes are starting to gain traction too. With Micro ATX, Mini ITX, and even smaller form factors, consumers can achieve performance while saving precious desk space.

When it comes to diminutive offerings, Intel’s NUC is one of the most popular. These computers are small, attractive, powerful, and affordable. While they run Windows fine, they really shine on Linux, where all components work out of the box. Today, Intel announces its most powerful NUC yet — the seductively named Skull Canyon. Powered by a super-powerful Skylake processor, it also has tons of new tech crammed inside. You can even connect an external gaming GPU, like the new Razer Core, by way of Thunderbolt 3!

“A mini PC with a 45-watt, quad-core 6th Generation Intel Core i7 processor and Intel Iris Pro graphics, the new Intel NUC (NUC6i7KYK) unleashes maximized performance for intense game play or intensive workloads. Intel Iris Pro graphics let people edit photos and videos like a professional or immerse oneself in vividly rendered, seamless 3-D gameplay, all in brilliant 4K resolution on three monitors at once. Skull Canyon also includes Thunderbolt 3, enabling a single compact port and single cable to easily connect to 4K displays, high-speed storage and other devices, in addition to great graphics performance by connecting to high-end, external graphics card(s) through a device such as the new Razer Core”, says Intel.

The processor-manufacturer further says, “All of this comes together to provide a great gaming experience in a system less than 0.7 litres in size! The 6th Generation Intel Core i7 processor-powered NUC has a completely redesigned chassis and stylish case, allowing enthusiasts to take full advantage of every GHz of the quad-core processor without overheating — making this Intel NUC literally cool”.


Intel shares the following specs and features.

  • 6th Generation Intel Core i7-6770HQ processor (45W TDP)
  • Intel Iris Pro graphics 580
  • Thunderbolt 3 (40Gbps) with USB 3.1 and DP1.2 over USB-C
  • Support for DDR4 memory, up to 32GB at 2133+ MHz
  • Support for dual M.2 slots for SATA3/PCIe x4 Gen 3 NVMe/AHCI SSDs
  • Full-size HDMI 2.0 port and Mini DisplayPort version 1.2 supporting 8 channel audio (7.1
    surround sound)
  • Intel Dual Band Wireless-AC 8260 wifi (802.11 ac) and Bluetooth 4.2 pre-installed
  • SD card slot
  • Four USB 3.0 ports (including one charging port)
  • Intel HD Audio via Headphone/Microphone jack
  • Intel Gigabit LAN
  • Consumer infrared sensor
  • Ships with two lids – one with a skull logo, one plain matte black (Support for user-replaceable
    third-party lids)
  • Dimension: 216mm x 116mm x 23m — an incredibly small .69L


If you want to buy this drool-worthy mini PC, you may be surprised to know that it is fairly affordable. The barebones machine is only $650. Keep in mind, you will need to add storage and memory, which will drive the overall cost up. With that said, DDR4 RAM and NVMe SSDs are dropping in price, so the wallet damage won’t be too bad.


You can buy this in May from various retailers, although Newegg will be an exclusive pre-order partner, allowing you to reserve one in April. I expect these to be wildly popular, so if you are interested, I suggest you keep checking Newegg.

Original URL:  

Original article

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d bloggers like this: