ssam + programming   685

How to Program Your Job - The Atlantic
"As it stands, self-automation can be empowering. But as automation techniques become better understood, they may simply become yet another skill set management can expect employees to possess, or learn—passing the gains to their organization, then making themselves useful in some other way. “Employees will increasingly need to automate their own jobs or get moved out,” writes the Harvard Business Review. “Worldwide, we’ll see many more top-down managerial mandates for bottom-up automation initiatives.” And the rich and their employee-built bots will again swallow the gains."
computing  work  business  economics  programming  life 
17 days ago by ssam
CodeGrades
"CodeGrades are eight cumulative steps for learning how to code. They're a programming version of time-proven techniques like music grades, belts in martial arts or lifeguard certification. Level up by applying the knowledge and skills needed for each grade to your own fun, interesting and challenging coding projects."
programming  teaching  education 
24 days ago by ssam
End to End Testing Framework | Cypress.io
Runs tests totally inside the browser, independent of any framework. Which seems good. Bonus points if I can also automate it to run headless?!
software  web  development  javascript  to:use  automated  testing  programming 
28 days ago by ssam
The Games Industry is Toxic · Austin Kelmore
"We tell ourselves that the industry has to be this way in order to create the amazing games we all love. We tell ourselves this because the alternative is absolutely terrifying. If games could be made without all of the pain, suffering, and abuse… then that means we chose that path ourselves. We chose to suffer not because we had to, but because we wanted to.

Let me be clear: when I say we, I mean the people who lead companies - executives, managers, and senior employees. We are the people most responsible for how our industry functions because we have the power. We make the decisions to hire and fire, we pay the salaries, we teach others the ways we make games, and we exhibit the cultural norms that others follow. We have that responsibility whether or not we want it."
work  life  programming  software  development  games  business  health  discrimination  management 
28 days ago by ssam
Declarative GTK+ Programming with Haskell | Func Da World
"Callback-centric GUI programming is hard. I prefer using data structures and pure functions for core application code, and keep it decoupled from the GUI code by making rendering as simple as a function State -> Widget. This is the ideal I’m striving for, and what motivated the creation of these packages.

I have just released gi-gtk-declarative and gi-gtk-declarative-app-simple on Hackage. They are both to be regarded as experimental packages, but I hope for them to be useful and stable some day. Please try them out, and post issues on the GitHub tracker if you find anything weird, and give me shout if you have any questions."

This could be interesting in a few years.
haskell  gtk+  declarative  ui  programming 
6 weeks ago by ssam
benfred/py-spy: Sampling profiler for Python programs
"Py-Spy is a sampling profiler for Python programs. It lets you visualize what your Python program is spending time on without restarting the program or modifying the code in any way. Py-Spy is extremely low overhead: it is written in Rust for speed and doesn't run in the same process as the profiled Python program, nor does it interrupt the running program in any way. This means Py-Spy is safe to use against production Python code."
python  profiling  to:use  debugging  tagcloud  analysis  tool  programming 
6 weeks ago by ssam
Coruña Hacks
"Este ano ímoslle dar un pouco máis de emoción e durante 3 sábados traballaremos en equipos para desenvolver proxectos libres que competirán por ser o mellor a finais de ano.

O obxectivo é crear un espacio de traballo periódico no que evolucionar os nosos proxectos a modo de hackathon recurrente no tempo pero sempre con un obxectivo claro, poñer un prototipo a funcionar antes do terceiro evento. "
coruña  galicia  programming  meetup  event  to:attend 
6 weeks ago by ssam
the Origins of Opera and the Future of Programming – The Composition
"We like to give the Nobel Prize to one or two people. But who worked in their lab? Who did they correspond with?

When Jon Von Neumann went to Los Alamos for the Manhattan Project, so did two or three mathematicians that he went to high school with. Really, you grow up in Hungary, what are your chances of getting to Los Alamos? They built each other up."

...

"You don’t hire star developers, put them together, and poof get a great team. It’s the other way around. When developers form a great team, the team makes us into great developers."
music  history  collaboration  people  life  opera  science  programming  future  work  management  i-wish-i-could-show-this-to-everybody 
8 weeks ago by ssam
Thread by @www_ora_tion_ca: "This is wildly disingenuous, I speak as a flight instructor and major IT incident investigator. Modern software authors have the professiona […]"
"35 years ago, an airline bought their first metric airliner, management cancelled the project to update all ground paperwork from metric. Plane ran out of gas and engines shut down in the air. 200 page report: data2.collectionscanada.gc.ca/e/e444/e011083…
Where's the detailed 200-page public report from Facebook on how their management failed to prevent major disinformation campaigns in the US election? There isn't one, because they're just not that mature."
responsibility  software  politics  facebook  programming 
10 weeks ago by ssam
Why Open Source Failed – John Mark – Medium
"Amazon, Google, Facebook, and yes, Microsoft. We’ll address the first 3 first, leaving Microsoft to the end, because it’s a special case. What do the 1st three have in common? They all built their entire business model on open source software, and they have paid very little in license fees to software vendors. That’s their secret."

...

"During the time in which large companies have amassed fortunes with open source software, the wealth gap has continued to widen, and fewer independent software developers are paid directly for their work. This statement is slightly controversial, because it’s quite easy for open source developers to find work, often high-paying. However, that work is often in the context of making products for your employer, which you do not own the intellectual property of. Employers love to pay expert open source developers, as long they give up their intellectual property claims. Most developers, open source and otherwise, are quite happy with this arrangement. After all, who cares what happens to 90% of the people if you’re firmly ensconced within the top 10, 5, or even 1% of earners and never have to look for work again."

...


This perhaps gives some ideas why I felt like leaving the world of software development even while being paid to work completely in the open, and sometimes contributing to software I have a personal interest in (the GNOME desktop).

that said ...

"It’s time to understand something about open source software development: it is not going to save us. Using or developing more open source software is not going to improve anyone’s lives."

...who really believed that writing software was going to make people's lives better?
open  source  software  programming  life  free 
11 weeks ago by ssam
Pattern+Code at Playground – Alex McLean
Teaching kids programming using algorithmic music.
music  algorithmic  teaching  programming 
july 2018 by ssam
Developers. Our Last, Best Hope for Ethics?
"I’ve said we should expect ethical tech processes, but so far there aren’t any! We need to work together as software engineers to develop some, for at least 3 reasons:

So we can hear about and avoid problems that other folk have already encountered.
With a clear process it’s easier to agree whether a feature, combined with its level of monitoring, is ethical.
Once we’ve agreed processes we can automate them!

Let’s start with defining some simple checklists and try them to see if they’re effective. Checklists are a bit low tech but in the aviation industry they have been extraordinarily effective at increasing safety. Learning from existing best practices is a great strategy."
ethics  technology  to:keep-an-eye-on  future  world  code  programming  work 
july 2018 by ssam
correct or inotify: pick one -- wingolog
"Reading down a bit farther, I thought that with some "careful programming", I could get by. After a day of trying, I am now certain that it is impossible to build a correct recursive directory monitor with inotify, and I am not even sure that "good enough" solutions exist."
tracker  linux  programming 
may 2018 by ssam
Self-driving Uber kills Arizona woman in first fatal crash involving pedestrian | Technology | The Guardian
"An autonomous Uber car killed a woman in the street in Arizona, police said, in what appears to be the first reported fatal crash involving a self-driving vehicle and a pedestrian in the US.

Tempe police said the self-driving car was in autonomous mode at the time of the crash and that the vehicle hit a woman, who was walking outside of the crosswalk and later died at a hospital. There was a vehicle operator inside the car at the time of the crash.

Uber said in a statement on Twitter: “Our hearts go out to the victim’s family. We are fully cooperating with local authorities in their investigation of this incident.” A spokesman declined to comment further on the crash."

This is really worrying. Seems that the population of a city in the US have been opted into a trial of experimental life-threatening technology probably without their knowledge or explicit consent.

Blood on the hands of both Uber and the Governor of Arizona here.

I don't think there's any way to make a probabilistic learning algorithm safely deal with every eventuality that may occur on a public road on a real world city. I don't know how many more people need to be murdered by irresponsible programmers before Uber admit that.
technology  murder  death  cars  future  artificial  intelligence  uber  companies-not-to-trust  programming  usa 
march 2018 by ssam
GitLab + Flatpak – GNOME’s full flow
"The biggest news: From now on designers, testers and people with curiosity can install any work in progress (a.k.a ‘merge request‘) in an automated way with a simple click and a few minutes. With the integrated GitLab CI now we generate a Flatpak file for every merge request in Nautilus!

In case you are not familiar with Flatpak, this technology allows anyone using different Linux distributions to install an application that will use exactly the same environment as the developers are using, providing a seamless synchronized experience."
gnome  good  news  apps  flatpak  development  programming  desktop  tagcloud 
march 2018 by ssam
Mitogen — Mitogen master documentation
"Slaves are configured with a custom PEP-302 importer that forwards requests for unknown Python modules back to the host program. When your program asks a context to execute code from an unknown module, all requisite modules are transferred automatically and imported entirely in RAM without need for further configuration."

Can make Ansible 4x faster! Which is nice.

See also: http://pythonsweetness.tumblr.com/post/171589071872/quadrupling-ansible-performance-with-mitogen
python  networking  programming  ansible 
march 2018 by ssam
Welcome to Pygame Zero — Pygame Zero 1.2 documentation
"Pygame Zero is for creating games without boilerplate.

It is intended for use in education, so that teachers can teach basic programming without needing to explain the Pygame API or write an event loop."
programming  python  teaching  education  games 
march 2018 by ssam
eos-select-bandwidth.py
Limit bandwidth for testing purposes.
network  testing  programming  tool 
february 2018 by ssam
Badness 10.0000 | Escaping Hell with Monads
"As programmers we occasionally find ourselves in “Programmer’s Hell”, where our regular abstractions fail to satisfactory solve certain recurrent problems.

In this post we’ll have a look at some instances of such sitations, their “ad hoc” solutions provided at the language level, and finally at how these problems can be solved in a uniform way using Monads. (Call you language implementor and ask for do-notation today!)"

This attempts to be insightful, but by giving no explaination of how the magical "monad" works underneath it doesn't gain me anything.
haskell  functional  programming 
february 2018 by ssam
TX Modular is a vast, free set of sound tools in SuperCollider - CDM Create Digital Music
"Paul Miller writes to share his TX Modular System, which gives you the keys to a huge treasure trove of modules, and some easier ways of combining them.

All of this also means you don’t have to touch SuperCollider code if you don’t want to – though you can add that, too, if you like. (And you can run some code without having to build everything else you need from scratch.) "
audio  programming  synth  digital  software  modular  to:investigate 
february 2018 by ssam
pybee/yorkshire4: The classic Usborne computer programming books - now in Python!
"A project resurrecting the classic 1980's Usborne Computer Guide books, for a new generation of programmers.

This project is hosted on Read The Docs"
programming  history  books  education  children 
february 2018 by ssam
cblp/yaml-sucks: YAML sucks.
"YAML specification is so ambigous, that you can't be sure if tomorrow you will parse the same data from YAML file as you have yesterday.

Let's see how different implementations parse YAML code. Settings are default or near to default or typical for that language. We use JSON to represent data the uniform way."

That said, I should have a 'x days without losing time to JSON's hatred of trailing commas' tally somewhere.

Also https://github.com/imbal/safeyaml
programming  input  language 
january 2018 by ssam
imbal/safeyaml: SafeYAML: A linter for YAML-favoured JSON (& autoformatting too!)
"SafeYAML is an aggressively small subset of YAML. It's everything you need for human-readable-and-writable configuration files, and nothing more.

You don't need to integrate a new parser library: keep using your language's best-maintained YAML parser, and drop the safeyaml linter into your CI pipeline, pre-commit hook and/or text editor. It's a standalone script, so you don't have any new dependencies to worry about."
programming 
january 2018 by ssam
asciinema - Record and share your terminal sessions, the right way
"asciinema [as-kee-nuh-muh] is a free and open source solution for recording terminal sessions and sharing them on the web. Read about how it works. "
recording  terminal  programming  software  sharing  video  text 
january 2018 by ssam
Fabrice Bellard: Portrait of a Super-Productive Programmer
"A bit of background provides the context to understand this record clearly. It’s common in programming folklore to talk about how a particular program was pulled together in one intense weekend, or during a vacation interval. Many of these tales are true, as far as they go; several of the best-known programs were first launched with a specific effort of just a few days. This leads some to expect that those few days define the life cycle of program development: A sufficiently clever programmer can create the Linux kernel this holiday season, take the next weekend off to invent the Ruby programming language, build an award-winning iPad game the following month, and so on.

It’s not so. Just because top sprinters finish a hundred meters in under ten seconds doesn’t mean they sustain that pace for the duration of a marathon. When Bellard wrote LZEXE, for example, he created a program that performed the data compression he needed at one particular time (it was the first widely-used executable file compressor for MS-DOS).

What’s notable is that he also invested the follow-up effort to ensure the software was engineered well-enough to work on other computers and on multiple operating systems, could be understood and maintained by others, was adequately documented, licensed to be useful, and so on. All those apparently secondary activities typically take orders of magnitude more time than the original coding at the heart of a successful program."
programming  people  productivity 
january 2018 by ssam
Eyes Above The Waves: Ancient Browser-Wars History: MD5-Hashed Posts Declassified
"One lesson here is even insiders can be overly pessimistic about the prospects of an old codebase; dedicated, talented staff working over the long haul can do wonders, and during that time your competitors will have a chance to develop their own problems. "
programming  web  history  browser  mozilla 
january 2018 by ssam
MessagePack: It's like JSON. but fast and small.
"MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves."
data  protocol  programming  json 
january 2018 by ssam
p-e-w/argos: Create GNOME Shell extensions in seconds
"Argos lets you write GNOME Shell extensions in a language that every Linux user is already intimately familiar with: Bash scripts.

More precisely, Argos is a GNOME Shell extension that turns executables' standard output into panel dropdown menus. It is inspired by, and fully compatible with, the BitBar app for macOS. Argos supports many BitBar plugins without modifications, giving you access to a large library of well-tested scripts in addition to being able to write your own."
gnome-shell  linux  amazing  gnome  ui  to:use  desktop  programming 
november 2017 by ssam
Code Hospitality - Federico's Blog
"Nadia talks about thinking of how to make people comfortable in your code and in your team/organization/etc., and does it in terms of thinking about host/guest relationships. Have you ever stayed in an AirBnB where the host carefully prepares some "welcome instructions" for you, or puts little notes in their apartment to orient/guide you, or gives you basic guidance around their city's transportation system? We can think in similar ways of how to make people comfortable with code bases."
programming  community  open  source 
november 2017 by ssam
The Unreasonable Effectiveness of Recurrent Neural Networks
"There’s something magical about Recurrent Neural Networks (RNNs). I still remember when I trained my first recurrent network for Image Captioning. Within a few dozen minutes of training my first baby model (with rather arbitrarily-chosen hyperparameters) started to generate very nice looking descriptions of images that were on the edge of making sense. Sometimes the ratio of how simple your model is to the quality of the results you get out of it blows past your expectations, and this was one of those times. What made this result so shocking at the time was that the common wisdom was that RNNs were supposed to be difficult to train (with more experience I’ve in fact reached the opposite conclusion). Fast forward about a year: I’m training RNNs all the time and I’ve witnessed their power and robustness many times, and yet their magical outputs still find ways of amusing me. This post is about sharing some of that magic with you."
algorithm  machine-learning  writing  code  programming 
november 2017 by ssam
Korban.net
"I've used ORMs, and I've written a lot of plain SQL. For four years, I worked on a product in a company I co-founded, and I made a choice not to use an ORM in that product, relying on plain SQL instead. This choice absolutely paid off: we leveraged Postgres to the max by writing big complex queries (see example in this post: Debugging complex PostgreSQL queries with pgdebug), and I'm certain we ended up with less code overall. When I think about what would have happened if we tried to implement all the same functionality with an ORM, I'm certain that it would have crippled the product."
database  programming  object  mapping 
november 2017 by ssam
30 years later, QBasic is still the best | Personal Registry Editor
"Yes, QBasic is a terrible procedural language. It introduces one to concepts widely considered harmful, uses awkward syntax for implicit declarations, is not case sensitive, is non-zero-based, etc. the list goes on… When developing a skill, it is much better to acquire the right reflexes from the start rather than have to correct years of bad practice. Following this advice, I should have probably started off with the basics of the ruby language which I love. Yet, while most of those QBasic concepts are today generally considered as red flags by our peers, they each served a very specific purpose at the time: to keep the language simple and accessible, a notion that every other language has left behind in favor of flexibility, complexity and logic."
qbasic  programming  education  kids  games 
november 2017 by ssam
Leave this free software running, and it'll come up with rhythms for you - CDM Create Digital Music
Do you want to soak up the glory of the life of an IDM musician (the touring in helicopters, the seven-figure royalties), but want to avoid the actual work of making the music?

Well, then this Csound-based tool is for you. Run it, and it spits out a nice random rhythm or two. Leave it running, and it’ll generate a whole folder full of rhythms and various bpm. Dump those into Ableton Live, pick out the ones you like, and … ah, okay, now you will have to do some work turning this into music.
programming  music  rhythm  algorithmic  generative 
october 2017 by ssam
Over-Qualification, Wut?
"“You are over-qualified for the position and we don’t think you’d be satisfied” is de facto age discrimination"

There's a whole load of discrimination as you get older really, lots of avenues close up after you turn 30 in things like volunteering
work  programming  age  discrimination  jobs 
october 2017 by ssam
The Coming Software Apocalypse - The Atlantic
"In September 2007, Jean Bookout was driving on the highway with her best friend in a Toyota Camry when the accelerator seemed to get stuck. When she took her foot off the pedal, the car didn’t slow down. She tried the brakes but they seemed to have lost their power. As she swerved toward an off-ramp going 50 miles per hour, she pulled the emergency brake. The car left a skid mark 150 feet long before running into an embankment by the side of the road. The passenger was killed. Bookout woke up in a hospital a month later.

The incident was one of many in a nearly decade-long investigation into claims of so-called unintended acceleration in Toyota cars. Toyota blamed the incidents on poorly designed floor mats, “sticky” pedals, and driver error, but outsiders suspected that faulty software might be responsible. The National Highway Traffic Safety Administration enlisted software experts from NASA to perform an intensive review of Toyota’s code. After nearly 10 months, the NASA team hadn’t found evidence that software was the cause—but said they couldn’t prove it wasn’t.

It was during litigation of the Bookout accident that someone finally found a convincing connection. Michael Barr, an expert witness for the plaintiff, had a team of software experts spend 18 months with the Toyota code, picking up where NASA left off. Barr described what they found as “spaghetti code,” programmer lingo for software that has become a tangled mess. Code turns to spaghetti when it accretes over many years, with feature after feature piling on top of, and being woven around, what’s already there; eventually the code becomes impossible to follow, let alone to test exhaustively for flaws.
Using the same model as the Camry involved in the accident, Barr’s team demonstrated that there were actually more than 10 million ways for the onboard computer to cause unintended acceleration. They showed that as little as a single bit flip—a one in the computer’s memory becoming a zero or vice versa—could make a car run out of control. The fail-safe code that Toyota had put in place wasn’t enough to stop it. “You have software watching the software,” Barr testified. “If the software malfunctions and the same program or same app that is crashed is supposed to save the day, it can’t save the day because it is not working.”"

This later goes into an interesting discussion of formal verification and model-driven programming. Which is interesting and very much of use in these industries I think. However it's presented as almost a panacea, when in fact of course your complex models are pretty difficult to very too ... and rely on your libraries beneath being solid anyway.
programming  software  obvious  i-wish-i-could-show-this-to-everybody  technology-is-not-the-solution-for-everything  future  stupid  maths  logic  design  engineering 
september 2017 by ssam
The Realities of Being a FOSS Maintainer - Site Feedback - Caddy Community
Good example of how people are horrible and also open source is a thing.

"You can’t dangle a maintainer’s open source project in front of them like a carrot and say, “You want this (to succeed), don’t you?”

Other forms this takes are:

“In order to secure the future of Caddy…”
“I’m not sure why anyone would buy software from you ever again…”
“Final nail in the coffin for Caddy”
“I know Caddy’s your baby, …”
“Bye …” or “Have a nice day” (dismissively)

as well as any comment insinuating that the maintainer is reliant upon a project that is not profitable or sustainable. Here’s the brutal truth for 99.9% (* not an actual figure) of open source projects, folks: you (the user of an open source project) need and rely on the project more than the maintainers do. Do not make the mistake of thinking that maintainers are emotionally tied to their projects. Definitely don’t call it their ‘baby’.

So, you have it backwards. Remember, these changes are being made because Caddy is not sustainable as-is. I don’t make a living from it. Up till now, I’ve enjoyed working on it, so sure, I’d like to make a living from it when I finish grad school. I, along with most FOSS maintainers, have nothing to lose.

Remember that next time you think you can weaponize a project’s potential (or lack of) success against its owner or maintainers."
open  source  software  programming  development  maintenance  work  business  money  life  free 
september 2017 by ssam
The Magic of GObject Introspection - Federico's Blog
"Before continuing with the glib-rs architecture, let's take a detour and look at GObject Introspection. Although it can seem like an obscure part of the GNOME platform, it is an absolutely vital part of it: it is what lets people write GNOME applications in any language.

Let's start with a bit of history."
history  gobject  c  programming  glib  gnome  computers  technology  language  python 
september 2017 by ssam
Thread of things I did not learn in my top-tier CS program that would have been VERY useful:
"1. Large-scale appreciation of form, like in art or fashion. This is the same skill as understanding a codebase as a system.

2. Effective critique, like in dance or visual arts. This is the same skill as usefully reviewing someone else's code.

3. Persuasive writing, like in history or poli sci. This is the same skill as convincing people via email. Especially useful in large orgs.

4. Persuasive speaking, like in business. This is the same skill as being effective in meetings or chat. Especially useful in smaller orgs."
programming  education  art  communication  everything-in-terms-of-everything-else  computer  science  university 
september 2017 by ssam
Coding with gumption | Robert Heaton
"The most common type of motorcycle maintenance setback, and for now the only one that I would like to discuss, is the out-of-order reassembly. This trap occurs when a mechanic reassembles the parts of a machine in the wrong order, realising his mistake only when he finds a stray connecting rod-bearing liner lying on his workshop floor. It afflicts the engineer who realises that his nomenclature is off, or that he has used the wrong library for the task, or that his fundamental architecture is slightly faulty. The gumption drains from his cheeks and stomach as he realises the magnitude of the re-reassembly that must follow. There is nothing for it but to undo everything he has been working on and do it again, only this time with slightly more care and wisdom."
programming  craft  engineering  work  advice 
september 2017 by ssam
ditaa
"ditaa is a small command-line utility written in Java, that can convert diagrams drawn using ascii art ('drawings' that contain characters that resemble lines like | / - ), into proper bitmap graphics. This is best illustrated by the following example -- which also illustrates the benefits of using ditaa in comparison to other methods :)"
diagram  graphics  programming  tool  design  visual 
july 2017 by ssam
GNU's Bulletins - GNU Project - Free Software Foundation
"The GNU's Bulletin, volume 1, was published by the Free Software Foundation in 24 semiannual numbers, 1986-1998. It contained a status report from and news about the GNU Project; news about other free software and documentation; information about FSF publications for sale; and other items likely to interest those who care about free software."
history  gnu  free  software  programming 
july 2017 by ssam
What Your Open Source Culture Really Says, Part One by Shanley Kane | Model View Culture
"We focus on technical excellence.

What Your Culture Really Says: There’s no one we work with who possesses any competencies whatsoever outside of coding. We need user experience design, technical writing, community management and product management to actually build something remotely useful, and our project will fail because we don’t have those skills on our team."
open  source  software  culture  technology  management  work  programming  development 
june 2017 by ssam
Avocado Testing Framework
Test harness that can deal with simple shell script test cases, and do fancy stuff
testing  programming  tools 
june 2017 by ssam
Comparison with Other Frameworks — Vue.js
Interesting looking JavaScript web framework with data binding but not madness.

Knockout.js was my previous favourite and they say:
Knockout was a pioneer in the MVVM and dependency tracking spaces and its reactivity system is very similar to Vue’s. Its browser support is also very impressive considering everything it does, with support back to IE6! Vue on the other hand only supports IE9+.

Over time though, Knockout development has slowed and it’s begun to show its age a little. For example, its component system lacks a full set of lifecycle hooks and although it’s a very common use case, the interface for passing children to a component feels a little clunky compared to Vue’s.

There also seem to be philosophical differences in the API design which if you’re curious, can be demonstrated by how each handles the creation of a simple todo list. It’s definitely somewhat subjective, but many consider Vue’s API to be less complex and better structured."
"
javascript  web  framework  programming  ui 
june 2017 by ssam
Emacs Horrors - Index
Documenting bad code and bad practice within Emacs. I have no issue with Emacs (although I don't use it) but its good to call this stuff out in the hope of improving things.
programming  bad 
may 2017 by ssam
Products – BubbleSort Zines
"Basically the goal of these zines, as I understand it, is to show people (especially-but-not-only teenage girls) that interesting computer science concepts like encryption, image processing, and computer networking can be for them.

I think that’s really important, and I’m really delighted to see such high-quality explanations presented in a smart and friendly way that’s very different from the traditional way CS material is presented. Often material that’s written for young people gets dumbed down or doesn’t go into all the interesting details, but of course 13-14 year olds can understand a lot of complex concepts, as long as you explain them clearly!"

https://jvns.ca/blog/2017/05/02/like-zines-about-computers--you-might-love-bubblesort-zines/
programming  education  art  present 
may 2017 by ssam
Writing an Audio Plugin in Rust
Looks simple, but then writing an LV2 plugin in C isn't a huge amount more difficult.
programming  boucle  rust  vst 
march 2017 by ssam
clearlinux/psstop
"PPSTOP tracks the amount of memory from the process' proportional share of this mapping (Pss) and the proportional swap share of the mapping (SwapPss).

Others tools like ps doesn't give an acurate detail of which processes are consuming the memory of our system . Depending on how you look at it, ps is not reporting the real memory usage of processes. What it is really doing is showing how much real memory each process would take up if it were the only process running."
memory  performance  linux  programming  testing 
march 2017 by ssam
The eigenvector of "Why we moved from language X to language Y" · Erik Bernhardsson
"I was reading yet another blog post titled “Why our team moved from to " (I forgot which one) and I started wondering if you can generalize it a bit. Is it possible to generate a N * N contingency table of moving from language X to language Y?So I wrote a script for it. You can query Google from a script and get the number of search results using a tiny snippet. I tried a few different query strings, like move from <language 1> to <language 2>, switch to <language 2> from <language 1> and a few more ones."
statistics  language  programming  culture 
march 2017 by ssam
The Language Server Protocol
"LSP creates the opportunity to reduce the m-times-n complexity problem of providing a high level of support for any programming language in any editor, IDE, or client endpoint to a simpler m-plus-n problem.

For example, instead of the traditional practice of building a Python plugin for VSCode, a Python plugin for Sublime Text, a Python plugin for Vim, a Python plugin for Sourcegraph, and so on, for every language, LSP allows language communities to concentrate their efforts on a single, high performing language server that can provide code completion, hover tooltips, jump-to-definition, find-references, and more, while editor and client communities can concentrate on building a single, high performing, intuitive and idiomatic extension that can communicate with any language server to instantly provide deep language support. "
code  programming  tools  integration  development  environment  compiler  protocol 
march 2017 by ssam
FBP Network Protocol
If you implemented this protocol in an LV2 plugin host and used it wht Flowhub.io would you basically have a replacement for Max/MSP right there? Might be interesting.
lv2  flow  programming  to:consider  max-msp  audio  music  sound 
march 2017 by ssam
jonnor/sndflo: Visual programming SuperCollider using Flowhub
Would be fun to play with even though I know nothing of SuperCollider
music  sound  programming  visual  flow  to:play-with 
march 2017 by ssam
Open Music Kontrollers -- Orbit LV2 plugins
"Beatbox

Creates MIDI events based on LV2 time position events (bars and beats), e.g. to drive a drum machine. Bars and beats can be disabled/enabled separately.
Cargoship

Record/Playback of arbitrary LV2 atoms to/from disk. Record all incoming atom messages with sample accuracy and play them back later from disk. Stored atom event data is part of the plugin state and thus preserved across instantiations.
Click

Synthesizes click tracks based on LV2 time position events (bars and beats). Bars and beats can be disabled/enabled separately.
Looper

Loops arbitrary LV2 atom events on a ping-pong buffer. E.g. loops MIDI, OSC or anything else that can be packed into LV2 atoms with sample accuracy. Needs to be driven by LV2 time position events.
Pacemaker

Creates LV2 time position events from scratch to drive other plugins.
Subspace

Subdivide or multiply incoming time signals by whole fractions, e.g. to speed up time x2, x3, ... or slow it down to x1/2, x1/3, ... "
boucle  midi  music  programming  events  to:use 
march 2017 by ssam
Marco Barisione’s Weblog » Karton – running Linux programs on macOS, a different Linux distro, or a different architecture
"I wrote Karton, a program which, using Docker, manages semi-persistent containers with easy to use automatic folder sharing and lots of small details which make the experience smooth. You shouldn’t notice you are using command line programs from a different OS.After defining which distro and packages you need (this is called an “image”), you can just execute Linux programs by prefixing them with karton run IMAGE-NAME LINUX-COMMAND."
command  line  linux  programming  tool  to:use  baserock  shell  docker 
march 2017 by ssam
Seaquence lets you make music as animated ocean creatures - CDM Create Digital Music
I tried to do this in Max/MSP once using additive synthesis with each oscillator represented as a fish in a tank...

this is Apple only so balls to it.
music  synthesis  ui  design  programming 
march 2017 by ssam
Why Replace SHA-1 with BLAKE2?
"Thanks to design choices and implementation optimizations, BLAKE2 often outperforms SHA-1. For example, the chart below shows the throughput of various hash functions on a recent Intel CPU (Skylake microarchitecture). You will find more benchmark results on eBACS."
security  programming  development 
march 2017 by ssam
About Miller
"Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON. You get to work with your data using named fields, without needing to count positional column indices.

This is something the Unix toolkit always could have done, and arguably always should have done. It operates on key-value-pair data while the familiar Unix tools operate on integer-indexed fields: if the natural data structure for the latter is the array, then Miller’s natural data structure is the insertion-ordered hash map. This encompasses a variety of data formats, including but not limited to the familiar CSV, TSV, and JSON. (Miller can handle positionally-indexed data as a special case.)"
tool  unix  linux  data  to:use  shell  programming 
february 2017 by ssam
On the referendum #20: the campaign, physics and data science – Vote Leave’s ‘Voter Intention Collection System’ (VICS) now available for all – Dominic Cummings's Blog
"If you want to make big improvements in communication, my advice is – hire physicists, not communications people from normal companies and never believe what advertising companies tell you about ‘data’ unless you can independently verify it. Physics, mathematics, and computer science are domains in which there are real experts, unlike macro-economic forecasting which satisfies neither of the necessary conditions – 1) enough structure in the information to enable good predictions, 2) conditions for good fast feedback and learning. Physicists and mathematicians regularly invade other fields but other fields do not invade theirs so we can see which fields are hardest for very talented people. It is no surprise that they can successfully invade politics and devise things that rout those who wrongly think they know what they are doing. Vote Leave paid very close attention to real experts."

Economics forecasting is bullshit, agreed

"Many were far more interested in trying to get on TV and yapping to hacks than in gathering useful data, including prominent MPs on our Board and Campaign Committee... Because so many of them proved untrustworthy and leaked everything I kept the data science team far from prying eyes – when in the office, if asked what they did they replied ‘oh I’m just a junior web guy’. It would have been better if we could have shared more but this was impossible given some of the characters."
politics  data  eu  mathematics  physics  programming  economics  statistics  science  campaign  open  source 
february 2017 by ssam
lvm/awesome-livecoding: All things livecoding
"This list was created with the intention of giving a quick-glance over the many possibilities to engage in this practice. For further information, head over to TOPLAP."
live  coding  music  art  programming 
february 2017 by ssam
Nibble Stew - a gathering of development thoughts: Looking into what Rust can do that other languages can't ... or can they
"The security features of Rust are great. However many of them (not all, but many) that were unique to Rust are now possible in other languages as well. If you are managing a project in C or C++ and you are not using asan + scan-build + other error checkers on your code, you should use them all and fix the issues detected. Do it even if you intend to rewrite your code in Rust, Go or any other language. Do it now! There is no excuse."
c  programming  to:do  debugging  tools  to:use  tracker 
february 2017 by ssam
JSON API — A specification for building APIs in JSON
"If you’ve ever argued with your team about the way your JSON responses should be formatted, JSON API can be your anti-bikeshedding tool.

By following shared conventions, you can increase productivity, take advantage of generalized tooling, and focus on what matters: your application.

Clients built around JSON API are able to take advantage of its features around efficiently caching responses, sometimes eliminating network requests entirely."
json  api  programming  web 
february 2017 by ssam
Files · master · Jan Nieuwenhuizen / mes · GitLab
"Mes aims to create an entirely source-based bootstrapping path. The target is to [have GuixSD] boostrap from a minimal, easily inspectable binary --that should be readable as source-- into something close to R6RS Scheme. As bootstrapping is presumably easiest and probably most fun with Scheme, the next step for Mes is mescc: a C compiler/linker to boostrap into GNU Gcc and GNU Guile, possibly via Tiny-CC. "

Via https://fosdem.org/2017/schedule/event/guixsdbootstrap/
crazy  gnu  scheme  c  programming  baserock  nix  to:keep-an-eye-on 
february 2017 by ssam
« earlier      
per page:    204080120160

related tags

2d  3d  abi  academia  academic  addiction  administration  advertising  advice  age  ai  algorithm  algorithmic  algorithms  amazing  analysis  ansible  api  apple  apple-sucks  applications  approach  apps  appstore  architecture  arduino  argonaut  argument-fodder  art  artificial  asia  asynchronous  audio  audio-dev  automated  automation  autonomy  autotools  avoiding-rewrites  awesome  bad  baserock  bbc  beauty  big-businesses-are-screwing-you-over  binary  binding  blog  book  books  boucle  brain  browser  bug  build  build-tools  building  business  bw  c  c#  c+  c++  calliope  campaign  capabilities  career  cars  category-theory  charango  chasing-the-asymptotes  children  ciat-lonbarde  circuit-bending  clever  code  codebending  codethink  codeyourfuture  coding  collaboration  colour  command  comments  common-sense-moon-in-an-idiot-sky  communication  community  companies-not-to-buy-from  companies-not-to-trust  compilation  compiler  compression  computer  computers  computing  computing-for-the-masses  concentration  concurrency  concurrent  conference  connection  contracting  control  cool  cooperation  copyright  coruña  craft  crazy  creativity  culture  danger  data  data-storage  database  death  debugging  declarative  demo  demoscene  deployment  design  desktop  development  development-environment  development.  diagram  digital  disciple  discovery  discrimination  discussion  distraction  distribution  distributions  docker  documentation  drugs  dynamic  economics  editor  education  effects  efficient  electronics  embedded  encryption  energy  engine  engineering  environment  equality  erlang  estimation  ethics  eu  europe  event  events  everything-in-terms-of-everything-else  evolution  example  exercise  extensible  facebook  facts  fast-moving  feature  fedora  filetype:pdf  finally  finance  finishing  flatpak  flow  fonts  format  foundation  fractal  framework  free  freedom  function  functional  funding  funny  future  future-plans  galicia  game  games  gcc  gdb  generative  genius  germany  gio  girls  glib  gnome  gnome-3.0  gnome-build-system  gnome-shell  gnu  gobject  good  google  government  graphical  graphics  groupthink  gtk  gtk+  gui  guide  hack  happiness  hardware  has:to  haskell  health  history  humanity  i-knew-that  i-wish-i-could-show-this-to-everybody  ide  idea  ideas  imaginative  improvements  improvisation  indent  inform  input  inspiration  instrument  integration  intelligence  interactive  interchange  interesting  interface  internet  interpreted  interview  ireland  iris  java  javascript  jazz  jhbuild  job-search  jobs  journalism  json  kids  knowledge  language  languages  law  laziness  lazy  learning  library  life  light  line  linked  linux  lisp  literate  liv  live  logic  lv2  machine-information-retrieval  machine-learning  macros  magic  maintenance  management  manchester  mapping  marketing  mathematics  maths  max-msp  media:document  meetup  memory  metaprogramming  microsoft  midi  mingw  minimal  mir  mischief  mobile  model  modular  money  morocha  mozilla  murder  music  music-funnel  neat  network  networking  new  new-language  news  next-generation  nice  niggle  nix  node.js  normal-people  not-sure-if-joke-or-not  obfusticated  object  object-orientation  obvious  office  online  ontime  open  open-source  opera  operating  opinion  optimisation  orientation  os  packaging  painting  parallel  parsing  patch  people  people-are-dumb  people-are-horrible  performance  perl  phiilosophy  philosophy  philosphy  physics  politics  portable  postmodernism  practical  present  presentation  prior-art  privacy  privilege  problem  procedural  process  processing  productivity  profiling  programming  programming:functional  programming:parallel  progress  proof  protocol  psychology  purity  python  qbasic  qt  quality  query  quote  quotes  random  rdf  reactive  recording  reference  research  responsibility  restrictions  reverse  review  rhythm  routine  rpc  ruby  ruby-on-rails  rules  rust  safety  scheme  science  script  scripting  security  semantic  semantics  sequencer  service  session-management  sexism  sharing  shell  shit  side  singularity  size  skills  sleep  smart  social  society  software  solving  sound  source  souvenir  speaking  speech  speed  stability  standards  state  statistics  stm  storage  story  strategy  structures  stupid  style  stylish  sucks  suddenly-i-see  summary  surreal  synchronisation  syntax  synth  synthesis  synthesizer  sysadmin  system  systems  tablet  tagcloud  talks  teaching  technology  technology-is-not-the-solution-for-everything  templating  terminal  testing  tests  text  the-way-forward  theme  those-who-fail-to-understand-rdf-are-doomed-to-reinvent-it  thought  thoughts  threads  time  time-management  timestretch  tip-of-the-day  tips  to:attend  to:buy  to:consider  to:do  to:investigate  to:keep-an-eye-on  to:learn  to:listen  to:play-with  to:read  to:use  to:watch  tool  toolkit  tools  touch  tracker  transactional  trust  tutorial  uber  ubuntu  ui  uk  unfair  university  unix  usa  useful  user  user-servicing  utility  ux  vala  validation  version-control  versioning  video  violence  virtual  vision  visual  visualisation  vst  warning  watch-your-step  web  weird  what  windows  women  work  work-for-us-for-free  world  writing  xml 

Copy this bookmark:



description:


tags: