eric.brechemier + software   304

Margaret Hamilton: The Untold Story of the Woman Who Took Us to the Moon
2016-07-20, by Jolene Creighton,

"(...) On July 20, 1969 the Apollo 11 astronauts succeeded in their goal, landing with near-flawless precision. Shortly after, Neil Armstrong and Buzz Aldrin took humanity’s first historic steps on another world. And if you aren’t aware, Margaret Hamilton is the engineer who got us there. She took humanity to the Moon.

Hamilton wrote the code for Apollo 11’s on-board flight software, and as a result of her work, she received NASA’s Exceptional Space Act Award. If that’s not enough, she is also credited with coining the term “software engineering.”

In a recent interview, she discussed her experience with the Apollo program and what it was like to be a woman in the earliest days of NASA. (...)"

"(...) When I began as a programmer in 1959, and continuing until now, in every software organization and in every software project I have been involved in, there were always many more men than women programmers.

There were many more men than women in our profession ,and this is still the case. Regarding my own experiences, women were always in the minority and men were always in the majority. Before and during Apollo, my colleagues, including those on the software engineering team, for which I was responsible, were mostly male.

But more than anything, we were dedicated to the missions and worked side by side to solve the challenging problems and to meet the critical deadlines. I was so involved in what we were doing, technically, that I was oblivious to the fact that I was outnumbered by men. We concentrated on our work much more than whether one was male or female. We were more likely to notice if someone was a first floor or second floor person, a hardware or software guy, or what area someone was specializing in, e.g., man-machine interface, operating system, error detection and recovery, or in an application specific area. (...)"

"(...) There was no school to attend or field to learn what today is known as ‘software engineering’ or ‘systems engineering.’ When answers could not be found, we had to invent them; we were designing things that had to work the first time, and our systems had to be ‘man-rated.’ Many on the team began as fearless 20-something-year-olds. The greater the challenge, the more fun we had. And, yet, dedication and commitment were a given. There was no time to be a beginner. Learning was by being and doing, and a dramatic event would often dictate change. (...)"

"(...) When considering the formal part of a kid’s education, learning subjects like English and other languages, history and STEM [science, technology, engineering and math including logic], including how to use computers…this is important in preparing for all parts of our modern society.

Software engineering related courses are important for all aspects of STEM including that of helping one to become more creative, a better problem solver—including being a good detective and how to understand the world in terms of a system of systems—to learn how to be analytical and objective, about abstraction, and how to think outside of the box. How to learn from your mistakes and turn that into a positive result can also be learned from software engineering related courses. I believe it is also important to learn (or be around) things like music, art, philosophy, linguistics, and math including logic; any of which could help improve one’s being an excellent programmer/problem solver/thinker and to have a more global perspective on things. The ultimate goal would be that of teaching one how to think (design).

I would add that what seems to work best for me when I want to learn about anything new or to do anything new is not to let fear get in the way.

One should not be afraid to say ‘I don’t know’ or ‘I don’t understand,’ or to ask ‘dumb’ questions, since no question is a dumb question. To continue even when things appear to be impossible, even when the so called experts say it is impossible; to stand alone or to be different; and not to be afraid to be wrong or to make and admit mistakes, for only those who dare to fail greatly can ever achieve greatly."
nasa  space  exploration  computer  science  software  history  women  gender  change  management  creation  technology 
10 weeks ago by eric.brechemier
Recalling the 'Giant Leap' | MIT News
"Margaret Hamilton
Was responsible for the Apollo On-Board Flight Software as director of the Software Engineering Division of MIT's Instrumentation Laboratory.

I had lived through several missions before Apollo 11 and each was exciting in its own right, but this mission was special; we had never landed on the moon before. The media, most notably Walter Cronkite, was reporting everything in great detail. Once it was time for liftoff, I focused on the software and how it was performing throughout each and every part of the mission. Everything was going according to plan until something totally unexpected happened, just as the astronauts were in the process of landing on the moon. Some things one never forgets, even after 40 years. I was standing in the SCAMA [Switching, Conference, And Monitoring Arrangement] room at Draper [the Instrumentation Lab, which later became Draper Laboratory] listening to the conversations between the astronauts and Mission Control when all of a sudden the normal mission sequences were interrupted by priority displays of 1201 and 1202 alarms, giving the astronauts a go/no go decision (to land or not to land). I looked across the room at Fred Martin and he back at me. What could possibly cause these alarms to be triggered at this most crucial time? It quickly became clear that the software was not only informing everyone that there was a hardware-related problem, but that the software was compensating for it. With only minutes to spare, the decision was made to go for the landing. The rest is history. (...)

(...) With the software's global error detection and recovery mechanisms, nominal displays were interrupted with priority displays of 1201 and 1202 alarms. Every time the CPU approached overload, the software cleared out its entire queue of processes, restarted its functions; allowing only the highest priority ones to perform until the landing was completed. The source of the error was later found to be in the astronaut checklist document; instructing the astronaut to place the rendezvous radar hardware switch in the wrong position, thus stealing valuable CPU time. The mechanisms the software used for this emergency were thought by many to have saved the Apollo 11 mission."


"Hugh Blair-Smith
Was part of the software team at the Instrumentation Lab from 1959 through the Apollo years.

My first assignment upon joining the Instrumentation Lab in 1959 was to "write an assembler for an unknown number of computers with unknown characteristics." It wasn't actually that bad, since the "Mars" computers being developed for a USAF unmanned Mars probe were necessarily the simplest type of architecture, single-address instructions. I got gradually more involved in designing these instruction repertoires, and a third-generation model (the first that was substantially my design in this area) was renamed AGC3 in recognition of its being chosen as the prototype Apollo Guidance Computer. That's why I claim that my involvement with Apollo predated the existence of the project!

When we changed technology to become the big early adopter of integrated circuits, we used one-fifth of all the ICs there had ever been. I continued as instruction-repertoire specialist for the two generations of IC-technology models, AGC Block I and AGC Block II. I also wrote a small piece of mission software (Routine 29) to make the LM's Rendezvous Radar go through a search pattern to find the CM's transponder, but it proved not to be necessary and was scrubbed out to make room for higher-priority code.

Having completed my engineering involvement in mainline Apollo and shifted to Eldon Hall's Digital Development Group to start thinking about Skylab and other post-Apollo tasks by mid-1969, I was at home with my family that night. We had bought our first color TV in time for the mission, and we got our son Bob up to watch the first steps on the moon with us. As he was just a month old, he doesn't remember it, but he was there! I wasn't familiar then with 1201 and 1202 alarms, so I was startled by them but had no choice but to wait on events. Naturally, I resumed breathing on "we copy you down" in sync with the guys at JSC.

I felt it was fitting that Neil and Buzz planted the flag there, but I think I was like most of us at MIT in giving no thought to the Soviets and the fact that we'd beaten them. If I had put my feelings into words, it might have come out like this: "Since mankind developed the capacity to wonder, we have looked at birds and wanted to fly; we have gazed at the Moon and wanted to go there. Now we've done it, and by some miracle of time and place, I and my MIT colleagues and all the people in this project were allowed to take part and henceforth to say simply, 'We did this.'"
nasa  space  exploration  software  history  computer  science 
10 weeks ago by eric.brechemier
Scene at MIT: Margaret Hamilton’s Apollo code | MIT News
2016-08-17, by Maia Weinstock,

"Half a century ago, MIT played a critical role in the development of the flight software for NASA’s Apollo program, which landed humans on the moon for the first time in 1969. One of the many contributors to this effort was Margaret Hamilton, a computer scientist who led the Software Engineering Division of the MIT Instrumentation Laboratory, which in 1961 contracted with NASA to develop the Apollo program’s guidance system. For her work during this period, Hamilton has been credited with popularizing the concept of software engineering.

In recent years, a striking photo of Hamilton and her team’s Apollo code has made the rounds on social media and in articles detailing her key contributions to Apollo 11's success. According to Hamilton, this now-iconic image (at left, above) was taken at MIT in 1969 by a staff photographer for the Instrumentation Laboratory — later named the Draper Laboratory and today an independent organization — for use in promotion of the lab’s work on the Apollo project. The original caption, she says, reads:

“Here, Margaret is shown standing beside listings of the software developed by her and the team she was in charge of, the LM [lunar module] and CM [command module] on-board flight software team.” (...)"
nasa  software  computer  science  history  women  gender  moon  space  exploration  mit 
10 weeks ago by eric.brechemier
Universal Extractor
"(...) Universal Extractor is a program designed to decompress and extract files from any type of archive or installer, such as ZIP or RAR files, self-extracting EXE files, application installers, etc. The full list of supported formats can be found in the table below. It's able to support so many varied file formats by utilizing the many backend utilities listed in the credits at the bottom of the page.

Please note that Universal Extractor is not intended to be a general purpose archiving program. It cannot (and never will) create archives, and therefore cannot fully replace archivers such as 7-Zip or WinRAR. What it will do, however, is allow you to extract files from virtually any type of archive, regardless of source, file format, compression method, etc.

The original motivation behind this project was to create an easy, convenient way to extract files from various types of installation packages without the need to remember arcane command line switches or track down separate utilities to handle the unpacking. Over time, and with the encouragement of its many users and the fine folks over on the MSFN forum, it has evolved into a mature and very capable unarchiving utility that many, including myself, find indispensable."
software  setup  archive  tools 
11 weeks ago by eric.brechemier
Fix: GIMP Does Not Save In JPEG OR PNG Format - It's FOSS
2016-02-17, by Abhishek Prakash,

"(...) Most of the normal computer users are used to of using shortcut Ctrl+S to save their work. In previous versions of GIMP when you used Ctrl+S, it used to give you the option of saving in different formats such as JPEG or PNG etc. But GIMP 2.8 has changed this popular way of saving your work. Now if you press Ctrl+S to save your work, all you can see is the option of saving your image in XCF, bzip or gzip archive file. (...)

If you cannot live with the new Ctrl+Shift+E replacing your darling Ctrl+S, here is how you can force GIMP to give you option for saving in all the formats with Ctrl+S.

Open GIMP. From the Menu, go to Edit->Keyboard Shortcuts. (...)

Now in here, search for overwrite: (...)

Now click on this Disabled, it will be changed to New Accelerator: (...)

Now use press Ctrl+S to assign this shortcut: (...)"

Note: I would rather use a different shortcut though, like Ctrl+U (or Action+U on Mac).

Also, "Keyboard Shortcuts" is found under the application menu "Gimp 2.10", not under "Edit" on Mac.
gimp  software  knowledge  ux  shortcut  setup 
april 2019 by eric.brechemier
How to take a screenshot on your Mac - Apple Support
"With macOS Mojave, press Shift-Command (⌘)-5 on your keyboard to see all the controls you need to capture still images and record video of your screen. Use these onscreen controls to select whether to capture the entire screen, capture a window, capture a selected portion, or record a video of the screen. (...)

After you take a screenshot, a thumbnail of the screenshot appears briefly in the lower-right corner of your screen.

* Take no action or swipe the thumbnail to the right and the screenshot is automatically saved. (...)"
macos  screen  capture  picture  software  tools  knowledge 
april 2019 by eric.brechemier
pgModeler - PostgreSQL Database Modeler
"PostgreSQL Database Modeler, or simply, pgModeler is an open source tool designed to modeling databases that merges classical concepts of entity-relationship diagrams with specific features that only PostgreSQL implements."
postgres  database  modeling  tools  opensource  software 
april 2019 by eric.brechemier
/chapter: About-Thunderbird / THUNDERBIRD
"This manual was started by the team at FLOSS Manuals, and evolved during a two-day Book Sprint at Toronto Open Source Week 2010 held at Seneca College in Toronto, Canada. The sprint was a collaborative effort by FLOSS Manuals and Mozilla Messaging.

Scott Nesbitt did the organization for the event with considerable assistance from Chris Tyler (Seneca College), Beth Agnew (Seneca College) and Adam Hyde.

Blake Winton (Thunderbird Hacker at Mozilla Messaging) also attended.

Around 20 writers, including a number of students from Seneca College's Technical Communications program, collaborated in virtual and real space to produce a book in two days! In addition to original content, material was reused from the excellent Thunderbird Support Knowledge Base."
thunderbird  email  software  documentation  reference  learning  manual 
march 2019 by eric.brechemier
Entity component system - Wikipedia
"Entity–component–system (ECS) is an architectural pattern that is mostly used in game development. ECS follows the composition over inheritance principle that allows greater flexibility in defining entities where every object in a game's scene is an entity (e.g. enemies, bullets, vehicles, etc.). Every entity consists of one or more components which add behavior or functionality. Therefore, the behavior of an entity can be changed at runtime by adding or removing components. This eliminates the ambiguity problems of deep and wide inheritance hierarchies that are difficult to understand, maintain and extend. Common ECS approaches are highly compatible and often combined with data-oriented design techniques. (...)"
software  architecture  design  patterns  game  programming 
march 2019 by eric.brechemier
Linphone open-source voip software - video sip phone, voip phone
"Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, GNU/Linux, MAC OSX, Windows Desktop, Windows 10 UWP)."

"Most of VoIP operators provide attractive prices to place VoIP to PSTN (= classical telephony) calls, through their proxies and gateways. You could then call anybody in the world from your favourite Linphone client, by simply entering his/her international phone number. The SIP username here becomes a phone number."
opensource  voip  sip  phone  software 
november 2018 by eric.brechemier
Programmed Inequality | The MIT Press
2017, by Marie Hicks,

"How Britain lost its early dominance in computing by systematically discriminating against its most qualified workers: women.

In 1944, Britain led the world in electronic computing. By 1974, the British computer industry was all but extinct. What happened in the intervening thirty years holds lessons for all postindustrial superpowers. As Britain struggled to use technology to retain its global power, the nation's inability to manage its technical labor force hobbled its transition into the information age.

In Programmed Inequality, Marie Hicks explores the story of labor feminization and gendered technocracy that undercut British efforts to computerize. That failure sprang from the government's systematic neglect of its largest trained technical workforce simply because they were women. Women were a hidden engine of growth in high technology from World War II to the 1960s. As computing experienced a gender flip, becoming male-identified in the 1960s and 1970s, labor problems grew into structural ones and gender discrimination caused the nation's largest computer user—the civil service and sprawling public sector—to make decisions that were disastrous for the British computer industry and the nation as a whole.

Drawing on recently opened government files, personal interviews, and the archives of major British computer companies, Programmed Inequality takes aim at the fiction of technological meritocracy. Hicks explains why, even today, possessing technical skill is not enough to ensure that women will rise to the top in science and technology fields. Programmed Inequality shows how the disappearance of women from the field had grave macroeconomic consequences for Britain, and why the United States risks repeating those errors in the twenty-first century."
book  women  software  engineering  computer  history  uk 
october 2018 by eric.brechemier
Adam Florin / experience technologist
"I'm an independent experience technologist. I've created digital installations for Levi's®, General Electric, and Google, earning a South by Southwest Interactive award. I hold an MFA from CalArts, and created the generative music sequencer Patter for Ableton Live. I am currently developing new sound experiences in the Gray Area incubator, as part of ongoing research into sensory expressions of computer systems, statistical models of lived experience, and procedural generation of aesthetic works. I live and work in Oakland, CA."
sound  design  software  art  portfolio 
october 2018 by eric.brechemier
Horizontal or vertical ruler displayed on screen, in actual inches or centimeters. Can be adjusted based on screen size.
ruler  tools  online  software 
october 2018 by eric.brechemier
Actual size of Online Ruler (cm/mm)
Online ruler, adjustable using a reference object to get actual dimensions on screen (accurate to 1mm).
ruler  online  software  tools 
october 2018 by eric.brechemier
Nevercenter | Welcome
"Nevercenter is a small group of software artists making the kind of creative software we most enjoy using - for 3D graphics, photo editing, color grading, writing, pixel art, and more."
software  application  shop  graphics  color  pixel  3d  photography  tools 
september 2018 by eric.brechemier
xkcd: Sandboxing Cycle
* "I wish these parts could communicate more easily."
* "Ooh, this new technology makes it easy to create arbitrary connections, integrating everything!"
* "Uh-oh, there are so many connections it's creating bugs and security holes!"
* "Ooh, this new technology makes it easy to enclose arbitrary things in secure sandboxes!"
software  architecture  security  xkcd 
september 2018 by eric.brechemier
Building Microservices Using an API Gateway | NGINX
2015-06-15, by Chris Richardson

"(...) The API Gateway is responsible for request routing, composition, and protocol translation. All requests from clients first go through the API Gateway. It then routes requests to the appropriate microservice. The API Gateway will often handle a request by invoking multiple microservices and aggregating the results. It can translate between web protocols such as HTTP and WebSocket and web‑unfriendly protocols that are used internally. (...)"
web  api  software  architecture  nginx 
september 2018 by eric.brechemier
Two-Bit History
by Sinclair Target,

"This is a blog about computer history intended primarily for computer people. While there is a lot of writing out there about the history of computing for a general audience, there is much less for a technical audience—which I think is a shame, because there are so many interesting historical questions that might only occur to somebody who designs and builds software every day, questions like Where did JSON come from? and Why are man pages still a thing?"
computer  software  history  blog  cc 
august 2018 by eric.brechemier
Hey, data teams - We're working on a tool just for you | GitLab
2018-08-01, by Jacob Schatz and Taylor A. Murphy, PhD

"(...) Meltano aims to be a complete solution for data teams — the name stands for model, extract, load, transform, analyze, notebook, orchestrate — in other words, the data science lifecycle. While this might sound familiar if you're already a fan of GitLab, Meltano is a separate product. Rather than wrapping Meltano into GitLab, Meltano will be the complete package for data people, whereas GitLab is the complete package for software developers. (...)

The GitLab Data and Analytics team is charged with getting data from our external sources, presenting it in a usable format to business users across the company, and eventually making predictions from the data. As is the case with many data teams, we currently do this with a series of steps and separate tools, and we're not yet at the level of process and stability that is commonplace in software development. The idea of bringing best practices from software development to data analytics is a huge draw for the Data team at GitLab. Ideally, all of our work could be done in open source tools, and could be version controlled, and we’d be able to track the state of the analytics pipeline from raw data to visualization. (...)"

"Meltano is a separate product made by a separate team. The goal is at some point to spin it out of GitLab as a new company."
gitlab  data  analytics  exploration  visualization  dashboard  opensource  software  tools 
august 2018 by eric.brechemier
meltano / Meltano · GitLab
"Meltano is an open source convention-over-configuration product for the whole data lifecycle, all the way from loading data to analyzing it.
It does data ops, data engineering, analytics, business intelligence, and data science. It leverages open source software and software development best practices including version control, CI, CD, and review apps.

Meltano stands for the steps of the data science life-cycle: Model, Extract, Load, Transform, Analyze, Notebook, and Orchestrate."

"Meltano is a separate product made by a separate team. The goal is at some point to spin it out of GitLab as a new company.

For now we use PostgreSQL as the warehouse but we're open to support others such as MariaDB AX, Redshift, MemSQL, and Snowflake. (...)"
data  analytics  exploration  gitlab  opensource  software 
august 2018 by eric.brechemier
What Did Ada Lovelace's Program Actually Do?
2018-08-18, by Sinclair Target,

"(...) Lovelace saw that the Analytical Engine was capable of much more than Babbage or Menabrea could imagine. Lovelace also grasped that “the making of the cards” would not be a mere afterthought and that it could be done well or done poorly. This is hard to appreciate without understanding her program from Note G and seeing for oneself the care she put into designing it. But having done that, you might agree that Lovelace, even if she was not the very first programmer, was the first programmer to deserve the title."

"The program is essentially a list of operations, specified using the usual mathematical symbols. It doesn’t appear that Babbage or Lovelace got as far as developing anything like a set of op codes for the Analytical Engine.

Though Lovelace was describing a method for computing the entire sequence of Bernoulli numbers up to some limit, the program she provided only illustrated one step of that process. Her program calculated a number that she called B7, which modern mathematicians know as the eighth Bernoulli number."
computer  software  history 
august 2018 by eric.brechemier
Virtual AGC Home Page
"The purpose of this project is to provide a computer simulation of the onboard guidance computers used in the Apollo Program's lunar missions, and to generally allow you to learn about these guidance computers. Since this can be quite intimidating, we invite you to look at our "kinder and gentler" introductory page before immersing yourself in the full, gory detail presented by the bulk of the website."
space  exploration  nasa  software  history  emulator 
august 2018 by eric.brechemier
Her Apollo Code Saved The Moon Landing... Meet Computer Scientist, Margaret Hamilton

"(...) In celebration of Margaret [Hamilton]’s 80th birthday, we’re sharing this 4-minute SciShow video, which gives an awesome overview of the life and work of the STEM pioneer, whose Apollo code ultimately saved the Apollo 11 astronauts from having to abort their historic moon landing."
space  exploration  software  engineering  programming  history  video 
august 2018 by eric.brechemier
Scene at MIT: Margaret Hamilton’s Apollo code | MIT News
2016-08-17, by Maia Weinstock,

"Half a century ago, MIT played a critical role in the development of the flight software for NASA’s Apollo program, which landed humans on the moon for the first time in 1969. One of the many contributors to this effort was Margaret Hamilton, a computer scientist who led the Software Engineering Division of the MIT Instrumentation Laboratory, which in 1961 contracted with NASA to develop the Apollo program’s guidance system. For her work during this period, Hamilton has been credited with popularizing the concept of software engineering. (...)

“Here, Margaret is shown standing beside listings of the software developed by her and the team she was in charge of, the LM [lunar module] and CM [command module] on-board flight software team.”

software  engineering  programming  history  picture  space  exploration 
august 2018 by eric.brechemier
Margaret Hamilton (scientist) - Wikipedia
"(...) Hamilton then joined the Charles Stark Draper Laboratory at MIT, which at the time was working on the Apollo space mission. She eventually led a team credited with developing the software for Apollo and Skylab. Hamilton's team was responsible for developing in-flight software, which included algorithms designed by various senior scientists for the Apollo command module, lunar lander, and the subsequent Skylab. Another part of her team designed and developed the systems software which included the error detection and recovery software such as restarts and the Display Interface Routines (AKA the Priority Displays) which Hamilton designed and developed. She worked to gain hands-on experience during a time when computer science courses were uncommon and software engineering courses did not exist. (...)"

"(...) During this time at MIT, she wanted to give their software "legitimacy", just like with other engineering disciplines, so that it (and those building it) would be given its due respect; and, as a result she made up the term "software engineering" to distinguish it from other kinds of engineering. (...)
When I first came up with the term, no one had heard of it before, at least in our world. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. It was a memorable day when one of the most respected hardware gurus explained to everyone in a meeting that he agreed with me that the process of building software should also be considered an engineering discipline, just like with hardware. Not because of his acceptance of the new 'term' per se, but because we had earned his and the acceptance of the others in the room as being in an engineering field in its own right."
software  engineering  programming  history  woman  space  exploration 
august 2018 by eric.brechemier
Keep a Changelog
" This project aims to be a better changelog convention. It comes from observing good practices in the open source community and gathering them.

Healthy criticism, discussion and suggestions for improvements are welcome."
software  development  version  documentation 
july 2018 by eric.brechemier
Keep a Changelog
" This project aims to be a better changelog convention. It comes from observing good practices in the open source community and gathering them.

Healthy criticism, discussion and suggestions for improvements are welcome."
software  development  version  documentation 
july 2018 by eric.brechemier
User guide - Linphone open source video sip phone, voip software
"Most of VoIP operators provide attractive prices to place VoIP to PSTN (= classical telephony) calls, through their proxies and gateways. You could then call anybody in the world from your favourite Linphone client, by simply entering his/her international phone number. The SIP username here becomes a phone number."
voip  phone  software  knowledge 
july 2018 by eric.brechemier
Linphone open-source voip software - video sip phone, voip phone
"Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, GNU/Linux, MAC OSX, Windows Desktop, Windows 10 UWP)."
voip  phone  software  opensource 
july 2018 by eric.brechemier
'New Zealand wants you': the problem with tech at the edge of the world | World news | The Guardian
2018-06-25, by Eleanor Ainge Roy

"(...) “If you want to make a positive global impact,” pleads a video for the government’s global impact visa. “New Zealand wants you.”

Despite employing a mere 120,000 people (23% of whom are women), the tech and innovation sector is already the third-largest contributor to the country’s economy and, by 2025, the government aims to make it the second-largest earner.

Despite the bold talk – including the slogan “this is the place of the possible” – investment still lags astronomically far behind the two biggest earners of agriculture and tourism. (...)"
nz  technology  software  job  startup  economics 
june 2018 by eric.brechemier
Godot Engine - Free and open source 2D and 3D game engine
"Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.

Godot is completely free and open source under the very permissive MIT license. No strings attached, no royalties, nothing. Your game is yours, down to the last line of engine code."
video  game  programming  development  software  tools  opensource 
june 2018 by eric.brechemier
GitHub Is Microsoft’s $7.5 Billion Undo Button - Bloomberg
2018-06-06, by Paul Ford,

"BOTTOM LINE - GitHub has dramatically accelerated coding and made itself indispensable to programmers. The company can be an invaluable goodwill-builder for Microsoft—if it doesn’t screw it up."
github  microsoft  software  design  history 
june 2018 by eric.brechemier
How knowing Lisp destroyed my programming career
2006-04-23, by Ron Garret,

"(...) But a funny thing happened in the late 90's. C++ got its act together.
Java and Perl came along (and later, Python). Meanwhile, Lisp hadn't
advanced much in about a decade (since the ANSI spec was finalized). It
was still a win, but the competition had narrowed the field. Once upon
a time Lisp had a long list of features that no other language had (GC,
full numeric tower, CLOS, incremental development, macros) that list
kept getting shorter and shorter, and the case for Lisp, which had never
been easy even in the best of times, was getting harder and harder to
make. (...)"
lisp  career  software  programming  history 
march 2018 by eric.brechemier
Stream What You Hear
"Stream What You Hear (SWYH) is a Windows application to broadcast the sound of your computer (ie: “what you hear”) on an UPnP/DLNA device such as TVs, amps, network receivers, game consoles, etc..."
music  audio  streaming  opensource  software 
march 2018 by eric.brechemier
The Origin of the word Daemon
"I write a trivia column for a newspaper called The Austin Chronicle. Someone has asked me the origin of the word daemon as it applies to computing. Best I can tell based on my research, the word was first used by people on your team at Project MAC using the IBM 7094 in 1963. The first daemon (an abbreviation for Disk And Executive MONitor) was a program that automatically made tape backups of the file system. (...)"
unix  server  software  language  history 
february 2018 by eric.brechemier
professionalism - Can I talk to my rubber duck at work? - The Workplace Stack Exchange
"I have noticed I have had great success using another co-worker as a metaphorical rubber duck (sometimes intentionally, sometimes unintentionally). It improves my productivity vastly. However, I know that it probably distracts others when I am using them in that way.

That's why I want to buy a literal rubber duck and talk to it. I could do it very quietly and most of my close co-workers use noise-cancelling headphones 80% of time while sitting at their desks. My only concern is other people passing by my desk would think that I am weird. My desk is in an open space and several people pass by it every hour. I work in a big IT company in Sweden (however on my floor besides developers we have HR, marketing and people from high up who might be unfamiliar with the rubber duck method).

Is it unprofessional to talk to a rubber duck at the office?"
software  development  fun  process  psychology  problem  solving 
january 2018 by eric.brechemier
"We are a non-profit long-term research group in the spirit of Doug Engelbart and Xerox PARC. We are inventing a new computational medium where people work together with real objects in the real world, not alone with virtual objects on screens. We are building a community
workspace in the heart of Oakland, CA. The entire building is the computer."

"Our mission is to incubate a humane dynamic medium whose full power is accessible to all people."

"2014: CDG research lab was co-founded by Alan Kay and Bret Victor to reinvent computing for the 21st century. The Dynamicland vision and technology emerged from years of exploration, hundreds of working prototypes, and multiple whole-system iterations."

"2018: Founding Dynamicland. We're leaving the lab, and building the first full-scale realization of the vision. The community space will be the hub, with satellite installations in libraries, classrooms, science labs, and arts venues."
computer  software  programming  learning  education  creative  technology  architecture  future  research  philosophy 
january 2018 by eric.brechemier
Context Free Art
"Context Free is a program that generates images from written instructions called a grammar. The program follows the instructions in a few seconds to create images that can contain millions of shapes."
graphics  programming  software  language 
january 2018 by eric.brechemier — Brandur Leach
"I'm @brandur. I'm an engineer at Stripe and previously at Heroku. I talk mostly about bad design. And a few words on APIs, Postgres, software safety and resilience, efficient human interfaces, urban design, running, and metal."
technology  database  api  software  blog 
january 2018 by eric.brechemier
Alan Luo: Developer and Student
"I'm the one behind this site. I'm a creative coder.

I'm a developer at heart, but I'm also a lot of other things on the surface. I write, make art, make music, and build things, too. You can find a comprehensive list of my work on the homepage.

I like to make things that can bridge creativity and code. I've made all sorts of websites, including this one, and I always try to inject a bit of interactivity and fun into them. I'm also currently working on a game.

I code because I want to change things. I want to fundamentally change the way people think about learning and education. I want people to see that everything is connected. You can learn by playing video games instead of reading textbooks. You can learn to make art by coding and learn to code by making art. Learning can be made fun so long as you're open-minded.

I want to show people that you don't need the most resources to change the world - you just need good education and a big heart.

"Don't spend so much time learning how to change the world that you forget to change the world." - Me

In light of this, I'm working on a site to make and share creative code, as well as a platform to learn pure math for free. I'm trying to build tools that empower people.

I'm currently attending high school at Choate Rosemary Hall. I run my school's programming club, and I organize charity tournaments for video games. You can find out more about my education on my CV."
creative  programmer  art  software  graphics  portfolio 
january 2018 by eric.brechemier
Major open source softwares used in iRedMail
"Used Components:
* Postfix - Mail Transfer Agent (MTA)
* Dovecot - POP3, IMAP and Managesieve server
* Apache, Nginx - Web server
* OpenLDAP, ldapd(8) - LDAP server, used for storing mail accounts (optional)
* MySQL, MariaDB, PostgreSQL - SQL server used to store application data. Could be used to store mail accounts too.
* Amavisd-new - Interface between Postfix and SpamAssassin, ClamAV. it calls SpamAssassin and ClamAV for content-based spam/virus scanning
* SpamAssassin - Content-based spam scanner
* ClamAV - Virus scanner
* Roundcube - Webmail (PHP)
* SOGo Groupware - A groupware which provides calendar (CalDAV), contact (CardDAV), tasks and ActiveSync services
* Fail2ban - Scans log files and bans IPs that show the malicious signs -- too many password failures, seeking for exploits, etc
* Awstats - Apache and Postfix log analyzer
* iRedAPD - A postfix policy server developed by iRedMail team
opensource  email  software  architecture 
january 2018 by eric.brechemier
Game Programming Patterns
by Robert Nystrom

"Game Programming Patterns is a collection of patterns I found in games that make code cleaner, easier to understand, and faster.

This is the book I wish I had when I started making games, and now I want you to have it."
video  games  software  patterns  online  book 
january 2018 by eric.brechemier
Crafting Interpreters
by Bob Nystrom,

"This book contains everything you need to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. It’s gonna be a blast.

Starting from main(), you’ll build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you will thoroughly understand because you wrote each one yourself.

You can read the whole book, for free, online (...)"
software  language  design  online  book 
january 2018 by eric.brechemier –
"My name is Michael Malis. I’m a software engineer in San Francisco working on optimizing the performance of dozens of multi-terabyte Postgres instances at Heap. I’ve found Postgres to be an incredibly complex and fascinating piece of software and decided to start blogging about how Postgres works."
postgresql  database  software  development  technology  blog 
january 2018 by eric.brechemier –
2017-11-22, by Michael Malis,

"Even though learning more programming languages does give you more ways to approach problems, ultimately the choice of approach for solving a particular problem doesn’t matter much. What is vastly more important than the number of approaches to problems you know is the space of problems you know how to solve. A good programmer isn’t valuable because they can solve the same set of problems every other programmer can solve, just in different ways. A good programmer is valuable because they can solve problems that other programmers cannot."
programming  software  language  philosophy  career  advice 
january 2018 by eric.brechemier
LISP History
"In this chapter, some of the events of LISP development are protocolled. Step by step, the implementers became independent of McCarthy. In 1962 the internal drive was stronger than McCarthy's proposals. The results are somehow ambiguous."

"During this research, McCarthy felt uneasy with the machine dependent names of the selector functions (additionally, `cons` was not regarded as good enough) and he tried to change that: `first` instead of `car`, `rest` instead of `cdr`, `combine` instead of `cons`. Programmers and students were surprised by McCarthy's new language, but nobody took up his proposal and after some days he dropped it. The LISP community was already more powerful as the designer."

"If we compare McCarthy's proposals, his design, and the current state of LISP, then it is remarkable how much was established so early. LISP would look like 3-LISP (without reflection, maybe) if McCarthy had studied Church's paper more closely. As things stand, he must prefer SCHEME to CommonLISP -- a clear, understandable small diamond, to a messy, incomprehensible clump."
lisp  software  language  design  history 
january 2018 by eric.brechemier
History of LISP — Software Preservation Group
2017-10-03, by Paul McJones,

"The goal of this project is to collect, preserve, and present source code, design documents, and other materials concerning the original LISP I/1.5 system, and as many of its follow-ons as possible. LISP was one of the earliest high-level programming languages and introduced many ideas such as garbage collection, recursive functions, symbolic expressions, and dynamic type-checking; it is still in use. This is a project of the Computer History Museum's Software Preservation Group. The editor appreciates comments, suggestions, and donations of additional materials."
lisp  software  language  design  history 
january 2018 by eric.brechemier
Max Howell's answer to What's the logic behind Google rejecting Max Howell, the author of Homebrew, for not being able to invert a binary tree? - Quora
2017-12-20, by Max Howell,

"Maybe Homebrew doesn’t do dependency management well, but it does it in a way you care about."

"(...) I make really good things, maybe they aren't perfect, but people really like them. Surely, surely Google could have used that."
software  development  hr  google  engineering 
december 2017 by eric.brechemier
Parsons code - Wikipedia
"The Parsons code, formally named the Parsons code for melodic contours, is a simple notation used to identify a piece of music through melodic motion — movements of the pitch up and down. Denys Parsons developed this system for his 1975 book The Directory of Tunes and Musical Themes. Representing a melody in this manner makes it easier to index or search for pieces, particularly when the notes values are unknown. (...)

The first note of a melody is denoted with an asterisk (*), although some Parsons code users omit the first note. All succeeding notes are denoted with one of three letters to indicate the relationship of its pitch to the previous note:

- * = first tone as reference,
- u = "up", for when the note is higher than the previous note,
- d = "down", for when the note is lower than the previous note,
- r = "repeat", for when the note has the same pitch as the previous note.
music  patterns  recognition  software  analysis 
december 2017 by eric.brechemier
Scott Draves - Software Artist
" Scott Draves is a pioneering software artist best known for creating the Electric Sheep, a collective intelligence consisting of 450,000 computers and people that uses mathematics and genetic algorithms to create an infinite abstract animation.

His work has been shown at LACMA,, Prix Ars Electronica, ZKM, Art Futura, Emoção Art.ficial Bienial and is in collections world-wide including Carnegie Mellon School of Computer Science, the 21c Museum Hotel, MQS Capital, Google, the Simons Center for Geometry and Physics, and MEIAC. His clients range from Skrillex to the Adler Planetarium. Electric Sheep apps are available for iPad and Android.

Draves Bomb was one of the first interactive software artworks (1994) and also the first Open Source artwork, and the first interactive reaction-diffusion. His Fuse algorithm (1991) was also extremly influential.

In 1990 he received a BS in Mathematics from Brown University and in 1997 a PhD from the School of Computer Science at Carnegie Mellon University for a thesis on metaprogramming for media processing.

He is currently employed by Two Sigma to develop the Beaker Notebook. (...)"
portfolio  art  design  software  technology  programming 
november 2017 by eric.brechemier
Electric Sheep : Crowdsourced Evolving Art
"Electric Sheep is a collaborative abstract artwork founded by Scott Draves. It's run by thousands of people all over the world, and can be installed on almost anything. When these computers "sleep", the Electric Sheep comes on and the computers communicate with each other by the internet to share the work of creating morphing abstract animations known as "sheep".

Anyone watching one of these computers may vote for their favorite animations using the keyboard. The more popular sheep live longer and reproduce according to a genetic algorithm with mutation and cross-over. Hence the flock evolves to please its global audience.

The Electric Sheep are a free and open source service. The Gold Sheep are an HD premium version. Learn more and sign up.

You can design your own sheep and submit them to the gene pool. The result is a collective "android dream", blending man and machine with code to create an artificial lifeform. Learn more about it."
opensource  software  art  community  design 
november 2017 by eric.brechemier
Electric Sheep on Ubuntu Linux 17.10
"If you've never heard of Electric Sheep, it is a collaborative abstract artwork.

> When computers "sleep", the Electric Sheep comes on and the computers communicate with each other by the internet to share the work of creating morphing abstract animations known as "sheep".
> Anyone watching one of these computers may vote for their favorite animations using the keyboard. The more popular sheep live longer and reproduce according to a genetic algorithm with mutation and cross-over. Hence the flock evolves to please its global audience. [...]
> You can design your own sheep and submit them to the gene pool. The result is a collective "android dream", blending man and machine with code to create an artificial lifeform. (...)"
digital  art  algorithm  social  community  software  design 
november 2017 by eric.brechemier
Little Planet Procedural
by Alan Luo,

"This is a handbook meant to explain the concepts and execution behind the "Little Planet Procedural" project, my directed study midterm project.

As some background, the project is meant as a case study of how code can create diverse and infinite art through basic techniques of procedural generation. It is inspired by the likes of No Man's Sky.

Each time the page is refreshed, a new planet is generated. There are night scenes and day scenes."
graphic  canvas  html  software  art  generation  function  random  landscape 
july 2017 by eric.brechemier
EasyBCD - NeoSmart Technologies
"EasyBCD supercharges your Windows PC, allowing you to dual-boot to your heart's content."
windows  free  software  boot  setup 
june 2017 by eric.brechemier
Home - Lyrebird
"Record 1 minute from someone's voice and Lyrebird can
compress her/his voice's DNA into a unique key.
Use this key to generate anything with its corresponding voice."
speech  synthesis  sound  generation  api  security  software 
april 2017 by eric.brechemier
Krita | Digital Painting. Creative Freedom.
"Krita is a professional FREE and open source painting program. It is made by artists that want to see affordable art tools for everyone.

* concept art
* texture and matte painters
* illustrations and comics"
opensource  software  painting  tools  graphic  design  illustration 
march 2017 by eric.brechemier
"Our goal is to make online code learning better than in-person learning. To achieve that, we're building Scrimba - a superior format for communicating code."

"core features

* Interactive. Play with the code
* Light weight. 1% of video size (MB)
* Simple. One click creation
* Indexable. Search in screencasts
* Responsive. Superior mobile experience"
software  code  video  sharing  platform 
march 2017 by eric.brechemier
Who Needs GPS? The Forgotten Story of Etak's Amazing 1985 Car Navigation System | Fast Company | Business + Innovation
"(...) While experimenting with a map on the vector display, the team found that a fixed-map viewpoint with a roving on-screen car cursor proved unintuitive while driving. So they switched to a driver-centric viewpoint that turned and moved around a fixed point in the middle of the screen representing a car. We take this for granted in auto navigation systems today, but the team behind the Navigator invented this display method.

That "heading-up" technique reminded Honey of ancient Polynesian navigation concepts that he had read about during his studies of navigation in previous years. The ancient mariners of that region navigated the seas by relying on a series of environmental cues, such as the positions of islands around them, combined with a mental perception of themselves in the center of the conceptual navigational space in their heads. With that in mind, Honey decided to call his new company Etak, which is a Polynesian term for moving navigational reference points. (...)"

"(...) "What we were doing was basically taking advantage of the fact that drivers tend to use roads," says Honey. Etak's algorithms would match the travel path of your car with known road shapes in its database, then visually place the on-screen car cursor in that position on the digital road map. While using the Navigator, the system continuously ironed out accumulated errors over time by comparing actual distances driven and turns made with road shapes on the map. Honey calls the technique "augmented dead reckoning."

That means driving through a long stretch of straight highway could begin to trip up Etak's system, since there were no turns and no distinct roads for the computer to algorithmically seize upon. If that happened, the driver could manually reposition the car cursor onto a location on the map using controls on the display.

Etak's engineers decided it would be too dangerous and distracting to operate the display's controls in a moving vehicle. So they disabled destination entry or car repositioning while the car was in motion—decades before the rest of the world began to worry about the dangers of distracted driving. (...)"

"The Etak Navigator first shipped around July 1985, with the 450 model retailing for $1,395 (about $3,083 when adjusted to 2015 dollars) and the 700 selling for $1,595. Map cassettes cost about $35 each. Only the Bay Area of California was initially available, followed by rollouts for other major metropolitan regions. Local car stereo and cellular telephone dealers installed and calibrated the system, a process that took a couple of hours."

"(...) Etak eventually became a part of TomTom, ensuring that its map data, some of which was first digitized back during the Navigator's development in 1984, would live on to this day."
gps  software  car  creative  map  sensor  technology  history 
february 2017 by eric.brechemier
IBM & "Death's Calculator"
From "IBM and the Holocaust" (Crown Publishing, 2001) by Edwin Black,

"(...) But in 1933, no computer existed.

However, another invention did exist: the IBM punch card and card sorting system-a precursor to the computer. IBM, primarily through its German subsidiary, made Hitler's program of Jewish destruction a technologic mission the company pursued with chilling success. IBM Germany, using its own staff and equipment, designed, executed, and supplied the indispensable technologic assistance Hitler's Third Reich needed to accomplish what had never been done before-the automation of human destruction. More than 2,000 such multi-machine sets were dispatched throughout Germany, and thousands more throughout German-dominated Europe. Card sorting operations were established in every major concentration camp. People were moved from place to place, systematically worked to death, and their remains cataloged with icy automation.

IBM Germany, known in those days as Deutsche Hollerith Maschinen Gesellschaft, or Dehomag, did not simply sell the Reich machines and then walk away. IBM's subsidiary, with the knowledge of its New York headquarters, enthusiastically custom-designed the complex devices and specialized applications as an official corporate undertaking. Dehomag's top management was comprised of openly rabid Nazis who were arrested after the war for their Party affiliation. IBM NY always understood-from the outset in 1933-that it was courting and doing business with the upper echelon of the Nazi Party. The company leveraged its Nazi Party connections to continuously enhance its business relationship with Hitler's Reich, in Germany and throughout Nazi-dominated Europe.

Dehomag and other IBM subsidiaries custom-designed the applications. Its technicians sent mock-ups of punch cards back and forth to Reich offices until the data columns were acceptable, much as any software designer would today. Punch cards could only be designed, printed, and purchased from one source: IBM. The machines were not sold, they were leased, and regularly maintained and upgraded by only one source: IBM. IBM subsidiaries trained the Nazi officers and their surrogates throughout Europe, set up branch offices and local dealerships throughout Nazi Europe staffed by a revolving door of IBM employees, and scoured paper mills to produce as many as 1.5 billion punch cards a year in Germany alone. Moreover, the fragile machines were serviced on site about once per month, even when that site was in or near a concentration camp. IBM Germany's headquarters in Berlin maintained duplicates of many code books, much as any IBM service bureau today would maintain data backups for computers. (...)"
nazi  ibm  history  data  software 
january 2017 by eric.brechemier
Punched Card Typography Explained
2017-01-30, by Norbert Landsteiner,

"The IBM 026 Card Punch was introduced in 1949 (together with the non-printing, otherwise identical model 024). The IBM 024 and 026 featured BCDIC (BCD), Binary-Coded Decimal Interchange Code, as the character set. The IBM 029 Card Punch was introduced in 1964 together with the System/360 line of computers. The IBM 129 came in 1971 with the System/370. The IBM 029 and 129 featured EBCDIC, Extended Binary Coded Decimal Interchange Code, as the character set. Prior to the introduction of model numbers in the three-digits range, like the IBM 129 Card Data Recorder, models 024, 026, 029 were referred to by 24, 26, 29."

"Card punches of various types, models and makes featured an option to print the characters encoded by the holes punched in any of the columns in human readable form onto the top of the card. While it is well known that these characters were printed by a 5 × 7 dot matrix, comprehensive information on what these character glyphs looked like exactly and how they were effected is rather rare. What may be more reasonable than reconstructing them from their very form of technical encoding? (...)"

"(...) Overall, the changes we see in the font of the IBM 029/129 are representative for the new role of punched cards shifting the focus from traditional book keeping and fixed data fields to the requirements of programming and electronic data procssing."
compute  software  graphic  design  history  font  typography 
january 2017 by eric.brechemier
Things Every Hacker Once Knew
2017-01-26, by Eric S. Raymond,

"One fine day in January 2017 I was reminded of something I had half-noticed a few times over the previous decade. That is, younger hackers don’t know the bit structure of ASCII and the meaning of the odder control characters in it. (...)"
ascii  compute  software  format  history 
january 2017 by eric.brechemier
Rubber Duck Debugging
"Step 1) Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck (bathtub variety)

Step 2) Place rubber duck on desk and inform it you are just going to go over some code with it, if that's all right.

Step 3) Explain to the duck what your code is supposed to do, and then go into detail and explain your code line by line

Step 4) At some point you will tell the duck what you are doing next and then realise that that is not in fact what you are actually doing. The duck will sit there serenely, happy in the knowledge that it has helped you on your way.

Note: In a pinch a coworker might be able to substitute for the duck, however, it is often prefered to confide mistakes to the duck instead of your coworker.

Original Credit: ~Andy from"
software  development  strategy  psychology 
january 2017 by eric.brechemier
The string type is broken | Musing Mortoray
2013-11-27, by Edaqa Mortoray (edA-qa mort-ora-y)

"(...) Many of us believe our strings are capable of more than what they actually do. We rely on their functionality without actually checking that its valid. This can easily lead to programs which do not work correctly, particularly with respect to internationalization. (...)"
unicode  string  software  programming  test  i18n 
december 2016 by eric.brechemier
April 1960, by John McCarthy,

"This paper appeared in Communications of the ACM in April 1960. It is the original paper on Lisp."
lisp  software  programming  language  theory  computer  science  history 
december 2016 by eric.brechemier
I've been writing ring buffers wrong all these years
2016-12-13, by Juho Snellman,

"So there I was, implementing a one element ring buffer. Which, I'm sure you'll agree, is a perfectly reasonable data structure.

It was just surprisingly annoying to write, due to reasons we'll get to in a bit. After giving it a bit of thought, I realized I'd always been writing ring buffers "wrong", and there was a better way. (...)"
software  algorithm  data  structure  buffer 
december 2016 by eric.brechemier
What It Costs to Run Let's Encrypt - Let's Encrypt - Free SSL/TLS Certificates
2016-09-20, by Josh Aas,

"Let’s Encrypt will require about $2.9M USD to operate in 2017. (...) Staffing is our dominant cost [$2.06M USD]. We currently have eight full time employees, plus two full time staff that are employed by other entities (Mozilla and EFF). This includes five operations/sysadmin staff, three software developers, one communications and fundraising person, and an executive director. Our 2017 budget covers salary and benefits for ten employees. (...)"
software  development  cost  startup  company  encryption  technology  organization  letsencrypt 
december 2016 by eric.brechemier
PDCLib - the public domain C standard library
"PDCLib is a project predicated on the belief that some building blocks are so fundamental that they should be available freely - free of restrictions, free of license boilerplate and free of politics."
c  software  cc0  library 
december 2016 by eric.brechemier
Peter Selinger: Potrace
"Transforming bitmaps into vector graphics"

by Peter Selinger,

"Potrace(TM) is a tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image. The input is a bitmap (PBM, PGM, PPM, or BMP format), and the default output is an encapsulated PostScript file (EPS). A typical use is to create EPS files from scanned data, such as company or university logos, handwritten notes, etc. The resulting image is not "jaggy" like a bitmap, but smooth. It can then be rendered at any resolution.

Potrace can currently produce the following output formats: EPS, PostScript, PDF, SVG (scalable vector graphics), DXF, GeoJSON, PGM (for easy antialiasing of pixel-based images), Gimppath, and XFig. Additional backends might be added in the future.

Mkbitmap is a program distributed with Potrace which can be used to pre-process the input for better tracing behavior on greyscale and color images. (...)"
graphics  bitmap  svg  conversion  opensource  software  tools 
december 2016 by eric.brechemier
The half-life of code & the ship of Theseus · Erik Bernhardsson
2016-12-05, by Erik Bernhardsson,

"As a project evolves, does the new code just add on top of the old code? Or does it replace the old code slowly over time? In order to understand this, I built a little thing to analyze Git projects, with help from the formidable GitPython project. The idea is to go back in history historical and run a git blame (making this somewhat fast was a bit nontrivial, as it turns out, but I’ll spare you the details, which involve some opportunistic caching of files, pick historical points spread out in time, use git diff to invalidate changed files, etc).

In moment of clarity, I named “Git of Theseus” as a terrible pun on ship of Theseus. I’m a dad now, so I can make terrible puns. It refers to a philosophical paradox, where the pieces of a ship are replaced for hundreds of years. If all pieces are replaced, is it still the same ship? (...)

(...) My conclusion is that writing code has fundamentally changed in the last 10 years. Code really seems to change at a much faster rate in modern projects."
software  development  history  data  visualization 
december 2016 by eric.brechemier
Font building
by Pomax

"Let's take a closer look at that CFF table, because it's an entire font on its own, and unlike OpenType fonts, is all about describing as little as possible to make sure no space is wasted. Combined with all the metadata already stored in the OpenType tables, this might very well be a winning combination."
font  generation  software  format  learning 
november 2016 by eric.brechemier
ckan - The open source data portal software
"CKAN is a powerful data management system that makes data accessible – by providing tools to streamline publishing, sharing, finding and using data. CKAN is aimed at data publishers (national and regional governments, companies and organizations) wanting to make their data open and available."
data  sharing  tools  opensource  software 
september 2016 by eric.brechemier
Tiled Map Editor
"Tiled is a 2D level editor that helps you develop the content of your game. Its primary feature is to edit tile maps of various forms, but it also supports free image placement as well as powerful ways to annotate your level with extra information used by the game. Tiled focuses on general flexiblity while trying to stay intuitive.

In terms of tile maps, it supports straight rectangular tile layers, but also projected isometric, staggered isometric and staggered hexagonal layers. A tileset can be either a single image containing many tiles, or it can be a collection of individual images. In order to support certain depth faking techniques, tiles and layers can be offset by a custom distance and their rendering order can be configured.

The primary tool for editing tile layers is a stamp brush that allows efficient painting and copying of tile areas. It also supports drawing lines and circles. In addition, there are several selection tools and a tool that does automatic terrain transitions. Finally, it can apply changes based on pattern-matching to automate parts of your work.

Tiled also supports object layers, which traditionally were only for annotating your map with information but more recently they can also be used to place images. You can add rectangle, ellipse, polygon, polyline and tile objects. Object placement is not limited to the tile grid and objects can also be scaled or rotated. Object layers offer a lot of flexibility to add almost any information to your level that your game needs.

Other things worth mentioning are the support for adding custom map or tileset formats through plugins, the tile stamp memory, tile animation support and the tile collision editor."
video  game  map  graphics  software  tools 
september 2016 by eric.brechemier
Paint of Persia by dunin
"(...) Paint of Persia is an rotoscoping pixel-art tool where you can draw on top of any window or waalpaper or anything you want!

It is specially made for pixel-art animation and sprites. (...)"
animation  rotoscoping  video  pixel  art  software  tools 
august 2016 by eric.brechemier
"Reverse Engineering for Beginners" free book
by Dennis Yurichev,

"When the author of this book first started learning C and, later, C++, he used to write small pieces of code, compile them, and
then look at the assembly language output. This made it very easy for him to understand what was going on in the code that
he had written. [In fact, he still does it when he can’t understand what a particular bit of code does.] He did it so many times that the relationship between the C/C++ code and what the compiler produced was imprinted deeply in his mind. It’s easy to imagine instantly a rough outline of C code’s appearance and function. Perhaps this technique could be helpful for others (...)"
book  cc  software  security  analysis  engineering 
july 2016 by eric.brechemier
Don Eyles Walks Us Through the Lunar Module Source Code | Hackaday
2016-07-05, by Gregory L. Charvat,

"A couple weeks ago I was at a party where out of the corner of my eye I noticed what looked like a giant phone book sitting open on a table. It was printed with perforated green and white paper bound in a binder who’s cover looked a little worse for the wear. (...)

We were looking at what is rumored to be the only remaining paper copy of the Lunar Module’s source code . This is the source code book used by Don Eyles during Apollo missions and for development. Don was responsible for writing code for the Lunar Module, specifically about 2000 lines that actually landed man on the moon. He turned up at the MIT Faculty Club in June and brought this original print out along, in its own suitcase of course. (...)"
computer  software  history  space  programming 
july 2016 by eric.brechemier
Software Heritage

Our long term goal is to collect all publicly available software in source code form together with its development history, replicate it massively to ensure its preservation, and share it with everyone who needs it.

The Software Heritage archive is growing over time as we crawl new source code from software projects and development forges. We will incrementally release archive search and browse functionalities — as of now you can check whether source code you care about is already present in the archive or not."

"Even though we just got started, we have already ingested in the Software Heritage archive a significant amount of source code, possibly assembling the largest source code archive in the world. The archive currently includes:

* public, non-fork repositories from GitHub
* source packages from the Debian distribution (as of August 2015, via the snapshot service)
* tarball releases from the GNU project (as of August 2015)"
software  archive  history  opensource  france 
july 2016 by eric.brechemier
Orange Data Mining
"Open source data visualization and data analysis for novice and expert. Interactive workflows with a large toolbox."
data  visualization  open  source  software  tools 
may 2016 by eric.brechemier
"Sourcefabric is Europe’s largest developer of open source tools for news media. Headquartered in Prague, Czech Republic, Sourcefabric z.ú. brings together minds from all corners of the globe to promote media development through the creation of open source software. All of our tools are open source and free to download: Superdesk, Newscoop, Booktype, Airtime, Live Blog, and Citizen Desk.

We work with some of the most prestigious news organisations around the world and our goal is to become a household name in newsrooms everywhere.

Through Sourcefabric and its daughter companies, we offer a range of services from managed hosting (SaaS) and support, to bespoke feature development and integration into existing workflows. Our international list of clients includes online-only and multi-channel newspapers, radio stations, self-publishing and print-on-demand service providers as well as NGOs and news agencies.

Sourcefabric develops and maintains a strong media development portfolio which has enabled us to work in some of the most challenging political environments since our inception in 2010. In this way, our open source code is our contribution to the dissemination of free speech. As a nonprofit organisation, we solicit grants and funding on a project-by-project basis.

The Sourcefabric family is composed of approximately 70 team members located across the globe in 14 countries with office locations in Prague, Berlin, and Toronto.

Sourcefabric received a Knight-Batten Award for Innovations in Journalism in 2011, a Guardian Megas Award for Digital Innovation in 2012, and an African News Innovation Challenge Award in 2012."
news  opensource  software  publishing  platform 
may 2016 by eric.brechemier
Rethinking Musical Notation with Composer's Sketchpad
2016-02-05, by Alexei Baboulevitch ("Archagon"),

"(...) Instead of trying to shoehorn all music into a Western style of notation invented several centuries ago, it occurred to me that maybe an entirely new approach was needed. In fact, why encode the music at all? The barest, most obvious form of notation is a graph of time and pitch. This system would have been too difficult for musicians to read from and write to back in the day, but that’s not really an issue when the music can play itself and your musical canvas is tactile and effectively infinite. It seemed like the best shot at covering all bases.

In Composer’s Sketchpad, each “note” is a simple array of times and pitches. Note names, measures, and time signatures still exist, but only as a grid or stencil over the absolute time/pitch graph — a feature of the tooling, not an intrinsic part of the piece. You use the current scale and meter grid to align and snap your notes, but you can also change them up for use in later sections without having to worry about your existing music. Under the hood, it’s all the same: scattered little point clouds of absolute time and pitch.

As a result, writing out complicated and expressive sections of music in Composer’s Section no longer feels like caging a canary. The grid is your friend, not an oppressive bureaucrat. If you want to write more conventional music, snapping to time or pitch works just as it did with traditional notation. But turn snapping off and you can bend your notes or extend them out to the exact length of time needed. Because the shape of your notes corresponds exactly to their time and pitch, a quick glance at your music tells you exactly how it’s going to sound without having to decode a mess of symbols in your head. And you can edit any part of any section or overlap as many notes as you like without having to worry about fulfilling the “note quota” of a measure, as you constantly have to do in sheet music apps like Finale. (...)"
music  software  creative  tools 
february 2016 by eric.brechemier
Sonic Pi
"A free live coding synth for everyone originally designed to support computing and music lessons within schools.
Use code to compose and perform in classical and contemporary styles ranging from Canons to Dubstep.

Brought to you by Sam Aaron and the Sonic Pi Core Team"
music  programming  sound  generation  software 
february 2016 by eric.brechemier
« earlier      
per page:    204080120160

related tags

3d  1860s  1970s  accessibility  admin  advice  agency  agile  algorithm  analysis  analytics  animation  antivirus  apache  api  apple  application  architecture  archive  art  ascii  assembly  assets  audio  automation  binary  bitmap  blackberry  blind  blizzard  blog  book  boot  broadcast  browser  buffer  bug  business  c  canvas  capture  car  career  category  cc  cc0  cd  cgi  change  chat  code  color  communication  community  company  compiegne  composition  compression  compute  computer  concurrency  config  contact  conversion  cookie  copyright  cost  creation  creative  crowdfunding  css  culture  dashboard  data  database  debug  design  development  diagram  dictionary  digital  distribution  dns  documentation  download  drawing  dvb  dvb-h  dvd  dynamic  economics  editing  editor  education  eeepc  email  emulator  encoding  encryption  engineering  enterprise  exif  exploration  failure  file  finance  firefox  flash  flickr  font  format  framework  france  free  freedom  fun  function  future  game  games  gender  generation  gimp  git  github  gitlab  google  gps  grammar  graph  graphic  graphics  gui  hack  hacking  hardware  history  hosting  hr  html  http  i18n  ibm  illustration  image  installation  instant  interactive  interface  interpreter  ipod  japanese  java  javascript  job  journalism  json  kanji  keyboard  knowledge  landscape  language  layout  ldap  learning  legal  letsencrypt  library  linux  lisp  loading  macos  management  manager  manual  map  market  marketing  markup  math  media  metadata  method  microsoft  midi  mit  mobile  mockup  modeling  money  moon  music  nasa  nazi  network  news  nginx  nodejs  nosql  novell  nz  object  office  offshore  online  open  opensource  optimization  organization  os  p2pu  painting  paris  parser  password  patent  patterns  payment  pdf  perl  philosophy  phone  photography  php  picture  pixel  platform  podcast  portfolio  postgres  postgresql  price  privacy  problem  process  product  programmer  programming  project  psychology  publishing  python  quality  query  rails  random  raspberrypi  reading  recognition  refactoring  reference  rename  research  review  rotoscoping  ruby  ruler  science  score  screen  script  search  security  semantic  sensor  server  setup  sharing  shell  shop  shortcut  simple  sip  social  software  solving  sound  source  space  speech  ssh  standard  startup  stats  strategy  streaming  string  structure  sudo  svg  svn  sync  synthesis  tablet  technology  terminal  test  text  theory  thread  thunderbird  tools  tracking  transformation  translation  trends  tutorial  tv  twitter  typing  typography  ubuntu  ui  uk  uml  unicode  unix  usability  ux  vcard  version  video  vim  visual  visualization  vlc  voip  warcraft  web  windows  wireframe  woman  women  wordpress  workflow  xkcd  xml  xslt  xss 

Copy this bookmark: