848
QueryStorm
Being a modern language with access to a rich ecosystem of libraries, C# can be immensely helpful both for automation and data processing in Excel. The goal of QueryStorm in this regard is to make C# easily available in Excel in order to help developers, db professionals and data scientists make better use of Excel. The C# scripting engine in QueryStorm is powered by the Roslyn compiler.
dot-net 
6 days ago
Stuff Every .NET App Should be Logging at Startup
Unless all you build are HelloWorld applications which never get deployed anywhere you almost certainly have come across cases where either you or your support team have had to figure out:

* What is causing that OutOfMemory exception?
* Why is there such a performance degradation after the last release?
* Why is the DLL I have referenced not doing what it is supposed to?
* What system is my app running in?
* What arguments the app has started with?
* What version of JSON.NET is the app using?
* ...
dot-net 
8 days ago
qutebrowser
qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and PyQt5 and free software, licensed under the GPL.
browsers 
5 weeks ago
Essential Image Optimization
A free book on modern image optimization techniques. Formats, decoders, techniques for efficient compression and more are covered.
web 
5 weeks ago
Rob Pike's 5 Rules of Programming
Rule 1: You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.

Rule 2: Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest.

Rule 3: Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)

Rule 4: Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.

Rule 5: Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
rob-pike  programming-culture 
8 weeks ago
Hack
A typeface designed for source code.
typography 
9 weeks ago
AtF Spark
Data can be hard to grasp – visualising it can make comprehension faster. Sparklines are a useful tool but creating them for the web has always required code. Removing the need for code makes it more accessible. If you can use type, you can use Spark.
typography 
9 weeks ago
Inconsolata
It is a monospace font, designed for code listings and the like, in print. There are a great many "programmer fonts," designed primarily for use on the screen, but in most cases do not have the attention to detail for high resolution rendering.
typography 
9 weeks ago
The Interface font family
Interface is a font for highly legible text on computer screens.
typography 
9 weeks ago
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.

1990 - A committee formed by Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher, and People for the Ethical Treatment of Animals creates Haskell, a pure, non-strict, functional language. Haskell gets some resistance due to the complexity of using monads to control side effects. Wadler tries to appease critics by explaining that "a monad is a monoid in the category of endofunctors, what's the problem?"

1991 - Dutch programmer Guido van Rossum travels to Argentina for a mysterious operation. He returns with a large cranial scar, invents Python, is declared Dictator for Life by legions of followers, and announces to the world that "There Is Only One Way to Do It." Poland becomes nervous.
programming-culture 
9 weeks ago
Eve
Eve is a modern relational language for writing data-driven programs without the boilerplate.
programming-languages 
10 weeks ago
Chance versus Randomness
Chance and randomness are closely related. So much so, in fact, that to say an event happened by chance is near enough synonymous in ordinary English with saying it happened randomly.
philosophy 
12 weeks ago
WhatRuns
Extension that helps you identify technologies used on any website at the click of a button.
tools 
12 weeks ago
Carneades.org
In the modern world we are assailed each and every day by opinions disguised as fact. The talking heads from the realms of religion, science, politics, and the media claim to posses knowledge. In this gladiatorial arena of argumentation too often the victor is the loudest voice, not the strongest argument. The mob chooses the views that live and die on the basis of their heart, their fears, or their pain. Rarely do they include their head. Why worry about the great riddles of life when there are so many unwatched cat videos? Having grown weary of this lifestyle of panem et circenses, I long to journey back across the Mediterranean to a land of logos and arete. If you share this sentiment, I implore you, continue reading and aide me in this quest.
philosophy 
12 weeks ago
Cargo cult programming
Cargo cult programming is a style of computer programming characterized by the ritual inclusion of code or program structures that serve no real purpose. Cargo cult programming is typically symptomatic of a programmer not understanding either a bug they were attempting to solve or the apparent solution (compare shotgun debugging, deep magic). The term cargo cult programmer may apply when an unskilled or novice computer programmer (or one inexperienced with the problem at hand) copies some program code from one place to another with little or no understanding of how it works or whether it is required in its new position.

Cargo cult programming can also refer to the results of applying a design pattern or coding style blindly without understanding the reasons behind that design principle. Examples are adding unnecessary comments to self-explanatory code, overzealous adherence to the conventions of a specific programming paradigm, or adding deletion code for objects that garbage collection would have collected automatically.
programming-culture 
august 2017
Google’s Ideological Echo Chamber
* Google’s political bias has equated the freedom from offense with psychological safety, but shaming into silence is the antithesis of psychological safety.

* This silencing has created an ideological echo chamber where some ideas are too sacred to be honestly discussed.

* The lack of discussion fosters the most extreme and authoritarian elements of this ideology.

* Extreme: all disparities in representation are due to oppression

* Authoritarian: we should discriminate to correct for this oppression

* Differences in distributions of traits between men and women may in part explain why we don’t have 50% representation of women in tech and leadership. Discrimination to reach equal representation is unfair, divisive, and bad for business.
programming-culture 
august 2017
HTTPie
HTTPie—aitch-tee-tee-pie—is a command line HTTP client with an intuitive UI, JSON support, syntax highlighting, wget-like downloads, plugins, and more.
tools 
july 2017
What is PECS (Producer Extends Consumer Super)?
The principles behind this in Computer Science is named after

* Covariance - ? extends MyClass,
* Contravariance - ? super MyClass and
* Invariance/non-Variance - MyClass

The picture below should explain the concept.
functional-programming 
july 2017
Red Programming Language
Red is a next-gen programming language, strongly inspired by REBOL. Main features are:

* Human-friendly syntax
* Homoiconic (Red is its own meta-language and own data-format)
* Functional, imperative, reactive and symbolic programming
* Prototype-based object support
* Gradual and multi-typing
* Macros system
* Rich set of built-in datatypes (50+)
* Both statically and JIT-compiled to native code
* Cross-compilation done right
* Produces executables of less than 1MB, with no dependencies
* Concurrency and parallelism strong support (actors, parallel collections)
* Low-level system programming abilities through the built-in Red/System DSL
* Powerful PEG parser DSL included
* Cross-platform native GUI system, with a UI DSL and drawing DSL
* Bridging to the JVM
* High-level scripting and REPL console included
* Visual Studio Code plugin, with many helpful features
* Highly embeddable
* Low memory footprint, garbage collected
* Single-file (~1MB) contains whole toolchain, full standard library and REPL.
* No install, no setup
* Fun guaranteed!
programming-languages 
july 2017
Computing History at Bell Labs
And in the late '30s, George Stibitz had an idea that some of the work that they were doing on hand calculators might be automated by using some of the equipment that the Bell System was installing in central offices, namely relay circuits. He went home, and on his kitchen table, he built out of relays a binary arithmetic circuit. He decided that binary was really the right way to compute.
programming-culture 
june 2017
TempleOS
Development for TempleOS began in 2003 after Davis suffered from a series of manic episodes that left him briefly hospitalized for mental health issues.

Davis is a former atheist who believes that he can "talk with God" and that God told him the operating system he built was God's third temple. According to Davis, TempleOS is of 'Divine' intellect due to the inspired nature of the code. According to Davis, God said to create the operating system with 640x480, 16 colors display and a single audio voice. The operating system was coded in a programming language developed by Davis in C/C++ called "HolyC".
programming-culture 
june 2017
History of the browser user-agent string
And so Microsoft made their own web browser, which they called Internet Explorer, hoping for it to be a “Netscape Killer”. And Internet Explorer supported frames, and yet was not Mozilla, and so was not given frames. And Microsoft grew impatient, and did not wish to wait for webmasters to learn of IE and begin to send it frames, and so Internet Explorer declared that it was “Mozilla compatible” and began to impersonate Netscape, and called itself Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), and Internet Explorer received frames, and all of Microsoft was happy, but webmasters were confused.
internet-culture 
june 2017
Turing tarpit
Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.
programming-culture  wikipedia 
june 2017
Immutable data structures are not as good as you think they are
If such case, the Immutable may still be a worthy investment, but only if write operations on the data structure are not very common, and you must have your application in a language that has some functional capability, preferably with a lot of free memory, and a good GC.
concurrency 
june 2017
History of Actors
I’m going to cover the classic actor model using Agha’s presentations as a guide; then I’ll compare it to E, a communicating event-loop actor language, and to Erlang, a process actor language.
actor-model 
june 2017
Memoization
In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.
wikipedia  architecture 
june 2017
Debugging managed code memory leak with memory dump using windbg
This task is not as hard as it sounds like. I just simply used the below 9 steps to debug one possible memory leak at work a while back.

1. .symfix and .reload -f
2. .loadby sos mscorwks!
3. !VerifyHeap
4. !EEHeap
5. !dumpheap -stat
6. !dumpheap -type
7. !do
8. !threads
9. kb
dot-net 
may 2017
What lies beneath async/await in C# ?
That is because the compiler generated (notice the CompilerGenerated attribute) additional class in which the whole „magic” happens – state machine.
dot-net  concurrency 
may 2017
A Generation Lost in the Bazaar
But to anyone who has ever wondered whether using m4 macros to configure autoconf to write a shell script to look for 26 Fortran compilers in order to build a Web browser was a bit of a detour, Brooks offers well-reasoned hope that there can be a better way.
programming-culture  nix 
may 2017
The Truth About Lisp
Lisp was invented a long time ago, before java, before C, before fortran, before computers, before people, before the earth was built. the universe itself is a lisp program so trivial that no true lisper would even bother implementing it.
programming-culture  functional-programming 
may 2017
You're using HttpClient wrong and it is destabilizing your software
But HttpClient is different. Although it implements the IDisposable interface it is actually a shared object. This means that under the covers it is reentrant) and thread safe. Instead of creating a new instance of HttpClient for each execution you should share a single instance of HttpClient for the entire lifetime of the application. Let’s look at why.
dot-net 
may 2017
Prolegomena to Any Future Metaphysics
Unlike the Critique of Pure Reason, which was written in the synthetic style, Kant wrote the Prolegomena using the analytical method. He divided the question regarding the possibility of metaphysics as a science into three parts. In so doing, he investigated the three problems of the possibility of pure mathematics, pure natural science, and metaphysics in general. His result allowed him to determine the bounds of pure reason and to answer the question regarding the possibility of metaphysics as a science.
philosophy 
may 2017
Lookup<TKey, TElement> Class
Represents a collection of keys each mapped to one or more values.
dot-net 
may 2017
Dataflow
Dataflow is a software paradigm based on the idea of disconnecting computational actors into stages (pipelines) that can execute concurrently. Dataflow can also be called stream processing or reactive programming.
architecture 
may 2017
The TLA+ Video Course
This is a work in progress that consists of the beginning of a series of video lectures to teach programmers and software engineers how to write their own TLA+ specifications. It assumes a basic understanding of programming concepts. Some knowledge of elementary mathematics, such as might be taught in a beginning university math course for computer scientists, would also be helpful.
leslie-lamport 
may 2017
Node-RED
Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.

It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
node  architecture 
april 2017
Modularity of mind
Modularity of mind is the notion that a mind may, at least in part, be composed of innate neural structures or modules which have distinct established evolutionarily developed functions.
philosophy 
april 2017
git init
Resources to learn the basics of git (link). Includes a tutorial, a cheatsheet, and some links to more advanced resources.

The tutorial explains the basic git commands through animations. Currently includes the commands: init, add, commit, status, diff, log.
git 
april 2017
toki pona
Toki Pona is a human language I invented in 2001. It was my attempt to understand the meaning of life in 120 words.
linguistics 
april 2017
Death Of A Programmer. Life Of A Farmer.
I am fully aware that this is not the path that everyone would choose to keep them alive, but the decision to leave my desk and say, “Hello” to the real world is one that has paid me in ways that money simply cannot. The old me who believed in slaving away at a desk just for a dollar to “support” my family had to die in order for the new, stronger, happier man to come alive.
programming-culture 
april 2017
Snowball (programming language)
Snowball is a small string processing programming language designed for creating stemming algorithms for use in information retrieval.
programming-languages  wikipedia 
april 2017
Precise Computation of CLR Object Size
I think many developers have been wondering: How many bytes does an object instance take in managed code? What’s the limit for a CLR object? Are there any differences between 32-bit and 64-bit systems for memory allocation?
dot-net 
april 2017
.NET API Browser
Welcome to the .NET API Browser – your one-stop shop for all .NET-based APIs from Microsoft. Simply start searching for any managed APIs by typing in the box below.
dot-net 
april 2017
What My Stroke Taught Me
I had also lost the ability even to engage in self-talk. ... I simply existed. ... It was as if without words I could not be concerned about tomorrow.
linguistics  philosophy 
april 2017
Consciousness Is Made of Atoms, Too
In every case, these environmental stimuli exist in analog form and are converted into digital form by the receptor cells and the neural circuits connected to them.
philosophy  biology 
april 2017
Yarn
Fast, reliable, and secure dependency management.
package-manager  javascript 
april 2017
SPEECH ACTS AND PRAGMATICS
If you say, "Tomatoes are fruits but I don't believe it," you are denying that you believe what you are asserting. This contradiction is puzzling because it is not an outright logical inconsistency. That tomatoes are fruits does not entail your believing it, nor vice versa, and there's no contradiction in my saying, "Tomatoes are fruits but you don't believe it." Your inconsistency arises not from what you are claiming but from the fact that you are claiming it. That's what makes it a pragmatic contradiction.
linguistics  wittgenstein 
april 2017
Atomic shared log file writes with FILE_APPEND_DATA
I was flicking through my copy of Michael Kerrisk’s The Linux Programming Interface a few nights back and stumbled upon the Linux O_APPEND file open flag. Files opened with this option don’t track a current position in the file but instead append all writes, atomically, to the end of the file.

This is just what concurrent writers to a shared log file need in order to avoid clobbering each other’s writes, or interleaving chunks of events in unexpected ways.
dot-net 
march 2017
I thought I'd write an update on git and SHA1, since the SHA1 collision attack was so prominently in the news.
(1) First off - the sky isn't falling. There's a big difference between using a cryptographic hash for things like security signing, and using one for generating a "content identifier" for a content-addressable system like git.

(2) Secondly, the nature of this particular SHA1 attack means that it's actually pretty easy to mitigate against, and there's already been two sets of patches posted for that mitigation.

(3) And finally, there's actually a reasonably straightforward transition to some other hash that won't break the world - or even old git repositories.
git 
march 2017
Re: SHA1 collisions found
Put another way: I doubt the sky is falling for git as a source control management tool. Do we want to migrate to another hash? Yes. Is it "game over" for SHA1 like people want to say? Probably not.
git 
february 2017
Re: Re: Merge with git-pasky II.
And the thing is, that's just crazy talk. The difference between a crazy person and an intelligent one is that the crazy one doesn't realize what makes sense in the world. The goal of good engineering is not to ask "what if?", but to ask "how do I make this work as well as possible".
git 
february 2017
Bulma
Bulma is an open source CSS framework based on Flexbox and built with Sass. It's 100% responsive, fully modular, and available for free.
css 
february 2017
Alan Kay has agreed to do an AMA today
This request originated via recent discussions on HN, and the forming of HARC! at YC Research. I'll be around for most of the day today (though the early evening).
alan-kay 
february 2017
The 68 things the CLR does before executing a single line of your code (*)
Because the CLR is a managed environment there are several components within the runtime that need to be initialised before any of your code can be executed. This post will take a look at the EE (Execution Engine) start-up routine and examine the initialisation process in detail.

(*) 68 is only a rough guide, it depends on which version of the runtime you are using, which features are enabled and a few other things.
dot-net 
february 2017
Proto Actor
Simple Concurrency & Distribution. Asynchronous and Distributed by design. High-level abstractions like Actors and Virtual Grains.
actor-model 
february 2017
Analysing .NET Memory Dumps with CLR MD
However back in May 2013 Microsoft released the CLR MD library, describing it as:

… a set of advanced APIs for programmatically inspecting a crash dump of a .NET program much in the same way as the SOS Debugging Extensions (SOS). It allows you to write automated crash analysis for your applications and automate many common debugger tasks.

This post explores some of the things you can achieve by instead using CLR MD, a C# library which is now available as a NuGet Package.
dot-net 
january 2017
A bite of Python
Being easy to pick up and progress quickly towards developing larger and more complicated applications, Python is becoming increasingly ubiquitous in computing environments. Though apparent language clarity and friendliness could lull the vigilance of software engineers and system administrators -- luring them into coding mistakes that may have serious security implications. In this article, which primarily targets people who are new to Python, a handful of security-related quirks are looked at; experienced developers may well be aware of the peculiarities that follow.
python 
january 2017
Pixie
A small, fast, native lisp with "magical" powers.
python  functional-programming  programming-languages 
january 2017
Nicaraguan Sign Language
Nicaraguan Sign Language is a sign language largely spontaneously developed by deaf children in a number of schools in western Nicaragua in the 1970s and 1980s. It is of particular interest to the linguists who study it, because it offers a unique opportunity to study what they believe to be the birth of a new language.
linguistics 
january 2017
OneLook
OneLook Dictionary Search
tools 
january 2017
Rider
A cross-platform .NET IDE based on the IntelliJ platform and ReSharper.
dot-net 
january 2017
Global interpreter lock
Global interpreter lock (GIL) is a mechanism used in computer language interpreters to synchronize the execution of threads so that only one native thread can execute at a time. An interpreter that uses GIL always allows exactly one thread to execute at a time, even if run on a multi-core processor. Some popular interpreters that have GIL are CPython and Ruby MRI.
concurrency 
december 2016
"Design Patterns" Aren't
* I think Alexander's idea is tremendous
* Computer programming might benefit from this tremendous idea
* But the Gang-of-Four idea is obstructing its niche
* Everyone already knows that "Design Patterns" means a library of C++ code templates

We need to take a fresh look at Christopher Alexander
architecture  oo 
november 2016
Spoonerism
A spoonerism is an error in speech or deliberate play on words in which corresponding consonants, vowels, or morphemes are switched (see metathesis) between two words in a phrase.
wikipedia 
november 2016
The P programming language
P is a language for asynchronous event-driven programming. P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P unifies modeling and programming into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be validated using systematic testing. P has been used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. P is also suitable for the design and implementation of networked, embedded, and distributed systems.
programming-languages 
october 2016
Vehicles: Experiments in Synthetic Psychology
These imaginative thought experiments are the inventions of one of the world's eminent brain researchers. They are "vehicles," a series of hypothetical, self-operating machines that exhibit increasingly intricate if not always successful or civilized "behavior." Each of the vehicles in the series incorporates the essential features of all the earlier models and along the way they come to embody aggression, love, logic, manifestations of foresight, concept formation, creative thinking, personality, and free will. In a section of extensive biological notes, Braitenberg locates many elements of his fantasy in current brain research.
books  philosophy 
august 2016
“I Want to Know What Code Is Running Inside My Body”
Marie Moe is a cyborg who runs on proprietary software she can’t trust. She’d like to change that.
programming-culture 
august 2016
Try .NET MVC
Dive into the world of ASP.NET MVC and learn how to build easy-to-maintain web applications with the MVC design pattern and ASP.NET Core.
dot-net 
august 2016
On Chomsky and the Two Cultures of Statistical Learning
It's true there's been a lot of work on trying to apply statistical models to various linguistic problems. I think there have been some successes, but a lot of failures. There is a notion of success ... which I think is novel in the history of science. It interprets success as approximating unanalyzed data.
linguistics 
august 2016
Google CS First
Empowering all students to create with technology through free computer science clubs developed by Google.
programming-for-kids 
august 2016
The Itch
One morning, after she was awakened by her bedside alarm, she sat up and, she recalled, “this fluid came down my face, this greenish liquid.” She pressed a square of gauze to her head and went to see her doctor again. M. showed the doctor the fluid on the dressing. The doctor looked closely at the wound. She shined a light on it and in M.’s eyes. Then she walked out of the room and called an ambulance. Only in the Emergency Department at Massachusetts General Hospital, after the doctors started swarming, and one told her she needed surgery now, did M. learn what had happened. She had scratched through her skull during the night—and all the way into her brain.
psychology 
july 2016
Libraries
Discover new modules and libraries you can use in your projects.
tools 
july 2016
Marp
Let's write the presentation on multi-platform, with like a feeling of Markdown editor.
tools 
july 2016
Apophenia
Apophenia is the human tendency to perceive meaningful patterns within random data.
psychology  architecture 
july 2016
Laws of programming
A complete set of algebraic laws is given for Dijkstra’s nondeterministic sequential programming language. Iteration and recursion are explained in terms of Scott’s domain theory as fixed points of continuous functionals. A calculus analogous to weakest preconditions is suggested as an aid to deriving programs from their specifications.
programming-papers  tony-hoare 
july 2016
Brave
The new Brave browser automatically blocks ads and trackers, making it faster and safer than your current browser.
browsers 
june 2016
« earlier      
actor-model agile alan-kay angular ants architecture art biology books browsers carl-hewitt comics compilers concurrency csp css david-ungar dojo don-syme dot-net drugs erik-meijer events functional-programming git github hans-j-boehm hosting human-machine internet-culture javascript javascript-history javascript-libs joe-armstrong keyboards leslie-lamport licenses linguistics ml mongodb nintendo nix node oo package-manager papua-new-guinea pdf persistent-data-structures philip-wadler philosophy programming-culture programming-for-kids programming-games programming-languages programming-papers programming-talks psychology python redis research rich-hickey rob-pike rust rx scrum sicp snippets startup tech-articles tony-hoare tools typography ux vcs versioning vim web wikipedia wittgenstein

Copy this bookmark:



description:


tags: