HN user

srpeck

753 karma

[username] at gmail

Posts35
Comments58
View on HN
ktye.github.io 3y ago

Kweb: A UI for K

srpeck
2pts0
github.com 4y ago

Kerf Time Series Lang and Columnar DB Open Sourced

srpeck
107pts11
www.timestored.com 4y ago

Jq – open-source implementation of q programming language

srpeck
1pts3
www.arraycast.com 5y ago

The Array Cast – A podcast about the array programming languages

srpeck
162pts138
www.justuseemail.com 5y ago

Just Use Email – How to Use Email for Everything

srpeck
300pts298
www.jsoftware.com 7y ago

APL Quotations and Anecdotes

srpeck
53pts5
dyalog.tv 8y ago

Patterns and Anti-Patterns in APL: Escaping the Beginner's Plateau

srpeck
1pts0
www.jsoftware.com 8y ago

APL Quotations and Anecdotes

srpeck
2pts0
github.com 9y ago

KDB+ Web Components

srpeck
3pts0
www.timestored.com 9y ago

Open Source Alternative to kdb?

srpeck
2pts0
github.com 9y ago

Show HN: Client-Side Encrypted Gist

srpeck
16pts4
kparc.com 9y ago

Lisp and APL

srpeck
2pts0
www.youtube.com 10y ago

Ruby Arrays on Steroids

srpeck
1pts0
www.youtube.com 10y ago

Data Analysis with Vector Functional Programming [video]

srpeck
88pts34
www.youtube.com 10y ago

Data Analysis with Vector Functional Programming [video]

srpeck
3pts1
archive.vector.org.uk 10y ago

A graphical sandbox for K

srpeck
8pts1
github.com 10y ago

Show HN: The Internet Is Fast Again – Reading Mode for Chrome

srpeck
2pts1
geocar.sdf1.org 10y ago

Fast Network Server Programming

srpeck
5pts1
arraythinking.wordpress.com 10y ago

Array Thinking – Let it snow

srpeck
22pts4
conceptualorigami.blogspot.com 10y ago

Vector Processing Languages: The Future of Analytics and Real-Time BI (2010)

srpeck
33pts5
conceptualorigami.blogspot.com 10y ago

Vector Processing Languages: The Future of Analytics and Real-Time BI (2010)

srpeck
1pts0
github.com 10y ago

iKe/oK/k5 Livecoding Demo

srpeck
2pts1
www.kalzumeus.com 10y ago

Developing in Stockfighter with No Trading Experience

srpeck
302pts186
github.com 11y ago

KDB bindings for Lua

srpeck
32pts3
kxsystems.github.io 11y ago

Kx user contributions on GitHub

srpeck
1pts0
kparc.com 11y ago

K5/q4/kdb Trillion Row Benchmarks

srpeck
2pts0
github.com 11y ago

Show HN: Kxl – Experimental spreadsheet UI for kdb+/k4/q

srpeck
16pts1
carlosbutler.com 11y ago

Webstudio for kdb+/k/q

srpeck
3pts0
github.com 11y ago

Show HN: Persistent Group Chat in kdb+/k/q

srpeck
45pts26
github.com 11y ago

Kuc – Vector Programming Language Like k

srpeck
6pts1

Concise version of the idea funnel:

1. Identify problem.

2. Market size?

3. Solution differentiation?

4. Price?

5. Profitability?

6. Execute: productize, place, promote.

My notes on reading the overview linked in the parent.

Principles of Effectuation:

- Start with your means - possibilities originate from my means

- Focus on the downside risk - what can I afford to lose at each step?

- Leverage contingencies - surprises/"bad" news are clues to new markets (pivot)

- Form partnerships - early pre-commitments from stakeholders for venture co-creation

- Control vs. predict - focus on activities in my control, not predictions

Effectuation process for building new products, markets, and firms:

1. Means: who am I, what I know, whom I know

2. Goals: what can I do?

- Pursue goals within affordable loss

- Leverage surprises - may add to Means and change Goals

3. Interactions: interact with people, enlist co-creation to change original idea

4. Commitments: gather stakeholder/customer commitments to co-created/morphed idea

- New means - new resources add to Means

- New goals - new commitments help crystallize the Goals

I created EncryptedGist [1][2] to cover part of this use case. It gets me Vim backed by GitHub Gists on any machine I happen to be working on. Adding localStorage would be easy [3], but undesirable for my main purpose - I do not want any of my personal information remaining on the machine.

Edit: And just in case it wasn't obvious, I prefer to maintain my todo list/logs/notes/projects/bookmarks in a single plaintext file. Grows about 30k lines/year. Vim search/grep and some basic structuring/naming conventions go a long way.

Top of the file is my todo list with priority order of top 3 tasks. Next is a 'Waiting For' list. Last is a 'Projects' list for longer term, high-level categories. This fits on a single screen. Completed tasks, meeting notes, logs, bookmarks, etc., go below in chronological order and are all associated with a date. This system has worked well for the last decade or so with minor changes.

[1] https://github.com/srpeck/encryptedgist

[2] HN submission: https://news.ycombinator.com/item?id=12475070

[3] https://github.com/srpeck/encrypted

Microsoft solves this with RMS for Individuals: https://portal.aadrm.com/ (also called the RMS Sharing App, now getting rebranded to Azure Information Protection).

The recipient's identity is the key to opening the content - no need to communicate anything out-of-band. Depending on the file format chosen, you get DRM features limiting granular actions on the file beyond view/edit.

To open the protected files, your recipients will have to download/install the (free) app from Microsoft. This is generally pretty painless.

Definitely worth checking out, especially good for consultants' workflows.

I wanted to test 1 and 4 out, so I wrote an MMO in q/kdb+: https://github.com/srpeck/kchess (live server is down, but you can see some of recorded action here: https://github.com/srpeck/kchess/blob/gh-pages/docs/kchessdo...). Some of my design decisions: https://news.ycombinator.com/item?id=10924316

I had previously built similar games using other technologies, but found developing in q to be far faster, even given the more primitive debugging capabilities.

I understand that this is a relatively small example, but building it was enough to convince me the APL/k/q approach is useful beyond its supposed niche.

There is a lot of material on kdb+ on kx's website (http://code.kx.com/wiki/Tutorials), Q for Mortals (http://code.kx.com/wiki/JB:QforMortals2/contents) being the best introductory book.

Also some good resources in this Quora: https://www.quora.com/What-are-the-best-resources-to-learn-q...

And if your interest is in the k language more than kdb+/q, then I have found the docs in John Earnest's ('RodgerTheGreat) oK interpreter a succinct, example-focused introduction: https://github.com/JohnEarnest/ok/blob/gh-pages/docs/Manual.... Plus using his browser-based REPL (http://johnearnest.github.io/ok/index.html) may lower the barriers to entry, and iKe (http://johnearnest.github.io/ok/ike/ike.html) is great for experimentation...http://johnearnest.github.io/ok/ike/ike.html?gist=9c5f43baa4...

I wrote a web-based MMO with the goal that players would augment their experience by enhancing their client (potentially allowing a single player to control 10s of units RTS-style) as well as writing AI/bots to help them. The game can be played entirely by bots (this is how I tested it during development). Interestingly, the game balance and mechanics are such that a skilled solo hero can take on large numbers of bots and win (see this gameplay GIF: https://github.com/srpeck/kchess/blob/gh-pages/docs/kchess.g...).

The major enabling feature is that I do not differentiate between players and AI - both are networked clients (see here for the API docs: https://github.com/srpeck/kchess/blob/gh-pages/docs/kchessdo...). I wrote up some of my other design decisions here: https://news.ycombinator.com/item?id=10924316

And sorry, the live demo is currently down...but should be pretty quick/easy to run your own locally.

"Compared to other "password keeper" programs, CryptoTE does not force any structure upon your data: it works with plain ASCII text and does not require you to fill in grids, key-value attributes, descriptions etc. Encryption is transparently performed..."

This is the reason I wrote Encrypted (https://github.com/srpeck/encrypted) - a single 21KB HTML file plaintext editor that uses SJCL to encrypt all data persisted to localStorage or disk. As a consultant I am often provided a work machine that I cannot install anything on - but there is guaranteed to be a browser.

My standard response is "What is the pay range? Who is the client?" to the recruiter emails. The recruiters that get back to you generally mean business. Because of this, I have a huge amount of data on contract rates now. Also, a good side effect is that at least someone is telling them their rates are too low. Hope it helps another consultant down the line...

Eve: My Concerns 10 years ago

Completely agree on the gentle introduction and discoverability - you never tell users they are using a 'real' language and database. However, the Excel function language and API are relatively terrible - I think users succeed in spite of them, not because they are approachable.

Eve: My Concerns 10 years ago

Agreed that Excel is real programming and that data belongs in a database - so why not give it a real programming language with a sufficiently expressive query language?

This was my reasoning behind a spreadsheet prototype backed by kdb+ and the q language (which is a superset of SQL): https://github.com/srpeck/kxl

There is value in this simple combination, but tons of work required to gain feature parity and market share from Excel. I think the latter is why research in this space is lacking.

Agreed on the idea, not necessarily the implementation. I have 2 modes when browsing - reading (docs, news, etc.) or using an application (Gmail, banking, etc.). I do not want to download a >2MB application just to read 1000 words (hence why I wrote this Chrome extension https://github.com/srpeck/readingmode). And when I am using a web application, I would like more say over what it can do and when/if I have to update it - more the Chrome app/extension model.

Plus, as a developer I would really like this model, as it allows the browser to open up even more of the operating system functions, especially the file system, leading to less workarounds.

MMOs do not have to require massive development if you strip the requirements back to the bare essentials. There are a lot of software engineering concepts involved (and tons of messy business logic), but this just makes MMOs better as learning projects/teaching tools.

For example, as an exercise to test the ability of code golf-style/APL/array programming languages to handle messy business logic, I recently built a 2D tick-based MMO in kdb+/q: https://github.com/srpeck/kchess

Note the design decisions/constraints that reduced development time:

- High programmer efficiency kdb+/q platform

- Simple client-server architecture

- All-on-one-box - kdb+ is both the front-end server and the datastore

- Websocket-based networking

- Tick-based - 1 second ticks to limit latency issues, though the server fully supports near-realtime ticks

- No differentiation between players and AI - both are networked clients (e.g., see here for the simple websocket client docs: https://github.com/srpeck/kchess/blob/gh-pages/docs/kchessdo...)

- No player identities (generally a commercial showstopper, but not for a side project)

- No 'content' - simple 2D graphics (though making the engine 3D would be trivial due to the vector paradigm), no progression/quests/RPG elements

Of course, there are the MMO pieces that generally increase development time:

- Game state cannot be globally fanned out given the sheer number of possible client connections (the first M - Massively)

- Untrusted players/clients

But once you have a simple, solid base engine, converting the result into an instance-based MOBA or a full MMORPG is not difficult, just time-consuming.

As Microsoft-hesitant as I am, Office 365 handles this use case well, bundling a lot of additional functionality into their subscriptions (Email, Office, etc.) that decreases the administrative load on a small business. SharePoint with a well-maintained access control list would cover what you mentioned.

If you have truly sensitive information and/or regulations involved, you can layer RMS (Microsoft's DRM solution, could be additional purchase depending on subscription level) on top of SharePoint and get document-level encryption that follows files around and enforces your ACLs elsewhere. It uses your identity instead of a per-document password, which is a nicer UX.