Text Me Private
private/disposable voice and sms-capable virtual phone numbers
5 weeks ago
» Game Loops on IOS Ananse Productions
Analysis of CADisplayLink, vsync, and run loop interaction.
development  ios  game  programming 
6 weeks ago
OpenSimplex Noise
Our game needs 3D noise for terrain generation, particularly cave generation and cliff/arch/overhang generation. That leaves us with two options: Take the easier and less-interesting route and deal with the artifacts of Perlin noise, or create something new. So I took the latter route, and developed a new noise algorithm for us to use called OpenSimplex noise.

The algorithm borrows the surflet summation idea from Simplex noise, but is based off of the lattice of a Simplectic Honeycomb instead of a skewed scissor-simplex lattice, and uses a slightly larger surflet radius. The result is a noise algorithm that avoids significant cardinal-axis bias just like Simplex noise does. Below is a sample render (2D Slice of 3D).
algorithm  graphics  random  perlin 
7 weeks ago
Background Transfer Service and Client Certific... | Apple Developer Forums
Quinn the eskimo discusses issues around using background NSURLSession downloads with client certificates or any authentication process that requires resuming the client process.
ios  programming  https  nsurlsession  authentication  ssl  resume-rate-limiter  app-transport-security 
8 weeks ago
When Will Climate Change Make the Earth Too Hot For Humans?
The Uninhabitable Earth, Annotated Edition
The facts, research, and science behind the climate-change article that explored our planet’s worst-case scenarios.
science  future 
10 weeks ago
(2) 2017 LLVM Developers’ Meeting: “Implementing Swift Generics ” - YouTube
Implementing Swift Generics - Douglas Gregor, Slava Pestov and John McCall

Slides: Coming Soon

Swift is a safe and efficient systems language with support for generic programming via its static type system. Various existing implementations of generic programming use either a uniform runtime representation for values (e.g., Java generics) or compile-time monomorphization (e.g., C++, Rust). Swift takes a “dictionary-passing” approach, similar to type-classes in Haskell, using reified type metadata to allow generic code to abstract over the memory layout of data types and avoid boxing. In this talk, we will describe the compilation of Swift’s generics from the type checker down to LLVM IR lowering and interaction with the Swift runtime, illustrating the how the core representation of generics flows through the system, from answering type-checking queries to the calling convention of generic functions and runtime representation of the “dictionaries”.
swift  programming  compiler 
11 weeks ago
Colour management and gamut
Colour spaces allow us to map absolute colours in the physical world, to a measurement system specific to a device, such as a display. Have you heard of “sRGB”, “Adobe RGB”, “Display P3”, or “DCI-P3”? Those are colour spaces. They’re similar to our “cm” above. sRGB is the standard colour space for many devices. Adobe RGB, Display P3, and DCI-P3 are wider gamut colour spaces, that are now found on newer or more expensive devices.
11 weeks ago
Dual N-Back FAQ - Gwern.net
N-back is a kind of mental training intended to expand your working memory (WM), and hopefully your intelligence (IQ1).
The theory originally went that novel2 cognitive processes tend to overlap and seem to go through one central bottleneck. As it happens, WM predicts and correlates with IQ3 and may use the same neural networks4, suggesting that WM might be IQ5. WM is known to be trainable, and so improving WM would hopefully improve IQ. And N-back is a family of tasks which stress attention and WM.
Later research found that performance and improvement on N-back seems to correlate better with IQ rather than classic measures of WM like reciting lists of numbers, raising the question of whether N-back works via increasing WM or by improving self-control or improving manipulation of WM contents (rather than WM’s size) or somehow training IQ directly.6 Performance on DNB has complicated correlations with performance on other tests of working memory or IQ, so it’s not clear what it is tapping into. (And the link between WM and performance on IQ tests has been disputed; high WM as measured by OSPAN does not correlate well with performance on hard Raven’s questions7 and the validity of single tests of WM training has been questioned8.)
brain  training  exercise 
october 2017
This training exercise boosts brain power, Johns Hopkins researchers say | Hub
The researchers found that the group that practiced what's known as a "dual n-back" exercise showed a 30 percent improvement in their working memory. That was nearly double the gains made by the group working with the other common task, known as "complex span." The dual n-back group also showed significant changes in brain activity in the prefrontal cortex, the critical region responsible for higher learning.
brain  training  exercise  n-back 
october 2017
Modern B-Tree Techniques
This survey reviews the basics of B-trees and of B-tree indexes in
databases, transactional techniques and query processing techniques
related to B-trees, B-tree utilities essential for database operations,
and many optimizations and improvements. It is intended both as a
survey and as a reference, enabling researchers to compare index innovations
with advanced B-tree techniques and enabling professionals to
select features, functions, and tradeoffs most appropriate for their data
management challenges.
programming  algorithm  database 
october 2017
Class Clusters
As of iOS 11/macOS High Sierra, and only including ones in Foundation and CoreFoundation
cocoa  programming  objective-c  foundation 
october 2017
How Not To Sort By Average Rating – Evan Miller
PROBLEM: You are a web programmer. You have users. Your users rate stuff on your site. You want to put the highest-rated stuff at the top and lowest-rated at the bottom. You need some sort of “score” to sort by.
math  programming  statistics  score  scoring 
august 2017
A history of branch prediction from 1500000 BC to 1995
The purpose of this talk is to explain how and why CPUs do “branch prediction” and then explain enough about classic branch prediction algorithms that you could read a modern paper on branch prediction and basically know what’s going on.
programming  hardware  architecture  cpu 
august 2017
rclone - rsync for cloud storage
Rclone is a command line program to sync files and directories to and from

Google Drive
Amazon S3
Openstack Swift / Rackspace cloud files / Memset Memstore
Google Cloud Storage
Amazon Drive
Microsoft OneDrive
Backblaze B2
Yandex Disk
The local filesystem
cli  command-line 
july 2017
An end to end implementation of a Machine Learning pipeline
Why write yet another Tutorial on Machine Learning and Deep Learning?
As a researcher on Computer Vision, I come across new blogs and tutorials on ML (Machine Learning) every day. However, most of them are just focussing on introducing the syntax and the terminology relavant to the field. For example - a 15 minute tutorial on Tensorflow using MNIST dataset, or a 10 minute intro to Deep Learning in Keras on Imagenet.
While people are able to copy paste and run the code in these tutorials and feel that working in ML is really not that hard, it doesn't help them at all in using ML for their own purposes. For example, they never introduce you to how you can run the same algorithm on your own dataset. Or, how do you get the dataset if you want to solve a problem. Or, which algorithms do you use - Conventional ML, or Deep Learning? How do you evaluate your models performance? How do you write your own model, as opposed to choosing a ready made architecture? All these form fundamental steps in any Machine Learning pipeline, and it is these steps that take most of our time as ML practitioners.
This tutorial breaks down the whole pipeline, and leads the reader through it step by step in an hope to empower you to actually use ML, and not just feel that it was not too hard. Needless to say, this will take much longer than 15-30 minutes. I believe a weekend would be a good enough estimate.
machine-learning  tutorial 
july 2017
Observed Failures
software/hardware/logic failures in real world systems
engineering  hardware  software  programming 
july 2017
Dip Transform for 3D Shape Reconstruction
The paper presents a novel three-dimensional shape acquisition and reconstruction method based on the well-known Archimedes equality between fluid displacement and the submerged volume. By repeatedly dipping a shape in liquid in different orientations and measuring its volume displacement, we generate the dip transform: a novel volumetric shape representation that characterizes the object’s surface. The key feature of our method is that it employs fluid displacements as the shape sensor. Unlike optical sensors, the liquid has no line-of-sight requirements, it penetrates cavities and hidden parts of the object, as well as transparent and glossy materials, thus bypassing all visibility and optical limitations of conventional scanning devices. Our new scanning approach is implemented using a dipping robot arm and a bath of water, via which it measures the water elevation. We show results of reconstructing complex 3D shapes and evaluate the quality of the reconstruction with respect to the number of dips.
july 2017
Elephant in Cairo - Wikipedia
An elephant in Cairo is a term used in computer programming to describe a piece of data inserted at the end of a search space, which matches the search criteria, in order to make sure the search algorithm terminates; it is a humorous example of a sentinel value. The term derives from a humorous essay circulated on the Internet and published in Byte magazine in September 1989 that described how various professions would go about hunting elephants.
programming  tricks 
july 2017
Lead Bullets | TechCrunch
The issue with their ideas was that we weren’t facing a market problem. The customers were buying; they just weren’t buying our product. This was not a time to pivot. So I said the same thing to every one of them: “There are no silver bullets for this, only lead bullets.” They did not want to hear that, but it made things clear: we had to build a better product. There was no other way out. No window, no hole, no escape hatch, no backdoor. We had to go through the front door and deal with the big, ugly guy blocking it. Lead bullets.
business  strategy 
july 2017
Fixing autocompletion on mixed Objective-C and Swift projects - miqu.me
debugging Xcode and sourcekit

most important information: /Applications/Xcode.app/Contents/MacOS/Xcode -ShowDVTDebugMenu YES
programming  xcode  sourcekit  debugging 
june 2017
Working with text output streams — Erica Sadun
Implement TextOutputStreamable instead of CustomStringConvertible.
swift  programming 
june 2017
Developear - Speeding Up Compile Times of Swift Projects
This will allow Whole Module Optimization compile the whole module at once while also not doing any optimization of the code.

By using this technique, I have seen gains of up to 5x.
swift  programming 
june 2017
Syntax of the Future Past – James Montgomerie’s World Wide Web Log
Failed effort to replace Objective-C message syntax with something more Java-like.
programming  objective-c  java 
june 2017
A Semismooth Newton Method for Fast, Generic Convex Programming
Due to their generality, conic optimization problems, which can represent most convex
optimization problems encountered in practice, have been the focus of much recent work,
and additionally form the basis of many convex optimization modeling frameworks. In
this paper, we introduce Newton-ADMM, a method for fast conic optimization. The
basic idea is to view the residuals of consecutive iterates generated by SCS, a state-of-theart,
iterative conic solver, as a fixed point iteration, and then use a nonsmooth Newton
method to find a fixed point. We demonstrate theoretically, by extending the theory of
semismooth operators, that Newton-ADMM converges rapidly (i.e., quadratically) to a
solution; empirically, Newton-ADMM is significantly faster than SCS, on a number of
problems. The method also has essentially no tuning parameters, generates certificates
of primal or dual infeasibility, when appropriate, and can be specialized to solve specific
convex problems.
optimization  mathematics  algorithm 
may 2017
UIDebuggingInformationOverlay - Low Level
UIDebuggingInformationOverlay is a private UIWindow subclass created by Apple, presumably to help developers and designers debug Apple’s own iOS apps.
ios  debugging 
may 2017
A new algorithm for finding a visual center of a polygon | Mapbox
We came up with a neat little algorithm that may be useful for placing labels and tooltips on polygons, accompanied by a JavaScript library. It’s now going to be used in Mapbox GL and Mapbox Studio.
geometry  maps  algorithm 
may 2017
Supertop Blog: How Not to Crash #1
Here’s a quick summary of what I learned:

Apple reports some crashes that other services don’t. Check for crash reports through iTunes Connect or Xcode as well as any external services.
The rules for file locking are stricter when your database is in a shared location.
It’s not enough to rely on a background fetch completion block, don’t do any work in the background without an active background task.
It’s hard to debug issues that only manifest in particular stages of the app lifecycle. If you haven’t tried it yet, learn how to use the new Sierra Console.app.
Don’t forget about Technical Support Incidents, you get 2 included in your developer account payment every year. (Thanks Kevin!)
debugging  development  ios  shared-container 
may 2017
Fast Robust Predicates for Computational Geometry
Many computational geometry applications use numerical tests known as the orientation and incircle tests. The orientation test determines whether a point lies to the left of, to the right of, or on a line or plane defined by other points. The incircle test determines whether a point lies inside, outside, or on a circle defined by other points.
Each of these tests is performed by evaluating the sign of a determinant (see the figure below). The determinant is expressed in terms of the coordinates of the points. If these coordinates are expressed as single or double precision floating-point numbers, roundoff error may lead to an incorrect result when the true determinant is near zero. In turn, this misinformation can lead an application to fail or produce incorrect results.

One way to solve this problem is to use exact arithmetic. Unfortunately, traditional libraries for arbitrary precision floating-point arithmetic are quite slow, and can reduce the speed of an application by one or two orders of magnitude.

To minimize this problem, I've produced algorithms and implementations for performing the 2D and 3D orientation and incircle tests correctly and reasonably quickly. From this page, you may access papers describing the approach (short and long versions), and the code itself. My hope is that working computational geometers will be able to simply plug the code into their applications with little effort, and forget about robustness problems (for those algorithms that only require orientation and incircle tests).

My algorithms are faster than traditional arbitrary precision libraries for two reasons. First, I use an unusual approach to exact arithmetic, pioneered by Douglas Priest and sped by me, that has its greatest advantage over traditional techniques when manipulating numbers of relatively small complexity (a few hundred or thousand bits). Second, the algorithms are adaptive in the sense that they do only as much work as necessary to guarantee a correct result. The sign of a small determinant can typically be determined quickly unless the determinant is close to zero. See the papers for details.
programming  math  floating-point 
april 2017
Separating Programming Sheep from Non-Programming Goats
A bunch of people have linked to this academic paper, which proposes a way to separate programming sheep from non-programming goats in computer science classes – long before the students have ever touched a program or a programming language…
teaching-programming  computer-science  education  testing 
april 2017
From Object Algebras to Finally Tagless Interpreters | Oleksandr Manzyuk's Blog
I am going to describe two design patterns, “object algebras” and “finally tagless interpreters”, developed by the object-oriented and functional communities to solve the expression problem. I hope my presentation will serve as a hands-on, down-to-earth introduction to both patterns, but more importantly I am going to argue that they are really implementations of the same idea.

The plan is as follows. First, we are going to recall what the expression problem is about. Then, I will introduce object algebras and we will see how they help to solve the expression problem. Finally, we will see that the Java code for object algebras admits a pretty natural translation to Haskell, which will lead us to the finally tagless encoding.
april 2017
A Primer on Bézier Curves
So, what if you need to program them yourself? What are the pitfalls? How do you draw them? What are the bounding boxes, how do you determine intersections, how can you extrude a curve, in short: how do you do everything that you might want when you do with these curves? That's what this page is for. Prepare to be mathed!
algorithm  bezier  graphics  math 
april 2017
jflinter/Dwifft: Swift Diff
Dwifft is a small Swift library that tells you what the "diff" is between two collections, namely, the series of "edit operations" required to turn one into the other. It also comes with UIKit bindings, to automatically, animatedly keep a UITableView/UICollectionView in sync with a piece of data by making the necessary row/section insertion/deletion calls for you as the data changes.
programming  ios  swift 
april 2017
Fox ADHD Gifs — Olivia Huynh
Funny dog-snatching animations. Nice art style.
april 2017
Joe Coleman
Slider controls the aggressiveness of this guy's pitch. It's pretty clever.
copywriter  writing 
march 2017
Glitch failed MMO game
Glitch is Dead, Long Live Glitch!

Art & Code from the Game Released into Public Domain

Over 10,000+ individual art assets & animations, along with client code and (very sparse!) documentation, have been made freely available for everyone. Go and make beautiful things.
march 2017
Evan Chen • Napkin Project
The Napkin project is a personal exposition project of mine aimed at making higher math accessible to high school students. The philosophy is stated in the preamble:

I'll be eating a quick lunch with some friends of mine who are still in high school. They'll ask me what I've been up to the last few weeks, and I'll tell them that I've been learning category theory. They'll ask me what category theory is about. I tell them it's about abstracting things by looking at just the structure-preserving morphisms between them, rather than the objects themselves. I'll try to give them the standard example Gp, but then I'll realize that they don't know what a homomorphism is. So then I'll start trying to explain what a homomorphism is, but then I'll remember that they haven't learned what a group is. So then I'll start trying to explain what a group is, but by the time I finish writing the group axioms on my napkin, they've already forgotten why I was talking about groups in the first place. And then it's 1PM, people need to go places, and I can't help but think:

Man, if I had forty hours instead of forty minutes, I bet I could actually have explained this all.

This book is my attempt at those forty hours.

This project has evolved to more than just forty hours.
mathematics  book 
february 2017
Home - MindNode
Mind Mapping app for Mac and iOS.
mind-mapping  app  software  mac  ios 
february 2017
Smaller code, Better code
Compiler for co-dfns, an APL variant
programming  apl  compiler 
february 2017
Kenney · Assets
Free game assets (mostly pixel and isometric art)
february 2017
Two Methods for Antialiased Wireframe Drawing with Hidden Line Removal
Two novel and robust techniques for wireframe drawing are proposed.
Neither suffer from the well-known artifacts associated with
the standard two pass, offset based techniques for wireframe drawing.
Both methods draw prefiltered lines and produce high-quality
antialiased results without super-sampling. The first method is a
single pass technique well suited for convex N-gons for small N
(in particular quadrilaterals or triangles). It is demonstrated that
this method is more efficient than the standard techniques and ideally
suited for implementation using geometry shaders. The second
method is completely general and suited for arbitrary N-gons which
need not be convex. Lastly, it is described how our methods can
easily be extended to support various line styles.
graphics  3d  opengl  wireframe 
february 2017
CiteSeerX — Studying the Language and Structure in Non-Programmers' Solutions to Programming Problems
Programming may be more difficult than necessary because it requires solutions to be expressed in ways that are not familiar or natural for beginners. To identify what is natural, this article examines the ways that non-programmers express solutions to problems that were chosen to be representative of common programming tasks. The vocabulary and structure in these solutions is compared with the vocabulary and structure in modern programming languages, to identify the features and paradigms that seem to match these natural tendencies as well as those that do not. This information can be used by the designers of future programming languages to guide the selection and generation of language features. This design technique can result in languages that are easier to learn and use, because the languages will better match beginners' existing problem solving abilities.
programming  end-user-programming  natural-programming  novice-programming  psychology-of-programming  user-studies 
january 2017
[JDK-5095072] JDWP: backend should have a silent option, where no messages go to TTY - Java Bug System
Use quiet=y in the agentlib string to suppress the “Listening for transport…” message to stdout.
java  jvm  jdk  debug  agentlib  jdwp  silent  quiet  verbose 
january 2017
swift/apinotes at master · apple/swift
How to transmogrify Objective-C and plain C definitions for Swift, including turning free functions into methods.
swift  objective-c  clang  llvm  xcode 
january 2017
« earlier      
2005 3d 3d-printing 3d-scanning access accessory accounting actionscript advice aeron aesop agent agentlib airbnb airbox ajax alexandresu algebra algorithm analysis analytics animation anime antenna apl app app-switcher app-transport-security appkit apple-mail applet application appstore aquaponics architecture art arthur-whitney audio augmented-reality authentication autolayout automated baby backup bald ballet bed beginner behavior bezier bible bifl bill-joy bios bird blog blue-sky boat bohm book boolean boot borkware brain bronze brooke-allen bsd bunk bunny business buy c++ cable-manager cables cad calcium calculus cam camera cancer canvas card cartoon cassowary cellular cgi chair challenge championship character-set charger chart charting circadian-rhythm cisco clang clean cli cloud cnc cocoa code codes coke cola color colors comega command-line comments common-sense compactflash compiler computer computer-science concurrency constraints conversion cooking cool copywriter core-animation cpu cradle creative credit-card criticism cross-site-scripting crypto cryptography css curate curve d3 dairy dark darwin data-mining data-structures database davinci debroglie debug debugging dell design designer desktops development dhcp dhtml diagram diet dilbert diophantine directx disk disk-salvage disqus diy dlp dna dns dock docs documentation doll dot download drag drm dungeon-crawl dvd dvi ebook economics editor education egg electric electrical electronics emacs email embedded encryption end-user-programming engineering enterpreneur eotw equation era erasure erlang escape essay ethernet evdo evolution exercise explore extension external eye fable fascism fatboy-slim feynman fiction filter finance firefox firmware fitness flash floating-point flying foot foundation framework from-melton fullscreen functional funky funny furniture futurama future gadget gadgets game game-assets game-development game-theory garage garden gc gecko genetics geometry gift gift-ideas gimp github gl glasses google gpio gpu grammar graph graphics gravity grpahics grub gui hack hair hard-drive hardware hash hat hci head health help hid highlander hiring history house howto html html5 https human humane humor icon icons ide idiom ieee754 illustrator image image-recognition imast incremental-search index indie injection input-manager install intelligence interactive interface internals investing ios ipad ipython iterators j-language java javascript jdk jdwp jit job juicebox jupyter jvm k-language katamari kernel keyboard king kiosk kitchen knowledge kx lalr language languages laser-cutting laszlo later law-enforcement lawsuit leap learning lectures legal linear-programming lines linux lisp list live llvm logic mac machine-learning macos macosx macros mail.app management manual manufacturing maple-securities maps markdown mastery math mathematica mathematics mechanics medicine memory metal mgcopyanswer microsoft microwave mind-mapping mmorpg mobile model module money monitor morphic mosquito motivation mouse movie mozilla mp3 multiplayer murphy muscle music music-theory mvc myst n-back n-body names nanopass nas natural-programming nba neat negotiation nethack networking neural-network neurobiology nil notebook notification novice novice-programming npr nsurlsession nsview null nutrition objective-c objects ocaml ocr odds office old online oop opencv opengl opensource openvpn optimization osx overhead pair palm papers parody parsing parsing-with-derivates parts pc pcmcia pedal penn-teller performance perlin personal-manufacturing photo photoshop physics pilot-wave pix pixar plt plugin podcast point-of-sale poker policy politics posix post-it powerbook poweredge practice precision prefpane printer probability programming programming-for-everyone prolog proof ps2 psychology psychology-of-programming pupil pushpins puzzle pwd pymc pyobjc python quadratic quantitative-finance quartz quartz-core quicken quicktime quiet rac racadm race ram random rap rapid-prototyping rbtree reading recruiting reference reference-counting region religion remix remote rendering research resolver resume-rate-limiter reverse-engineering review rgm ria riddle rip robot rpg runtime safari safety salary saying scan scheme science score scoring screencast scroll sculpture seam-carving search secret secure security selector self-development sex shared-container shoes shortest-path sicp silent simulation ski sla sleep sleeper smalltalk snowboard soda sodimm soekris sofa software solver solving sound source sourcekit spectacles spline sproutcore sql squeak ssd ssh ssl stainless-steel startup starwars statecharts statistics stephen stickies sticky stompbox storage strategy stringinterpolationconvertible study subdivision sudoku susv3 svg swift switch t221 tabs tak tangle teaching-programming teapot ted-talk telomere terminal testing textbook textview theme therapy thermostat thinking thought timeline-animator tin-foil-hat tips tool toolkit touch touchpad toys training transparent travel treo tricks tripod trump tufte tutorial ui uidevice ultimaker uml understanding unicode unity unix unlock usb useful user-studies vacation vector vegan vendor venn-diagram verbose vga vi video videogame virtual vision visual visual-programming visualization vitamin-c volume vpn weather web webapp website weight-loss weightlifting whitespace wiki window wireframe wisdom wishlist work workout writing wwdc x11 xcode xp yacc zimbra

Copy this bookmark: