Following our previous article about how to use jOOQ with Java 8 and Nashorn, one of our users discovered a flaw in using the jOOQ API as discussed here on the user group. In essence, the flaw can be summarised like so: Java code JavaScript code After some investigation and the kind help of Attila … Continue reading How Nashorn…
19 Sept 2014
18 Sept 2014
How to run a secure API server in a web browser. In this case, we'll write the server in JavaScript on the front-end.
17 Sept 2014
It’s this time of the year and we’re repeating the silly metrics keyword count across all of jOOQ‘s code base. We have a couple of exciting news! public is still one of the favourite keywords (yeah, we’re an API), but return is closing in, as well as final (yeah, we love final). A bit more … Continue reading This Just…
15 Sept 2014
Pun intended… Let’s discuss Java final. Recently, our popular blog post “10 Subtle Best Practices when Coding Java” had a significant revival and a new set of comments as it was summarised and linked from JavaWorld. In particular, the JavaWorld editors challenged our opinion about the Java keyword “final“: More controversially, Eder takes on the … Continue reading This is…
When we rebuilt our iOS app, the player was the core focus. The interactive waveform was at the center of the design. It was important both…
14 Sept 2014
During my day job I’ve been working on re-factoring some the internals of Juju to reverse the trend of a growing number of dependencies in our core packages. In this post I’ll show how I used go list to help me in this task. The basics Let’s start with the basics of go list. The default invocation of go […]
I haven’t really written about what it was like to run the Boston Marathon, but I wanted to share one story with you about a woman named Darby Stott. I’m a slow runner (our running group in San Jose likes to call ourselves “a social group with a running problem”). So to make it to […]
13 Sept 2014
dotfiles i3 - Tiling Window Manager A tiling window manager is a type of window manager that arranges your windows as tiles, usually in such a way that makes managing them more efficient via keyboard shortcuts. i3 is my window manager of choice, after having used xmonad for a long time, i3 provides more flexibility and ease of configuration. Here…
Here is a short recipe I use for installing multiple versions of Go from source. In this example I’m going to install the release (currently Go 1.3.1) and trunk versions of Go. Step 1. Checkout Checkout two copies of the Go source code into independent paths. % hg clone https://code.google.com/p/go -r release $HOME/go.release % hg […]
In September 2014, I gave this talk at Baruco in Barcelona, Spain. The talk focuses on: how session authentication works in Ruby on Rails, the crypto used to protect the data, the security implications and how to share the session with applications written in other languages than Ruby (with an example in Go). To illustrate this pretty dry topic, I…
12 Sept 2014
Abstraction layers in software are what architecture astronauts tell you to do. Instead, however, half of all applications out there would be so easy, fun, and most importantly: productive to implement if you just got rid of all those layers. Frankly, what do you really need? You need these two: Some data access Some UI … Continue reading Why You…
"JavaScript Testing: Idiot Proof Your Code" aka Achieving Maintainability, including best practices for linting, reducing complexity and unit testing.
11 Sept 2014
10 Sept 2014
This blog has 4 real-time elements that every multiplayer game dev needs including player position, lockstep, in-game chat, matchmaking & real-time stats
Java 8 was – as always – a release of compromises and backwards-compatibility. A release where the JSR-335 expert group might not have agreed upon scope or feasibility of certain features with some of the audience. See some concrete explanations by Brian Goetz about why … … “final” is not allowed in Java 8 default … Continue reading When the…
9 Sept 2014
ZNC is great for having a persistent IRC connection, but it’s not so great when the IRC server or network has a blip. Then you can end up failing to rejoin with over and over again. The way to fix this is to limit the number of channels ZNC can connect to simultaneously. In the Web UI, you change ‘Max…
Summary An extended Kalman filter in Haskell using type level literals and automatic differentiation to provide some guarantees of correctness. Population Growth Suppose we wish to model population growth of bees via the logistic equation We assume the growth rate is unknown and drawn from a normal distribution but the carrying capacity is known and … Continue reading Fun with…
With our private chat API, in this tutorial, we'll show you how to grant and revoke permissions and access to chat users for secure private chat.
8 Sept 2014
This recent question on Stack Overflow made me think. Why does jOOQ suggest to put generated code under “/target” and not under “/src”? … and I’m about to give you the final answer to “Where to Put Generated Code?” This isn’t only about jOOQ Even if you’re not using jOOQ, or if you’re using jOOQ … Continue reading Look no…
5 Sept 2014
ERD (Entity Relationship Diagrams) are a great way of designing and visualising your database model. There is a variety of vendors offering free and commercial ERD tools. Vertabelo by E-Point is a SaaS product where you can design and manage your database schema online. For instance, the jOOQ example database can be modelled as such: … Continue reading Stop Manually…
Stadiums are becoming increasingly connected, wired up with high speed networks for mobile apps, enabling devs to build audience participation apps.
4 Sept 2014
I read Ready Player One recently and I enjoyed it; it was a pretty fast read and I finished it in a day. It presents a view of the future where the possibilities allowed by a virtual reality world surpass those of the real world, so most people spend as much time as possible connected […]
A few months ago I came across the article Why Most Unit Testing is Waste by James O Coplien. The title is an accurate description of the contents – James considers most unit tests to be useless. He expands his arguments … Continue reading →
Tutorial and live demo on building a DIY multiplayer Minecraft with PubNub and Voxeljs. It's multiplayer Voxeljs!
3 Sept 2014
2 Sept 2014
CHECK constraints are already pretty great when you want to sanitize your data. But there are some limitations to CHECK constraints, including the fact that they are applied to the table itself, when sometimes, you want to specify constraints that only apply in certain situations. This can be done with the SQL standard WITH CHECK … Continue reading Awesome SQL…
Do you really need support? Our apologies. We hadn’t realised that we didn’t advertise the support-free jOOQ licenses, which we had been offering for quite a while now well enough on our website. So we have fixed that now. We think that jOOQ is such a high quality, intuitive piece of software with a vibrant … Continue reading jOOQ Newsletter:…
This tutorial shows you how to use our private chat API to build private chat and insure security in your chat application with Access Manager
1 Sept 2014
We’ve removed the rsync modules and today, after a few months ago and hearing no objections. Those modules were previously used to deliver Firefox and other Mozilla products to end users via a network of volunteer mirrors but we now use content delivery networks (CDN). If there’s a use case we haven’t considered then please get in touch in the…
Web | Android | Chrome | Amazon | Firefox | Source Welcome, to Fuco (Source), a coloring game! Fuco was made in 48 hours as part of the Ludum Dare game compo. The theme was Connected Worlds, which game me the inspiration for Fuco. Originally I had an idea for a game that mixed game art styles (pixel art +…
The start of September brings a close to the Go 1.4 merge window. From now until the release in December, only bug fixes and tweaks will be accepted. A major piece of work that landed in Go 1.4 cycle was the rewrite of parts of the Go runtime from C to Go. What may not […]
31 Aug 2014
Problem: Two players take turns moving a rook on an 8×8 chessboard. The rook is only allowed to move south or west (but not both in a single turn), and may move any number of squares in the chosen direction on a turn. The loser is the player who first cannot move the rook. What is the optimal play for…
30 Aug 2014
Some new tools in our toolbox: Slack, JIRA for sales and marketing processes, Spring Data JPA, Justinmind
SchakkoIn the first days at work after my vacation I got in touch with some new tools and ideas which I want to share Slack We were searching for an internal chat solution for my former and current employee since years. Most of the self hosted chat solutions don’t have clients for the […] The post Some new tools in…
29 Aug 2014
A look what what our summer interns did this summer and their IoT demos including MQTT, IoT, iBeacon, Arduino, Raspberry Pi, Data Streams, and more.
For many PL/SQL developers, this might be common sense, but for one of our customers, this was an unknown PL/SQL feature: Backtraces. When your application raises an error somewhere deep down in the call stack, you don’t get immediate information about the exact source of the error. For large PL/SQL applications, this can be a … Continue reading PL/SQL backtraces…
28 Aug 2014
This tutorial shows you how to build a DIY snapchat app, enabling you to capture and send compressed images with JavaScript (as JSON strings).
Read on for 3 mobile push notification methods w/tutorials: Google Cloud Messaging, Apple Push Notification Services, & PubNub Data Streams.
27 Aug 2014
This blog post walks you through how to spawn a private chat request with an alert popup to connect users to a private chat.
26 Aug 2014
Ruby Version Manager (RVM) is a tool that allows you to install multiple versions of Ruby and have multiple versions of the same interpreter. Very handy for those who have to maintain different applications using different versions of Ruby. To start, download RVM and install the latest stable version of Ruby: $ echo insecure >> […]
Introduction Suppose we have a vector of weights which sum to 1.0 and we wish to sample n samples randomly according to these weights. There is a well known trick in Matlab / Octave using sampling from a uniform distribution. num_particles = 2*10^7 likelihood = zeros(num_particles,1); likelihood(:,1) = 1/num_particles; [_,index] = histc(rand(num_particles,1),[0;cumsum(likelihood/sum(likelihood))]); s = sum(index); … Continue reading Haskell Vectors…
Parse API combined with PubNub Data Streams obtain developer toolkit powerful enough to scale your successful mobile app with billions of users.
This blog post is an overview on globally redundant, scalable, multi data center Redis replication using NodeJS and PubNub.
Introduction jOOQ is a great framework when you want to work with SQL in Java without having too much ORM in your way. At the same time, it can be integrated into many environments as it is offering you support for many database-specific features. One such database-specific feature is partitioning in PostgreSQL. Partitioning in PostgreSQL … Continue reading Integrating jOOQ…
Greedy algorithms are by far one of the easiest and most well-understood algorithmic techniques. There is a wealth of variations, but at its core the greedy algorithm optimizes something using the natural rule, “pick what looks best” at any step. So a greedy routing algorithm would say to a routing problem: “You want to visit all these locations with minimum…
Recently I fell in love with Pretender, the mock server library in Javascript, so I decided to record a screencast showing how to use it in an Ember.js integration test: The source code for the login application is on github. The finished version is in the pretender branch.
25 Aug 2014
A look into the architecture of global networks and the birth of real-time networks and how real-time connectivity came to be.
I’m presenting a paper later this week at the Matheamtical Foundations of Computer Science 2014 in Budapest, Hungary. This conference is an interesting mix of logic and algorithms that aims to bring together researchers from these areas to discuss their work. And right away the first session on the first day focused on an area I know is important but…
23 Aug 2014
Importance Sampling Suppose we have an random variable with pdf and we wish to find its second moment numerically. However, the random-fu package does not support sampling from such as distribution. We notice that So we can sample from and evaluate > {-# OPTIONS_GHC -Wall #-} > {-# OPTIONS_GHC -fno-warn-name-shadowing #-} > {-# OPTIONS_GHC -fno-warn-type-defaults … Continue reading Importance Sampling
"Diving into the nitty-gritty of assembly: A programmer's adventure!"
22 Aug 2014
A comment on a Stack Overflow post recently got me delving into constants a bit more thoroughly than I have done before. Const fields I’ve been aware for a while that although you can specify decimal field as a const in C#, it’s not really const as far as the CLR is concerned. Let’s consider … Continue reading When is…
21 Aug 2014
This blog post shows that DIY Arduino hobbyist and makers are using Arduino because of its ease of use and implementation
20 Aug 2014
In this blog post, we'll show you how to enable users to create private chat rooms with other users using private channels.
We're documenting our AngularJS SDK for PubNub with Docco. AngularJS Docco makes is simple, clean, and informational for documentation.
Ever since I wrote reptyr, I’ve been frustrated by a number of issues in reptyr that I fundamentally didn’t know how to solve within the reptyr model. Most annoyingly, reptyr fundamentally only worked on single processes, and could not attach processes with children, making it useless in a large class of real-world situations. TTY stealing Recently, I merged an experimental…
GoCardless has helped businesses in the hospitality sector like Bookatable and Zenchef. Here’s how.
19 Aug 2014
This iBeacon walkthrough shows you how to connect an iBeacon emitter and observer for two-way communication with Swift Programming Language.
18 Aug 2014
We've released our 5 step quick start tutorial on using our web messaging API built with PubNub to build a web messaging application.
Oracle SYNONYMs are a great feature. You can implement all sorts of backwards-compatibility tweaks simply by creating SYNONYMs in your database. Consider the following schema: Now you can query your same old table through three different names, it’ll all result in the same output: The trouble is, when you see my_table_bak in code (or some … Continue reading All You…
For some reason, Oracle blocked the installers to run only on a fixed OSX version range with a nice and explanatory error message. This range doesn’t include Yosemite, which makes sense, since nobody running Yosemite will ever want to write some Java. Anyway, here is how to fix it.
17 Aug 2014
This is a post about Go’s built in make and new functions. As Rob Pike noted at Gophercon this year, Go has many ways of initialising variables. Among them is the ability to take the address of a struct literal which leads to serveral ways to do the same thing. s := &SomeStruct{} v := SomeStruct{} […]
16 Aug 2014
I’ve found that a lot of people don’t know how powerful the Chrome Developer Tools are, especially when paired with the Ember Inspector. I recorded this short screencast to show a handful of tricks you can use when debugging Ember.js applications: The source code to the Bug Tracker project is on github.
15 Aug 2014
Subscribe to this newsletter here jOOQ 3.5 Outlook We’re working hard on the next release. Already 90 issues for jOOQ 3.5 are closed and counting! Today, we’re going to look at the highlights of what will be implemented in the next, exciting minor release, due for Q4 2014: Support for new databases Our customers have … Continue reading jOOQ Newsletter:…
14 Aug 2014
Have you ever wondered about the use-case behind SQL’s ANY (also: SOME) and ALL keywords? You have probably not yet encountered these keywords in the wild. Yet they can be extremely useful. But first, let’s see how they’re defined in the SQL standard. The easy part: 8.7 <quantified comparison predicate> Function Specify a quantified comparison. … Continue reading A Wonderful…
Google wage fixing, 11-CV-02509-LHK, ORDER DENYING PLAINTIFFS' MOTION FOR PRELIMINARY APPROVAL OF SETTLEMENTS WITH ADOBE, APPLE, GOOGLE, AND INTEL
Dan LuuUNITED STATES DISTRICT COURT NORTHERN DISTRICT OF CALIFORNIA SAN JOSE DIVISION IN RE: HIGH-TECH EMPLOYEE ANTITRUST LITIGATION THIS DOCUMENT RELATES TO: ALL ACTIONS Case No.: 11-CV-02509-LHK ORDER DENYING PLAINTIFFS' MOTION FOR PRELIMINARY APPROVAL OF SETTLEMENTS WITH ADOBE, APPLE, GOOGLE, AND INTEL Before the Court is a Motion for Preliminary Approval of Class Action Settlement with Defendants Adobe Systems Inc. ("Adobe"),…
This is an archived USENET post from John Cooley on a competitive comparison between VHDL and Verilog that was done in 1997. I knew I hit a nerve. Usually when I publish a candid review of a particular conference or EDA product I typically see around 85 replies in my e-mail "in" box. Buried in my review of the recent…
13 Aug 2014
Last Thursday, Yahoo announced their plans to support end-to-end encryption using a fork of Google’s end-to-end email extension. This is a Big Deal. With providers like Google and Yahoo onboard, email encryption is bound to get a big kick in the ass. This is something email badly needs. So great work by Google and Yahoo! … Continue reading What’s the…
In this tutorial, we'll talk about how to create new channels for create chatrooms on demand for user-to-user private chat and spawning new game servers.
12 Aug 2014
Check out how PubNub-powered DropTask enables teams to collaborative and manage tasks in real time with their real-time task management application.
One of the best features in SQL are window functions. Dimitri Fontaine put it bluntly: There was SQL before window functions and SQL after window functions If you’re lucky enough to be using any of these databases, then you can use window functions yourself: CUBRID DB2 Firebird H2 Informix MariaDB MySQL Oracle PostgreSQL SQLite SQL … Continue reading The Difference…
11 Aug 2014
There are those people that have a strong, dogmatic belief in what they call “Free” or “Standard” or “Open” software. One of those individuals is Jimmie (let’s call him Jimmie in this article) who has responded to an article about Java persistence by Marco Behler on TheServerSide. Let me cite Jimmie’s response here: JPA is … Continue reading The “Free”,…
I talked about Cat-DNS at Cascadia.js, and it wasn’t terrible! There is a video. Of me talking! On the internet! What a future we live in. =^..^= The internet needs more cats. DNS servers are the authority on all things internet. Therefore, the best DNS server is the one that resolves everything to cats. This talk is about that. We’re…
8 Aug 2014
I started writing a post like this a long time ago, but somehow never finished it. Countless posts on Stack Overflow are vulnerable to SQL injection attacks. Along with several other users, I always raise this when it shows up – this is something that really just shouldn’t happen these days. It’s a well-understood issue,and … Continue reading The BobbyTables…
This blog post features two ways (a data visualizer and a multiplayer game) that harness the power of WebGL to create stunning and interactive apps.
Recently, I’ve encountered this sort of query all over the place at a customer site: Unfortunately, COUNT(*) is often the first solution that comes to mind when we want to check our relations for some predicate. But COUNT() is expensive, especially if all we’re doing is checking our relations for existence. Does the word ring … Continue reading SQL Tip…
7 Aug 2014
This multiplayer matchmaking algorithm tutorial walks you through how to allow users in a multiplayer game to challenge other players in the game.
Strange bedfellows: how a web-tier validation framework enables strongly typed, big data pipelines
Ian HummelThe other day I was talking with a colleague about data validation and the Play web framework came up. Play has a nice API for validating HTML form and JSON submissions. This works great when you’re processing small amounts of data from the web-tier of your application. But could that same tech benefit a Big Data team working on a…
6 Aug 2014
This blog post is a tutorial on how to AngularJS encryption and three way binding for data streaming
Markus Winand from Use The Index, Luke! did it again. He started an exciting battle against one the biggest flaws in the SQL language: We’ve blogged about this before. OFFSET pagination is terribly slow, once you reach higher page numbers. Besides, chances are, that your database doesn’t even implement it correctly, yet (and your emulation … Continue reading Join the…
Introduction Suppose we have particle moving in at constant velocity in 1 dimension, where the velocity is sampled from a distribution. We can observe the position of the particle at fixed intervals and we wish to estimate its initial velocity. For generality, let us assume that the positions and the velocities can be perturbed at … Continue reading Fun with…
5 Aug 2014
Every once in a while, we run into these rare SQL issues where we’d like to do something that seems out of the ordinary. One of these things is pivoting rows to columns. A recent question on Stack Overflow by Valiante asked for precisely this. Going from this table: +------+------------+----------------+-------------------+ | dnId | propNameId | … Continue reading Are You…
4 Aug 2014
A general overview of how GoInstant features translate to the PubNub Data Stream Network, including GoInstant to PubNub code migration.
This blog post walks you through building a chatroom UI for self-destructing chat. However, the UI can be applied to any chatroom as well.
Earlier this year, the new version of the Java Programming Language was released. Finally, it enters the field of the “cool peeps” with some features it should have had since years ago, like Lambdas.
3 Aug 2014
This tutorial walks you through how to migrate your chat application from GoInstant to PubNub.
This post is about Tinyterm, a silly hack that I presented as a lightning talk at last month’s Sydney Go User group 1. You can find the original slides online at talks.golang.org. This talk is about a experiment to see if I could drive I2C devices from Go through my laptop’s VGA port. It was […]
2 Aug 2014
Migrate from GoInstant to PubNub using our migration tools and JavaScript SDK
1 Aug 2014
I used to play a ton of Roller Coaster Tycoon when I was a kid. I loved the game but I was never very good at making the roller coasters. They always felt too spread out, or too unnatural looking. As a ten year old I idly wondered about writing a computer program that was […]
A few days ago, I was watching Dustin Campell’s excellent talk from TechEd 2013, “Essential truths everyone should know about performance in a large managed code base”. I highly recommend it, and it made me think a bit more about Noda Time’s performance. (It doesn’t take much to make me think about Noda Time’s performance, … Continue reading Object pooling…
So, I’m experimenting with Scala because I want to write a parser, and the Scala Parsers API seems like a really good fit. After all, I can implement the parser in Scala and wrap it behind a Java interface, so apart from an additional runtime dependency, there shouldn’t be any interoperability issues. After a few … Continue reading The 10…
31 Jul 2014
This multiplayer matchmaking algorithm tutorial walks you through how to match up different players based on skill, or any other predetermined state.
30 Jul 2014
You should sign up for a VPN service! Yes you, the casual Internet browser. Here is why. Any time you connect from your laptop/phone to a wireless network (SFO Wifi, Starbucks, etc), anyone else on that network can read all of your traffic over HTTP, to sites like Wikipedia, Netflix, YouTube, WebMD and more. This […]
Starting with jOOQ 3.5 we’ve included an awesome new feature for those of you using the Oracle database: Native support for Oracle AQ! And your client code will be so easy to write, you’ll be putting those AQs all over your database immediately. How does it work? jOOQ rationale The biggest reason why many of … Continue reading Using Oracle…
This tutorial walks you through how to send a TLS encrypted, self-destructing message in a chatroom.
29 Jul 2014
This blog post walks you through sending encrypted chat messages, and overall shows you how to build a self destructing chatroom app.
As JavaScript has matured as a language, the module has become the primary unit of code organization. However, as with many facets of JS, modules grew organically from the developer ecosystem (as opposed to being designed as part of the language from the beginning), so they have their flaws – one being that you can […] The post Testing Private…
28 Jul 2014
jOOQ implements your SQL statements as AST (Abstract Syntax Tree). This means that your SQL statement is modelled in a non-text form prior to serialising it as a textual SQL statement to your JDBC driver. One advantage of this is that you can freely manipulate this AST any way you want. This can be done … Continue reading jOOQ Tip…
26 Jul 2014
I'm setting up a new website, which gave me an excuse to try out Nix, the stateless package manager, and Docker, the tool that lets you run all of your apps in light-weight containers on a host. Nix may be a great tool, and help you avoid the possibility of moving parts in your builds, […]
The last couple of months have been a bit slow in the blogging department. It’s hard to blog when there are exciting things going on. But also: I’ve been a bit blocked. I have two or three posts half-written, none of which I can quite get out the door. Instead of writing and re-writing the same posts … Continue reading…