Functors, Applicatives, And Monads In Pictures - adit.io
fmap :: (a -> b) -> f a -> f b
"f a" is the container, e.g. List<A>
11 hours ago
Ask HN: Amazon software engineers, how is the work culture now? | Hacker News
No change since the NYT article.
Amazon only changes things when it has to, and only in a lip-service kind of way. There was a flurry of discussion and proposals when the article was published, but it's all died down and we're back to where we were beforehand.

Compensation, culture, and perks are infinitely better at Google, Facebook, Lyft, Uber, etc. All of them start vesting your stock monthly after 1 year, whereas Amazon has a ridiculous vesting schedule (5% after year 1, 15% after year 2, 20% every 6 months thereafter). Not to mention the awful 401k matching, no free food/drinks, terrible drab offices, etc. All in the name of "frugality." Leadership claims that our competitors waste their money on these things, despite all of them being insanely profitable with higher employee happiness and retention.

I'm working on moving to one of the above competitors now. I recommend avoiding Amazon, even if the role you've been offered sounds cool.
12 hours ago
Time to ditch Wikipedia?
A Wikipedia editor called Philip Cross (Andrew Philip Cross and later "Julian" on Twitter) has a long record of editing the entries of many anti-war figures on the site to include mostly critical commentary while removing positive information contributed by others. At time of writing he is number 308 in the list of Wikipedians by number of edits.
Too Clever By Half - Epsilon Theory
Coyotes are too clever because they know that people shaking jars full of coins can’t hurt them. Thus the animal control patrol has to get called and when they don’t shoo, the animal control person who loves animals has to shoot the coyote.

Coyotes are winning the mini-game of each human interaction, but they are losing the meta-game of what society will do if coyotes aren’t scared.

Relating this to financial innovation, securitization and leverage are only two core financial innovations, when finance "coyotes" have what looks new, and start winning the mini-games, there is risk the racoons ruin the meta-game, which ends in more power to the state.
3 days ago
Calendly - Scheduling appointments and meetings is super easy with Calendly.
Calendly helps you schedule meetings without the back-and-forth emails
5 days ago
mobxjs/mobx-utils: Utility functions and common patterns for MobX
The main advantage of fromPromise.resolve(value) over fromPromise(Promise.resolve(value)) is that the first synchronously starts in the desired state.
6 days ago
Twirp: a sweet new RPC framework for Go – Twitch Blog
gRPC implements structured RPCs but we found that its complexity and sprawl brought an unacceptable number of bugs — and we had trouble justifying its hard http/2 requirement. Twirp is a structured RPC framework, but with an emphasis on simplicity. It works on HTTP 1.1, chooses stability and modularity over an expansive feature set, and then gets out of the way.
programming  grpc 
8 days ago
Google YOLO
once you're in an iframe, you loose. frame busting doesn't work, use frame headers/same origin/CSP.
9 days ago
TypeScript compile-time inference assertions / unit tests
let cond1: AssertIsNumber<typeof definitelyANumber> = true;

// Demonstrating simply:
type ObjectWithMember = { present: string };
let missingKey: TrueIfMissing<ObjectWithMember, "missing"> = true;
let presentKey: TrueIfMissing<ObjectWithMember, "present"> = true;
10 days ago
The Submarine
Of the stories you read in traditional media that aren't about politics, crimes, or disasters, more than half probably come from PR firms.
10 days ago
Decorators &amp; metadata reflection in TypeScript: From Novice to Expert (Part IV)
Type metadata uses the metadata key "design:type".
Parameter type metadata uses the metadata key "design:paramtypes".
Return type metadata uses the metadata key "design:returntype".
11 days ago
Book Summary: The Power of Moments by Chip & Dan Heath
In many customer relationships, the moments most likely to be remembered are pits.                

“Mostly forgettable” is actually a desirable state in many businesses. It means nothing went wrong. You got what you expected.                

When creating a memorable customer experience, you first need to fill the pits. That, in turn, frees you up to focus on the second stage: creating the moments that will make the experience “occasionally remarkable.”                

Fill pits, then build peaks.

To create fans, you need the remarkable, and that requires peaks. Peaks don’t emerge naturally. They must be built.

One simple diagnostic to gauge whether you’ve transcended the ordinary is if people feel the need to pull out their cameras.

when guests reported experiencing a “delightful surprise,” an astonishing 94% of them expressed an unconditional willingness to recommend the hotel, compared with only 60% of guests who were “very satisfied.”
13 days ago
Birchbox reached a deal, but it will leave some investors with nothing | Hacker News
$10/month monthly-box barely covered shipping, could not pivot to more sponsored-/retail-business models.

no moat to prevent customers from buying goods at regular stores, Sephora/Ulta.

had raised $90m in financing, existing investor puts in $15m, but wipes out all existing investors.

- Nasty Gal, $65m funding, acquired by Boohoo for fraction
- Gilt Groupe, $268m funding, acquired by Hudson Bay for $250m
- Fab, $310m funding, acquired by PCH for ~15m
13 days ago
On Bifunctor IO and Java's Checked Exceptions
BIO[E, A] is similar to Either[Exception, A] is similar to checked exceptions and:
1. Composition Destroys Specific Error Types
2. You Don't Recover From Errors Often
3. The Error Type is an Encapsulation Leak
4. It Pushes Complexity to the User
13 days ago
Minitest: Zero Crap Scala Testing Library
I dislike most testing frameworks, because of bloat and of heavy DSLs trying to mimic the English language. When I created Minitest, I wasn't satisfied with any of the available alternatives.
13 days ago
Fake it till you make it: the wolves of Instagram | Hacker News
Kind of tangential, but a self-sabotage concept I find fascinating is called "short term mood repair." That's a phrase that one of the top academics studying procrastination uses to describe one of the most common prompts for procrastination. (Tim Pychyl)
In this concept, you have some tiny anxiety about upcoming work that probably never even reaches your conscious thoughts. And the absolute fastest way to make that anxiety go away (i.e. repair it) is to pivot away from the upcoming work. Rationally, this is a terrible idea. But emotionally, it's very functional. Procrastination creates a short term fix to that anxiety.
17 days ago
NYC Renters Paid Extra $616M Thanks to Airbnb, Study Says | Hacker News
The odd thing is that AirBnB’s entire value proposition to hosts is that it increases realizable income from the property they control and make available through AirBnB; if true, especially in the presence of supply constraints, this has to increase market clearing prices.
They are in a position where what they need hosts to believe is directly at odds with what they want policymakers (including people voting directly on policy or for politicians) to believe.
17 days ago
Auth: {
// REQUIRED - Amazon Cognito Identity Pool ID
identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',
// REQUIRED - Amazon Cognito Region
region: 'XX-XXXX-X',
// OPTIONAL - Amazon Cognito User Pool ID
userPoolId: 'XX-XXXX-X_abcd1234',
19 days ago
Building fine-grained authorization using Amazon Cognito User Pools groups | AWS Mobile Blog
Create an IAM role that authorizes row-level access to a DynamoDB table.  To achieve this, we use the unique ID that the identity pool assigns to each authenticated user.
19 days ago
dumber phone - nomasters
For the humor of it, lets use this webMD post and only slightly modify key signature behaviors outlined to describe smart phone usage addiction:

You keep using your phone after it’s no longer needed to solve a problem.
You spend more and more of your time on your phone to get the same effects
You feel strange when you don’t have your phone.
You can’t stop yourself from using your phone, even if you don’t want to.
You have a hard time giving yourself limits. You might say you’ll only use “so much” but then can’t stop and end up using twice that amount. Or you use it more often than you meant to.
You’ve begun having trouble doing normal daily things without your phone.
You drive or do other dangerous things (like use heavy machines) while you are on your phone.
You borrow money to pay for your phone.
You hide some phone use or the effect it is having on you from others.

step one - cut out the entertainment
no games
no video streaming apps (youtube, netflix, hulu, etc)
no social media apps (facebook, twitter, instagram, snap, etc)
no news aggregations
If you “kill time” with the app, delete it.
20 days ago
An MSG Convert Visits the High Church of Umami | The New Yorker
In a 1999 essay for Vogue titled “Why Doesn’t Everyone in China Have a Headache?,” the legendary food writer Jeffrey Steingarten gleefully ripped to shreds the standard litany of complaints and protests. But only in the past decade has MSG’s reputation truly turned a corner. The Times, Epicurious, and Bon Appétit have risen to its defense. The near-infallible food-science writer Harold McGee has regularly championed its use. At the 2012 MAD symposium, in Copenhagen, the chef David Chang gave a talk on the anti-Asian sentiment that underlies MSG aversion. “You know what causes Chinese Restaurant Syndrome?” Anthony Bourdain asked on a 2016 episode of “Parts Unknown.” Then he gave the answer: “Racism.”
20 days ago
An Illustrated Guide to Covariance and Contravariance in Kotlin - Dave Leeds on Kotlin
In the diagram above, the relationship between the containing type (Gizmo/SubGizmo) and its argument type (Cat/Animal) is called contravariance: as the Gizmo becomes more specific (that is, as it becomes more of a subtype), the type of the argument can become more general (that is, more of a supertype). They go in opposite directions.
24 days ago
hasura/awesome-live-reloading: A curated collection of live-reloading / hot-reloading / watch-reloading tools for different languages and frameworks.
A curated collection of live-reloading / hot-reloading / watch-reloading tools for different languages and frameworks.
24 days ago
The Firebase Blog: Best Practices: Arrays in Firebase
Firebase has no native support for arrays. If you store an array, it really gets stored as an "object" with integers as the key names.
24 days ago
Understanding the npm dependency model
any dependency you expose in your public API should become a peer dependency. automatic semver?
27 days ago
Thread by @cyberomin: "It's always fun when I speak to founders and potential founders and they are quick to tell me how they want to use AI/ML to improve customer […]"
* biggest order last week -> email+coupon
* cart left after two days -> email
* flag pay-on-delivery fraud

HN take: this is old-school expert-driven "AI".
27 days ago
Nearly three years later, Marsden has certainly been working hard, instituting a barrage of food safety protocols across more than 2,400 restaurants and dealing with challenges that include continuously training a staff of largely teenagers, with more than 100 percent turnover each year.     

Marsden detailed the food safety regimens he has implemented — including lots of HACCP training and getting suppliers to sous vide pasteurize beef and pork products before they reach the restaurants — in an interview with Meatingplace last May.
27 days ago
npm - Difference between yarn/npm5 lockfiles and exact package versions? - Stack Overflow
Finally, you might wonder "why have semver at all then? Why not just have all packages manually specify the exact version of their dependencies?" One of the main advantages of semver is it means you don't have to update every dependency in the tree whenever a sub-dependency updates. If I rely on foo, and foo relies on bar, and bar just had a critical bug that was patched, and we're using exact versions for everything, then foo must also be updated before I can get the fix. If foo and bar have different maintainers, or if foo is abandoned, that could take a while and I may need to fork the project (something I've done more than once in Java-land).
29 days ago
Connection | TypeORM
pretty vanilla ORM, in a good way
4 weeks ago
PouchDB, the JavaScript Database That Syncs | Hacker News
In terms of architecture we have about 250 tenants with separate Couch databases per each. We're still running Couch 1.6. We have yet to evaluate Couch 2.0.
4 weeks ago
pouchdb-authentication/recipes.md at master · pouchdb-community/pouchdb-authentication
The standard practice for this is to set up one database per user. Don't be scared: databases are cheap, and Cloudant says 100k databases per account is not uncommon.
4 weeks ago
Re: A CouchDB/Cloudant Scale & Authorization question
> Hi Andy, you're right that a DB per user-feature is currently the way to go to achieve
the kind of access control granularity that you have in mind. 100k databases in a Cloudant
account is not all that uncommon. Cheers,
4 weeks ago
remoteStorage ‒ An open protocol for per-user storage on the Web
keep your data, e.g. pure client-side data storage. does not seem useful.
4 weeks ago
Amazon Athena — Serverless Interactive Query Service - AWS
Athena is easy to use. Simply point to your data in Amazon S3, define the schema, and start querying using standard SQL. Most results are delivered within seconds.
4 weeks ago
AWS Glue – Fully Managed ETL Service
AWS Glue automates much of the effort in building, maintaining, and running ETL jobs. AWS Glue crawls your data sources, identifies data formats, and suggests schemas and transformations. AWS Glue automatically generates the code to execute your data transformations and loading processes.
4 weeks ago
Netflix/iceberg: Iceberg is a table format for large, slow-moving tabular data
Table state is maintained in metadata files. All changes to table state create a new metadata file and replace the old metadata with an atomic operation. The table metadata file tracks the table schema, partitioning config, other properties, and snapshots of the table contents. Each snapshot is a complete set of data files in the table at some point in time. Snapshots are listed in the metadata file, but the files in a snapshot are stored in separate manifest files.
4 weeks ago
Mailtrain-org/mailtrain: Self hosted newsletter app
self-hosted mailchimp, can still use SES/mailgun APIs to get good deliverability
4 weeks ago
A Spark 2.0.0 Cluster Takes a Longer Time to Append Data — Databricks Documentation
Starting with Spark 2.0.1-db1, the default value of mapreduce.fileoutputcommitter.algorithm.version is 2 in Databricks. If you are using Spark 2.0.0 version, manually set this config if you experience this slowness issue.
4 weeks ago
[HADOOP-13345] S3Guard: Improved Consistency for S3A - ASF JIRA
This issue proposes S3Guard, a new feature of S3A, to provide an option for a stronger consistency model than what is currently offered. The solution coordinates with a strongly consistent external store to resolve inconsistencies caused by the S3 eventual consistency model.
4 weeks ago
Thinking in GraphQL · Relay
The approach that Relay takes is to maintain a mapping from each UI view to the set of IDs it references. In this case, the story view would subscribe to updates on the story (1), the author (2), and the comments (3 and any others). When writing data into the cache, Relay tracks which IDs are affected and notifies only the views that are subscribed to those IDs.
5 weeks ago
Free Shipping & Returns: 8 Resources To Get You Started
“For whatever reason, a free shipping offer that saves a customer $6.99 is more appealing to many than a discount that cuts the purchase price by $10, says Wharton marketing professor David Bell.”

“ Approximately 60% of online retailers cite “free shipping with conditions” as their most successful marketing tool.”

This article on the Wharton School of Business’s website has several insights, and an easy to understand podcast, that’ll get you thinking more strategically about offering free shipping.
5 weeks ago
In-Store Shopper Behavior Analytics for CPG Retail | VideoMining
Directly measure shopper responses to all marketing & merchandising investments:
> Optimize display locations
> Evaluate the impact of promotions
> Test new displays and messaging
> Deliver targeted mobile marketing
> Track the impact of mobile devices on shopping
5 weeks ago
About Coursa Retail - Shopper Location Analytics
InvenSense, Inc. (NYSE: INVN) is the world’s leading provider of MEMS sensor platforms for smartphones, wearables and other consumer electronics devices with over 1 billion motion sensor devices shipped.

Coursa Retail, a location-based shopper analytics service from InvenSense, combines our deep understanding of motion sensors and pedestrian location tracking algorithm technology into a unique analytics platform for brick and mortar retail.
5 weeks ago
Kismet Wireless
Distributed remote sniffing via light-weight remote capture
5 weeks ago
Real-time processing of in-store data | Walkbase
Walkbase supports a variety of positioning and counting technologies, including Wi-Fi, Bluetooth beacons, cameras and beam counters. This way we can guarantee best possible precision whether analytics data or real-time location based marketing
5 weeks ago
FLIR - Brickstream People Counting and Tracking Sensors
Video, Wi-Fi and iBeacon in one sensor
3D stereo based people counter that combines traffic counting along with passerby, dwell time, and integration with marketing apps via Wi-Fi and iBeacon technology.
5 weeks ago
12 Technologies to Track People | Behavior Analytics Retail
The market for people tracking changes as fast as these words are written. We offer no preference for a technology or a solution provider. In 2015, we covered 7 technologies. In 2017, we have 12.
5 weeks ago
Retail Tracking Firm Settles FTC Charges it Misled Consumers About Opt Out Choices | Federal Trade Commission
Nomi, according to the complaint, places sensors in its clients’ stores that collect the MAC addresses of consumers’ mobile devices as the devices search for WiFi networks. MAC addresses are unique 12-digit identifiers that are assigned to individual mobile devices. Although Nomi “hashes” the MAC addresses prior to storing them, the hashing process still results in an identifier that is unique to a consumer’s mobile device and can be tracked over time.
5 weeks ago
How do Euclid Analytics vs. Nomi compare? - Quora
Euclid is a Wifi based location tracking system that heavily relies upon MAC address tracking since it's early days. In those days mobile device MAC addresses were fairly constant so you could track a customer once and then recognize them when they returned with the same MAC address. But  since the end of 2014 iOS started randomizing MAC addresses so the tracking ability was lessened.

Nomi is a location tracking system that leverages bluetooth, wifi, optic and stereo-optic sensors. Nomi's Listen Service tracks consumers by monitoring the location of their devices as they move about.
5 weeks ago
Modcam - Open and connected platform for computer vision applications
The MOD.01 sensor handles processing at the edge and its learning capabilities make it smarter over time. A full set of APIs and connectivity options make integration into today's and tomorrow's systems a breeze. 
5 weeks ago
Seematics has developed a proprietary groundbreaking Temporal Deep Learning engine, able to run on edge devices and act as a true learning system. Seematics' vision is to become the brains behind image sensors and enable machines to understand video, in real time, as people do.
5 weeks ago
« earlier      
abtesting accounting adblocking advertising agile ai ajax algorithms amg architecture art art/software audio aws backup banking bash billing bizo bodybuilding boo books bugs business butchers c# cache carpet cars chairs charts ci clothing coffee colors communication competitors contracts cookies cooking couchdb css cygwin dabbledb database del.icio.us design design/sparklines designers diff dnc docgen documentation drugs dvr dynaflex eclipse ecommerce economics education electromechanical email engineering excel exercise family filetype:gif filetype:pdf finance firefox fitnesse flash flickr flute flute/discussion flute/ff flute/music flute/performances flute/used fonts food forbes freebsd furniture fuse games gardening gifts gis git glasses google government grills gtd guns guns/suppressor gwt gwt/bugs hadoop hardware health hibernate history hn hobbies home hosting hotkey house/doorknobs house/tables household houses hsa html html/editor http humor i3 icons ie imaging influence interviews investing iphone ipod irc java java/gui java/jta java/multicast javascript jms jquery js js/charts js/jquery jsr168 jta keyboard knives labels languages laszlo lifting lighting linkedin linux mac management markdown marketing math mattress mealkits meat media:document media:image medicine memcache memory memory/apps messaging methodology military misc mom money motivation motorcycles music mvcc mysql netty networking office omaha orm os outlook outsourcing parenting parsing patents patterns pdf performance philosophy phone photography photos photos/libraries php physics pm pocketpc podcast politics postgresql ppc presentation presets productivity progamming programming programming/dnc psychology pubsub python quickbooks quotes ra rails rake react reading realestate realtime recipes regex religion remodeling research rest resumes reviews rfc richclient richclient/javascript rowing rss ruby running s3 saas sales saunas scala scalability scheduler scheduler/competition science scm scoliosis screen scrum search security selenium seo shipping shoes shopify shops sleep smalltalk smb soap software sousvide sousvie spark speech sports sql ssh ssl statemachines statistics stocks subversion supplements svn tab tags tapestry taxes technology temp tempagency testing thinking thinkpad threads timetracking tools toread towatch toys trac travel tv tvs typescript typing ubuntu ui uml unix usecases ux vc video videos vim violin webdav whiteboard wiki win32 windows wmii wmp writing wsj xbox xml xmonad xp yc

Copy this bookmark: