“Why We Didn’t Use A Framework” (Case Study)

When we set out to build MeetSpace1 (a video conferencing app for distributed teams), we had a familiar decision to make: What’s our tech stack going to be? We gathered our requirements, reviewed our team’s skillset and ultimately decided to use vanilla JavaScript and to avoid a front-end framework.

Using this approach, we were able to create an incredibly fast and light web application that is also less work to maintain over time. The average page load on MeetSpace152 has just 1 uncached request and is 2 KB to download, and the page is ready within 200 milliseconds. Let’s take a look at what went into this decision and how we achieved these results.

Further Reading on SmashingMag: Link

Requirement: Be Better Link

The most important requirement for the entire business was to build a better video conferencing tool. Many video conferencing solutions are out there, and they all suffer from really similar problems: reliability, connectivity, call quality, speed and ease of use. From our initial surveys, it was very clear that the most important problem for us to solve was to have flawless audio with low delay, high fidelity and high reliability.

We also found that the vast majority of our users (95% of those surveyed) were happy to use Chrome if it “delivered a superior video conferencing experience.” This meant we could use cutting-edge WebRTC technology to achieve our goals without having to launch on multiple native platforms, which would have been significantly more work. We decided to target Chrome and Firefox because of their WebRTC support, and we have our eye on Safari and Edge for the future.
According to our technical experiments, the best way to achieve high-quality reliable audio is to keep the app’s CPU and the network usage very low. This way, whenever traffic spikes on the network, there’s room to spare and the call doesn’t drop or stutter. This meant we needed to make our application very lightweight and very fast, so that it doesn’t take up any more of the CPU or network than necessary, and so that it is very fast to reload if things go wrong.

This was a big point in favor of using vanilla JavaScript and not a large framework. We needed to have a lot of control over the weight of the application, as well as its boot speed and idle CPU usage (changing elements, repaints, etc). This is a particularly low-level requirement that not many applications share. Many app vendors today aim to be better via superior UI and UX, more features and greater ease of use.

In our case, we needed 100% control over the UX of the video call to ensure that it was as light as possible and that we could maximally use whatever resources we had available to give priority to the call. As a bonus, this has the effect of not turning our users’ laptops into attack helicopters when their fans kick up to the max.

While I’d love to go into depth about how we did this with WebRTC, that’s a bit outside the scope of this article. However, I wrote an article about tuning WebRTC bandwidth by modifying the SDP payload7, which you can read if you’d like some details.

Small To Medium UX Needs Link

Next, we created rough designs for all of the pages we needed and took an inventory of the interactions we’d have on those pages. They ranged from small to medium interactions, with two pages being the most complicated. Let’s look at a few.

We had a lot of very small interactions. One example is a button to copy a link:

8
Input element with URL and button to copy the link

Here we have a simple <input> element with a “Copy” button that, when clicked, copies the link. For these kinds of interactions, we could use a very common style: a progressive enhancement pattern inspired by jQuery’s plugins. On page load, we scan for a particular selector representing the component and enhance it with click-to-copy functionality. It’s so simple that we can share the entire plugin here:

<form data-copy=true>
  <input type="text" value="{url}" data-click-select-all />
  <input type="submit" value="Copy" />
</form>
// Copy component
(function() {
 window.addEventListener("load", function() {
   var els = document.querySelectorAll("[data-copy]");
   for(var i = 0; i < els.length; i++) {
     var el = els[i];
     el.addEventListener("submit", function(event) {
       event.preventDefault();
       var text = event.target.querySelector('input[type="text"]').select();
       document.execCommand("copy");
     });
   }
 });
}());
// Select all component
(function() {
 window.addEventListener("load", function() {
   var els = document.querySelectorAll("[data-click-select-all]");
   for(var i = 0; i < els.length; i++) {
     var el = els[i];
     el.addEventListener("click", function(event) {
       event.target.select();
     });
   }
 });
}());

This component is actually made up of two different components: the copy component and the select-all component. The select-all component enhances an input by selecting the contents on click. This way, a user can click the input area, then hit Control/Command + C to copy on their own. Or, with the copy component, when the “Copy” button is clicked (triggering a form submission), we intercept the submission and copy the contents.

These interactions were so small that we decided that small vanilla components would be the simplest, fastest and clearest way to achieve the functionality. At the time of writing, we have about 15 of these small components throughout the app.

Medium: Dashboard and Chat Pages Link

We identified two pages in the app with larger UX needs. This is where we weren’t sure if we wanted to use vanilla JavaScript, a small library or a large framework. First, we looked at our dashboard:

Dashboard9
The Meetspace dashboard

On this page, the main dynamic part is the portraits inside the rooms. We wanted to have live feedback on who is in each room, and so we use WebSockets to push participant information to all clients in the dashboard when someone joins or leaves a room. Then we have to add that person’s portrait inside the room. We decided that we’d be fine taking a simple approach here by pushing all participants down the socket for each room upon any change, then clearing out the room and rendering all participants fresh each time. The HTML was so simple that we didn’t need to use templates — just a few divs and an img tag. The most complicated part was some dynamic sizing. We knew at the beginning we could get away with vanilla JavaScript here.

WebSockets ended up being quite easy to implement without a framework. Here’s the basic scaffold for our WebSocket interactions:

Dashboard.prototype = {
   connect: function() {
     this.socket = new WebSocket("/path/to/endpoint");
     this.socket.onmessage = this.onSocketMessage.bind(this);
     this.socket.onclose = this.onSocketClose.bind(this);
   },
   onSocketMessage: function(event) {
     var data = JSON.parse(event.data);
     switch (data.type) {
       case "heartbeat": console.log("heartbeat", this.roomID); break
       case "participants": this.participants(JSON.parse(data.data)); break
       default: console.log("unknown message", this.roomID, data);
     }
   },
   onSocketClose: function() {
     console.log("close", this.roomID);
     setTimeout(this.connect.bind(this), 1000);
   },
  // …
}

We initialize the socket when we construct the Dashboard instance, with a URL to our endpoint. Our messages are all in the format {type: "type", data: { /* dynamic */ }}. So, when we receive a message, we parse the JSON and switch on the type. Then we call the appropriate method and pass in the data. When the socket closes, we attempt a reconnection after waiting a second, which keeps us connected if the user’s Internet stutters or if our servers have rebooted (for a deployment).

Next, we got to the largest page in the app, the video chat room:

Video chat10
MeetSpace’s video chat page (View large version11)

Here we had numerous challenges:

  • people joining and leaving,
  • people muting and unmuting,
  • people turning the video on and off,
  • a custom “borderless” layout for varying numbers of participants (not possible with pure CSS),
  • WebRTC video capture and peer-to-peer streaming,
  • synchronization of all of the above across all clients through WebSockets.

For this page, we were really on the fence. We knew we’d be doing only a small amount of DOM manipulation (just adding simple elements for each participant), but the amount of WebSockets and WebRTC synchronization was a bit daunting.

We decided that we could handle the DOM and WebSocket events, but that we wanted some help on WebRTC, mainly because of cross-browser differences (WebRTC hasn’t fully settled down). We opted to use the official WebRTC adapter.js because we had a lot of confidence in a first-party solution (and it’s in use quite broadly). Additionally, it’s a shim, so we didn’t have to learn much to be able to use it, and its implementation is pretty simple (we knew we’d end up reading through a lot of it).

Hypothesis: Less Code = Less Work Link

In addition to all the research we did ahead of time, we also had a hypothesis that we were very interested in testing: Could using less code (from others and including our own) and implementing from scratch result in less total work?
Our guess here was that the answer is yes when it comes to small to medium workloads. We knew that we had only a handful of pages and a handful of UX experiences, so we decided to take a risk and go without a lot of dependencies.

We’d all used (and enjoyed) many different frameworks in the past, but there’s always a tradeoff. When you use a framework, you have the following costs:

  • learning it,
  • customizing it to fit your needs (i.e. using it),
  • maintaining it over time (upgrades),
  • diving deep when there are bugs (you have to crack it open eventually).

Alternatively, working from scratch has the opposite costs:

  • building it (instead of learning and customizing),
  • refactoring (instead of customizing),
  • solving bugs the first time (which others have already found and fixed in their respective frameworks).

We guessed that, because we fell in the medium area of the spectrum, working from scratch would be less work in total — more work in the beginning (but less confusion and learning), a bit more of our own code in total, less code overall (if you count dependencies), easy-to-fix bugs (because we don’t have to dig deep) and generally much less maintenance.

The Result Link

MeetSpace has been around for a year now, and we have been surprisingly stable and reliable! I mean, I guess I shouldn’t say “surprised,” but honestly, I thought that coding it vanilla would cause more problems than it did. In fact, having full error traces and no frameworks to dig through makes debugging much easier, and less code overall means less problems. Another “fun” benefit is that when anything goes wrong, we immediately know it is our own fault. We don’t have to troubleshoot to determine where the bug is. It is definitely our code. And we fix it fast because we are quite familiar with our code.

If you look at our commit graph, you can see we had a lot of work at the beginning, but then over time we’ve had only large spikes coinciding with features:

Commit graph12
MeetSpace’s code commits over time (View large version13)

We’ve never had any big refactorings or upgrades. The few times we did upgrade our libraries, nothing went wrong, because the updates were small and didn’t break the libraries’ APIs. It’s hard to compare with how much work it would have been had we used a framework, so the best we can do is to compare with past projects. My gut feeling is that, had we used a framework, more time would have been spent in total because of extra time spent learning the framework, tracking bugs through framework code and doing upgrades across framework versions. The best we can say about this project is that, over time, tracking down bugs and performing upgrades has been very little work.

Now, let’s get to the gory details: speed and size. For this section, I’ll talk about three pages: sign-in, dashboard and chat. Sign-in is the absolute lightest page, because it’s just a form and there’s no user context. Dashboard is our heaviest page that is mostly static. Chat is our heaviest page with the most action on it.

Bootstrap 4Foundation for Sites 6UIkit 3Current version, release date4.0.0-alpha 6, released January 20176.3.0, released January 20173.00 beta 9, released February 2017.

PageCold # requestsCold KBCold loadWarm # requestsWarm KBWarm load

Sign-in 13 87.2 253 ms 1 1.1 97 ms
Dashboard 23 210 318 ms 1 2.0 80 ms
Chat 13 202 321 ms 1 1.8 182 ms

“Cold” refers to the initial visit, when the cache is empty; “warm” refers to subsequent visits, when cached files can be used.

All our JavaScript, CSS and images are fully cached, so after the first cold load, the only request and transfer being performed is the HTML of the page. There are zero other requests — no other libraries, templates, analytics, metrics, nothing. With every page clocking in at about 100 milliseconds from click to loaded, the website feels as fast as a single-page application, but without anywhere nearly as much complexity. We set our Cache-Control headers far into the future to fully cache our assets. Ilya Grigorik has written a great article on HTTP caching14.

The majority of the page load is for waiting on the server to process the request, render and send the HTML. And I’m sure you’re not surprised to hear that our back end is also almost entirely vanilla and frameworkless; built with Go, it’s got an average median response time of 8.7 milliseconds.

Please note: This article and the benchmarks here are for MeetSpace’s inner application, not our marketing website. So, if you go to MeetSpace’s website, you’ll have to click “Sign in” to reach the main application, where these improvements reside. The main www site has a different architecture.

Would We Do It Again? Link

For MeetSpace? Definitely. What about other projects? I think that all of the research we did ahead of time, our hypothesis on cost and our results point to a pretty simple tradeoff based on one broad metric: complexity.

The simpler, smaller and lighter an application is, the cheaper and easier it will be to write from scratch. As complexity and size (of your application and of your team and organization) grow, so does the likelihood that you’ll need a bigger base to build on. You’ll see stronger gains from using a standard framework across a large application, as well as from using the common language of that framework across a large team.

At the end of the day, your job as a developer is to make the tough tradeoff decisions, but that’s my favorite part!

(da, vf, yk, al, il)

  1. 1 http://ift.tt/2reNlPi
  2. 2 http://ift.tt/2reXewJ
  3. 3 http://ift.tt/2oUjasy
  4. 4 http://ift.tt/1PfpkYH
  5. 5 http://ift.tt/2jT9jnj
  6. 6 http://ift.tt/1ISnyRc
  7. 7 http://ift.tt/2gPyz8W
  8. 8 http://ift.tt/2qvNDyE
  9. 9 http://ift.tt/2reHY2E
  10. 10 http://ift.tt/2pTLPOU
  11. 11 http://ift.tt/2pTLPOU
  12. 12 http://ift.tt/2rf00SB
  13. 13 http://ift.tt/2rf00SB
  14. 14 http://ift.tt/1mhZ1Hl
  15. 15 http://ift.tt/2reXewJ
  16. 16 http://ift.tt/1xEe2eY
  17. 17 http://ift.tt/1NHQz3A
  18. 18 http://ift.tt/1fE3YqF
  19. 19 http://ift.tt/2b7MKDy

↑ Back to top

Tweet itShare on Facebook

via Smashing Magazine
“Why We Didn’t Use A Framework” (Case Study)

What You Need to Know When Recording Your Enemies

Illustration by Angelica Alzona.

Trump was in the news recently for possibly taping conversations in the oval office. But can you do that? Turns out the answer is kinda complicated. If you’re thinking of secretly recording a conversation with someone, you should probably read this first.

Whether you’re recording a phone call, an in-person conversation, or trying to record the conversations of others, it all comes down to consent and how the federal government, and each state’s individual laws, define that. You might want to capture your enemy’s true nature on tape for all to hear, but here’s the deal: it’s probably illegal.

What Federal Law Says

According to the Wiretap Act of 1968 (18 U.S.C. § 2511.), it’s illegal to secretly record any oral, telephonic, or electronic communication that is reasonably expected to be private. So, for example, recording a conversation with somebody in a bedroom, with the door shut, on private property, without them knowing is technically a federal crime in the loosest sense.

There are, however, a few exceptions to this law that create some sizable loopholes. The biggest being the “one-party consent” rule that says you can record people secretly if at least one person in the conversation consents to the recording, or if the person recording is authorized by law to do it (like police with a warrant). If we go back to our bedroom recording, that means you could record your conversation as long as one person—you—consents to it. Sneaky, eh? But here’s the catch: you have to actually be a part of that conversation. If you were simply recording two other people talking while standing nearby and not saying a word, you then have no consent from any of the parties, and thus it would be illegal.

State Laws Can Preempt Federal Law

Federal law does not always reign supreme when it comes to recording conversations in the U.S., though. Twelve states have “two-party (or all-party) consent” laws, meaning you cannot record conversations unless every single person in that conversation gives consent. Those states are:

Advertisement

Advertisement

  • California
  • Connecticut
  • Florida
  • Illinois
  • Maryland
  • Massachusetts
  • Michigan
  • Montana
  • Nevada
  • New Hampshire
  • Pennsylvania
  • Washington (not D.C.)

If we go back to the secret bedroom recording example, everyone in the room would need to consent to your recording if you were in one of the states listed above. But then it wouldn’t really be a secret recording anymore, would it?

While a state’s recording laws usually determine the legality of taping conversations, federal law takes precedence and preempts all state laws if it’s considered to be more protective of privacy. So even if a state did allow secret recordings without any consent, federal law would preempt that state’s laws.

Location, Location, Location

The other important aspect to consider is where you’re recording your conversation. The federal Wiretap Act promises a “reasonable expectation” of privacy, so there’s some wiggle room there. A closed-off bedroom in a private home is a reasonable place to expect privacy, so taping there can be risky, even with the power of one-party consent. If there was a party being thrown in that house, however, things could be a little different. Litigator Deborah C. Logan explains:

Sponsored

Whether one has a reasonable expectation of privacy in a given situation depends upon the context: Was the conversation in a public or private location? Did the individual being recorded treat the subject matter as private? A person who is bragging at a party about cheating a friend in a business deal cannot later object to the introduction of a recording of this admission as evidence in a lawsuit filed by his ex-friend.

As you can see, public locations open things up a tad. Secretly recording a conversation at a park or train station is perfectly legal if you’re in a one-party consent state and part of the conversation. But it’s still illegal in a two-party consent state.

Advertisement

Advertisement

And the definition of “safe places to record” changes on a state-by-state, case-by-case basis. Public places are almost always safe, but the definition of public place can get stretched sometimes. For example, a privately owned business office may seem like a private location, but some states, like Florida, do not “recognize an absolute right to privacy in a party’s office or place of business.” That doesn’t mean you should go secretly recording your mean boss, though, since it can still be illegal depending on where you are, what’s being said, and how it’s being said.

You also have to be careful about recording phone calls, especially if you’re talking with someone who’s in a state with different laws than yours. If you live in New York, a one-party state, and want to record a phone call with someone in California, a two-party state, you need to have their consent in addition to the consent you’ve automatically granted. If you use an app like Total Recall on Android or Tape a Call on iOS, you need to double-check that you’re not recording all calls by default and accidentally taping people illegally.

Audio and Video Aren’t the Same Thing, but Can Be Intertwined

Video recording law is different from audio recording law—and a topic for another time—but it’s important to know what those differences are. Generally speaking, you have the right to record video in all public spaces without need of consent. A public space is defined as anywhere any member of the public can legally access, so public transit facilities, parks, streets, etc. are all fair game. Recording video on private property, though, is up to the discretion of the property owner, private security, or police, but secret video recordings are illegal on all private property in some states, like California.

Advertisement

But here’s the most important part: recording video of a conversation in public might be legal, but recording audio along with that video is not if you’re in a two-party state. For example, recording a video of your heated conversation with a surly sales associate is illegal in all two-party states if they don’t give you permission to record them. Even in one-party states, recording video like that is dubious at best.

You do, however, have the right to record video and audio of police officers or public officials performing official duties if they are in public places. That said, you may only do so as long as you are not interfering with those activities or violating other laws in the process.

What Happens If You Get Caught

If you get busted secretly recording conversations, you could face jail time, fines, or even be sued. The federal Wiretap Act lists a possible sentence of five years in prison with a fine of $500. But that’s usually in addition to the state law’s being violated. Getting busted in California (Cal. Penal Code § 631.), for example, can net you another year in prison and a $2,500 fine. Also, most states let the non-consenting party who was recorded sue you for damages, which could be much worse than those other fines.

When In Doubt, Follow These Tips

If you’re thinking of recording a conversation, do yourself a favor and follow these tips from the Digital Media Law Project:

Advertisement

Advertisement

  • Check local laws first: Always know what your state’s recording laws are before you do anything, and double check laws if you’re recording calls from out of state. Do you need everyone’s consent? Or just yours? Where are you recording?
  • Know what consent looks like, and get it before you record: Consent is best when it’s verbal and part of your recording, but give a preemptive warning as well. Notify the other parties that you intend to record your interaction, wait to record until they agree, begin recording, then ask for permission again on tape.
  • Don’t be sneaky: I know, you’d probably love to catch a cheater red handed, or record your boss sexually harassing you, but those types of secret recordings can seriously backfire. More often than not, the recordings are usually deemed illegal and inadmissible in court, then you get busted for breaking the law and sued by the person you were hoping to take down.

It may be a hard pill to swallow, but secret recordings are rarely a good idea, whether you’re a president or a wannabe P.I. Get consent, don’t hide your camera, microphone, or recorder, and don’t try to goad people into revealing their deepest, darkest secrets without them knowing they’re on tape or you’re going to make things worse for yourself.


via Lifehacker
What You Need to Know When Recording Your Enemies

Percona Live Open Source Database Conference 2017 Slides and Videos Available

Percona Live

Percona LiveThe slides and videos from the Percona Live Open Source Database Conference 2017 are available for viewing and download. The videos and slides cover the keynotes, breakout sessions and MySQL and MongoDB 101 sessions.

To view slides, go to the Percona Live agenda, and select the talk you want slides for from the schedule, and click through to the talk web page. The slides are available below the talk description. There is also a page with all the slides that is searchable by topic, talk title, speaker, company or keywords.

To view videos, go to the Percona Live 2017 video page. The available videos are searchable by topic, talk title, speaker, company or keywords.

There are a few slides and videos outstanding due to unforeseen circumstances. However, we will upload those as they become available.

Some examples of videos and slide decks from the Percona Live conference:

MongoDB 101: Efficient CRUD Queries in MongoDB
Adamo Tonete, Senior Technical Engineer, Percona
Video: http://ift.tt/2qpyd0r
Slides: http://ift.tt/2hC8ePy

MySQL 101: Choosing a MySQL High Availability Solution
Marcos Albe, Principal Technical Services Engineer, Percona
Video: http://ift.tt/2qpt4ph
Slides: http://ift.tt/2lNckTu

Breakout Session: Using the MySQL Document Store
Mike Zinner, Sr. Software Development Director and Alfredo Kojima, Sr. Software Development Manager, Oracle
Video: http://ift.tt/2qpfv9i
Slides: http://ift.tt/2p69bmR

Keynote: Continuent is Back! But What Does Continuent Do Anyway?
Eero Teerikorpi, Founder and CEO and MC Brown, VP Products, Continuent
Video: http://ift.tt/2qpfC4G
Slides: http://ift.tt/2nQOmfg

Please let us know if you have any issues. Enjoy the videos!

Percona Live Europe 2017
Percona Live Europe 2017: Dublin, Ireland!

This year’s Percona Live Europe will take place September 25th-27th, 2017, in Dublin, Ireland. Put it on your calendar now! Information on speakers, talks, sponsorship and registration will be available in the coming months.

We have developed multiple sponsorship options to allow participation at a level that best meets your partnering needs. Our goal is to create a significant opportunity for our partners to interact with Percona customers, other partners and community members. Sponsorship opportunities are available for Percona Live Europe 2017.

Download a prospectus here.

We look forward to seeing you there!

via Planet MySQL
Percona Live Open Source Database Conference 2017 Slides and Videos Available

Percona Live Open Source Database Conference 2017 Slides and Videos Available

Percona Live

Percona LiveThe slides and videos from the Percona Live Open Source Database Conference 2017 are available for viewing and download. The videos and slides cover the keynotes, breakout sessions and MySQL and MongoDB 101 sessions.

To view slides, go to the Percona Live agenda, and select the talk you want slides for from the schedule, and click through to the talk web page. The slides are available below the talk description. There is also a page with all the slides that is searchable by topic, talk title, speaker, company or keywords.

To view videos, go to the Percona Live 2017 video page. The available videos are searchable by topic, talk title, speaker, company or keywords.

There are a few slides and videos outstanding due to unforeseen circumstances. However, we will upload those as they become available.

Some examples of videos and slide decks from the Percona Live conference:

MongoDB 101: Efficient CRUD Queries in MongoDB
Adamo Tonete, Senior Technical Engineer, Percona
Video: http://ift.tt/2qpyd0r
Slides: http://ift.tt/2hC8ePy

MySQL 101: Choosing a MySQL High Availability Solution
Marcos Albe, Principal Technical Services Engineer, Percona
Video: http://ift.tt/2qpt4ph
Slides: http://ift.tt/2lNckTu

Breakout Session: Using the MySQL Document Store
Mike Zinner, Sr. Software Development Director and Alfredo Kojima, Sr. Software Development Manager, Oracle
Video: http://ift.tt/2qpfv9i
Slides: http://ift.tt/2p69bmR

Keynote: Continuent is Back! But What Does Continuent Do Anyway?
Eero Teerikorpi, Founder and CEO and MC Brown, VP Products, Continuent
Video: http://ift.tt/2qpfC4G
Slides: http://ift.tt/2nQOmfg

Please let us know if you have any issues. Enjoy the videos!

Percona Live Europe 2017
Percona Live Europe 2017: Dublin, Ireland!

This year’s Percona Live Europe will take place September 25th-27th, 2017, in Dublin, Ireland. Put it on your calendar now! Information on speakers, talks, sponsorship and registration will be available in the coming months.

We have developed multiple sponsorship options to allow participation at a level that best meets your partnering needs. Our goal is to create a significant opportunity for our partners to interact with Percona customers, other partners and community members. Sponsorship opportunities are available for Percona Live Europe 2017.

Download a prospectus here.

We look forward to seeing you there!

via MySQL Performance Blog
Percona Live Open Source Database Conference 2017 Slides and Videos Available

FactGem wants to help businesses get more value out of their data


FactGem, which is launching in our Disrupt New York Battlefield competition today, was born out of Megan Kvamme‘s frustration with trying to juggle hundreds of Excel spreadsheets — and the data in them — while she was working as an investment banker. When she tried to find a software product that would allow her to more easily analyze all of this data, she couldn’t find what she was looking for, so she started working on what would later become FactGem back in 2011.

“People said ‘no,’ that’s a hard problem. You can’t do that,” Kvamme recalled, and later added that what she wanted to build was essentially a Bloomberg terminal for data. Shortly after she started exploring the space, she met Clark Richey, now FactGem’s CTO, who has an extensive background in working with databases at MarkLogic and, as an intelligence contractor, worked with an array of three-letter agencies. “He was the first guy who was both smart enough and crazy enough to say, ‘hey, we deal with these problems in the intelligence world,’ ” Kvamme said.

In its current iteration, FactGem is essentially an integration service that allows companies to bring their various data sources together to easily define new data models. It consists of three tools: WhiteboarderR, a drag-and-drop tool for describing the model (just like you would on a whiteboard); UploadR for matching this model with your data; and DashboardR for — you guessed it — building dashboards that also allow their users to easily dig deeper into the data.

The core idea here is to allow anybody in a company to work with these tools without ever having to write a single line of code.

While the project started out using MarkLogic’s database, the team later went on to use Neo4j as its underlying graph database. That’s where FactGem’s so called “data fabric” comes in. It ties together all the incoming data — which can arrive in real time. As Richey noted, the company worked hard to keep its stack platform agnostic. The team contends that using its system, businesses will be able to find more “gems” in their data — that is, business insights they otherwise may have missed.

Users can work with FactGem’s own dashboard tool or export their data to Tableau. Over time, the team also plans to add more advanced analytics features, including support for R (though once the data goes to Tableau, you could always use that’s service’s R support, too).

“We learned some important things along the way,” Kvamme told me about the company’s experience so far. “What it comes down to is that we solved this impossible problem from a tech perspective, but what we’re really providing is a business solution.”

FactGem is currently working with a number of clients, including in the retail and financial services space, though the team notes that it is also in the process of setting up a number of proof-of-concept projects for new clients.

The Columbus, Ohio-based company is currently self-funded (or funded through revenue, as Kvamme put it) and has a staff of about a dozen people. The team says that it is open to raising money, but that it would have to be the right investor.


via TechCrunch
FactGem wants to help businesses get more value out of their data

EasyWeb => Easy 101 Invalidation

EasyWeb v. Twitter (Fed. Cir. 2017) (nonprecedential opinion)

In this case, the appellate court affirmed summary judgment that all of the asserted claims of five EasyWeb patents are ineligible under the Mayo/Alice interpretation of 35 U.S.C. 101 and therefore invalid.

Representative Claim 1 of U.S. Patent No. 7,685,247 is directed to a message-publishing-system that “accepts messages in multiple ways, such as by fax, telephone, or email” then verifies the message as being sent from an authorized sender, converts the message to a web format, and publishes the message on the Internet.  Although claim 1 is directed to a computer system, it includes a functionally claimed software component:

A message publishing system (MPS) operative to process a message from a sender in a first format, comprising:

a central processor;

at least one sender account;

at least one storage area configured to store at least a first portion of the message;

and software executing in the central processor to configure the processor so as to:

  1. identify the sender of the message as an authorized sender based on information associated with the message in comparison to data in the sender account, wherein the identification is dependent upon the first format;
  2. convert at least a second portion of the message from the first format to a second format; and
  3. publish the converted second portion of the message so as to be viewable in the second format only if the sender has been identified as an authorized sender.

Following the now standard two-step eligibility analysis, the court first found the claim directed toward an abstract idea.

Claim 1 merely recites the familiar concepts of receiving, authenticating, and publishing data. As we have explained in a number of cases, claims involving data collection, analysis, and publication are directed to an abstract idea.

Of import here for the abstract idea finding is that the claim simply uses generic computer technology rather than improving-upon the technology or designing particularized components.

Moving to step-two, the court looked – but could not find – an “inventive concept” beyond the claimed abstract idea sufficient to “transform the nature of the claim’ into a patent-eligible application.” (quoting Alice).

Although EasyWeb argues that an inventive concept arises from the ordered combination of steps in claim 1, we disagree. Claim 1 recites the most basic of steps in data collection, analysis, and publication and they are recited in the ordinary order. In sum, all the claims are directed to the abstract idea of receiving, authenticating, and publishing data, and fail to recite any inventive concepts sufficient to transform the abstract idea into a patent eligible invention.

Its decision is not quite correct, the Federal Circuit does not find abstract ideas simply because a claim involves “data collection, analysis, and publication.”  However, when (as here), the claim is directed toward these activities at a high level of abstraction, then the Alice/Mayo approach easily fits.

Analytically, the decision adds further weight to the theory that steps 1 and 2 are closely linked and are highly likely to correlate with one another.

via Patent Law Blog (Patently-O)
EasyWeb => Easy 101 Invalidation

The First Trailer for Seth MacFarlane’s Star Trek Spoof The Orville Looks Perfect

Seth MacFarlane leads The Orville. Image: Fox

When Star Trek Discovery is going to make it to the airwaves is anyone’s guess. Until then, though, we’ve got what looks like the next best thing: Seth MacFarlane’s spoof of the franchise, The Orville.

Advertisement

Fox just released the first trailer for the show, which stars MacFarlane and Adrianne Palicki as a divorced couple who are basically Kirk and Spock on a brand new spaceship with a suitably crazy crew. Here’s the trailer.

I’m not usually a fan of MacFarlane’s shows because they’re always so on the nose with their references and humor. But, in the case of The Orville, I think that works perfectly. There are no qualms that this show is exactly what it is, a spoof of Star Trek, and adding in the romantic dynamic is a fun touch. I’m here for this.

The Orville will air Thursdays later this year on Fox.

Advertisement

[YouTube]

via Gizmodo
The First Trailer for Seth MacFarlane’s Star Trek Spoof The Orville Looks Perfect

This timelapse shows rare and beautiful phenomenon in Grand Canyon

This timelapse shows rare and beautiful phenomenon in Grand Canyon

As a part of Skyglow Project, two filmmakers are producing a set of stunning timelapse videos to point out to the problem of light pollution. This time, the journey took Gavin Heffernan and Harun Mehmedinović to famous Grand Canyon, Arizona. They managed to capture a phenomenon known as full cloud inversion. And in this timelapse, it looks truly magical.

As Harun explains, this phenomenon occurs when cold air is trapped in the canyon by hot air, and combined with moisture and condensation. Although millions of people visit this place each year, not many of them witness the full cloud inversion. But Harun and Gavin managed to capture it in a timelapse that takes your breath away. It looks like a combination of a sea of clouds, dry ice smoke and cotton. To me, the clouds look playful and calm at the same time ( no matter how strange it sounds). And what I like most, the clouds look tangible.

The duo shot the timelapse on Canon 5DSR and 5DIII cameras, and lenses sponsored by Canon USA. They also used Alpine Labs’ Michron and Pulse, and Paul C. Buff’s Vagabond Mini. For processing some of the shots, they used LRTimelapse.

As I mentioned, this timelapse is a part of the Skyglow project. It draws attention to dangers of light pollution, while showing the contrast with some of the most incredible dark sky areas in North America. If you’d like to know more about the project and support it, head over to Skyglow website. But before that – put your headphones on, turn off the light and enjoy this magical timelapse once again.

[Skyglow Project: Kaibab Elegy via Gizmodo]

via DIYPhotography.net – Photography and Studio Lighting – Do It Yourself
This timelapse shows rare and beautiful phenomenon in Grand Canyon

North Korea Releases Video of Latest Successful Missile Test

Kim Jong-un looks at a missile that was eventually launched from North Korea on May 14, 2017 in an undated photo (Korean Central News Agency, KCNA)

North Korean state media just released a video showing the country’s latest missile test, the first successful test in some time. The intermediate-range ballistic missile (IRBM) has been identified as the Hwasong-12, a new name given to the missile by North Korea. The missile was first put on display during a military parade on April 15, 2017.

The missile is believed by experts to be a variation of the rumored KN-08 or KN-14 intercontinental ballistic missile (ICBM) that North Korea has never tested publicly. This new Hwasong-12 is the longest range missile that North Korea has ever tested, with a longer range than the Hwasong-10 missile that was tested in June of 2016.

Advertisement

Early reports indicate that the Hwasong-12 has a range of roughly 2,500 miles—though the missile largely proved its capabilities vertically, reaching an altitude of roughly 1,242 miles, but splashing down just 489 miles from its launch site.

The newly named Hwasong-12 missile being launched by North Korea on

The North Korean monitoring website 38 North, an organization run out of Johns Hopkins University, says that the newly demonstrated missile “represents a level of performance never before seen from a North Korean missile.” But the site also stresses that this missile can’t reach the US mainland.

Advertisement

From 38 North:

What would change the strategic balance is an ICBM capable of reaching the US mainland. This is not that missile but it might be a testbed, demonstrating technologies and systems to be used in future ICBMs like the KN-08 and KN-14. A full three-stage KN-08 would be very unlikely to work the first time it was tested, and the failure would be both expensive and very provocative. This missile would allow North Korea to conduct at least some of the testing necessary to develop an operational ICBM, without actually launching ICBMs, particularly if it includes the same rocket engines.

The North Korean state news agency KCNA quoted Kim Jong-un as saying that, “if the United States were to face our republic with a harsh, miserable blunder, the US would not be able to suffer the greatest disaster ever.”

North Korean dictator Kim Jong-un with his military leaders after a successful missile test on May 14, 2017 (Korean Central News Agency, KCNA)

The UN Security Council is set to meet on Tuesday at the request of the United States, Japan, and South Korea. It’s yet unclear what actions the US may call for, but the White House statement on the issue was peculiar in that it was very concerned with Russia.

Sponsored

From White House press secretary Sean Spicer on Sunday:

With the missile impacting so close to Russian soil—in fact, closer to Russia than to Japan—the President cannot imagine that Russia is pleased.

North Korea has been a flagrant menace for far too long. South Korea and Japan have been watching this situation closely with us. The United States maintains our ironclad commitment to stand with our allies in the face of the serious threat posed by North Korea. Let this latest provocation serve as a call for all nations to implement far stronger sanctions against North Korea.

Curiously, the New York Times conducted a new poll that shows Americans who can find North Korea on a map are more in favor of diplomacy. The map produced for the poll showing where Americans thought North Korea might be located was downright embarrassing.

Americans as a whole may not be able to find North Korea on a map, but they’re certainly in favor of tougher sanctions and even cyberattacks on the country. There’s less appetite for all out war, something that is completely unnecessary given the fact that the US has plenty of missiles of its own, should North Korea do anything stupid.

A Minuteman III missile is launched during an operational test at 12:03 a.m., PDT, April 26, 2017 from Vandenberg Air Force Base (U.S. Air Force photo by Senior Airman Ian Dudley)

In fact, just a few weeks ago, the United States tested its own missile, shooting a Minuteman III from Vandenberg Air Force Base in California some 4,000 miles in North Korea’s direction, landing in the Marshall Islands. The April 26, 2017 test wasn’t exactly subtle.

Advertisement

Advertisement

With any luck, we’ll avoid a war. But let’s just say that with Donald Trump in charge, a lot of people aren’t feeling very lucky.

via Gizmodo
North Korea Releases Video of Latest Successful Missile Test