~/pito salas
home blog link blog pages + new post
admin

Posts tagged #programming

201 posts

  • 2026-09-08

    The Throw Keyword was a Mistake - By Chris Fox

    Originally Posted on: https://hackernoon.com/the-throw-keyword-was-a-mistake-l9e532di

    I came across this provocative piece arguing that the throw keyword was a mistake in language design, and while I don't fully agree with the conclusion, it raises some genuinely worthwhile caveats about exception handling that are worth sitting with. It immediately reminded me of Dijkstra's classic "Go To Statement Considered Harmful" — that same energy of challenging an accepted construct that most developers never think twice about.

  • 2026-05-30

    The Last Technical Interview

    Today we will pour one out for the vaunted technical interview process, which is on its last leg. And we’ll talk a little about what’s…

  • 2026-04-18

    Lessons Learned: The Evolution of an Undergraduate Robotics Course in

    I came across this fascinating paper documenting seven years of experience building and refining an undergraduate robotics course within a Computer Science curriculum, and it's packed with hard-won practical wisdom. Starting back in 2016, the author R. Pito Salas chronicles the full arc of the program's evolution — from initial goals and platform choices to the inevitable dead-ends and course corrections along the way. What I find most valuable here is the candid, longitudinal perspective: rather than presenting a polished snapshot of a program that already works, this paper honestly reflects on what changed and why. Key lesson...

    Read more →
  • 2026-04-18

    Midnight Commander

    I recently rediscovered Midnight Commander and it instantly brought back memories of navigating filesystems before GUIs ruled everything — but honestly, it holds up remarkably well even today. mc is a dual-pane, text-mode file manager that runs beautifully in a terminal, over SSH, or in any remote shell environment, making it an incredibly practical tool for anyone who spends serious time on the command line.

    It's packed with features: built-in file viewing, editing, diff comparison, and the ability to drop into a subshell without losing your place. What makes it especially appealing is how it works via ncurses or S-Lang, meaning it adapts to virtually a...

    Read more →
  • 2026-04-18

    CodeCombat - Learn how to code by playing a game

    I recently stumbled across CodeCombat, and honestly it's one of the more clever approaches to learning programming I've seen in a while. The premise is simple but effective: you write real Python or JavaScript code to control your hero through dungeons, defeat ogres, and solve increasingly complex puzzles. Rather than grinding through abstract exercises or watching passive tutorials, you're immediately applying logic, loops, and functions in a context that actually feels rewarding. The game scales nicely, starting with basic syntax and gradually introducing more sophisticated concepts as you level up — which means beginners aren't overwhelmed right out of the gate. It's also open source, which I always appreciate, and there's a multiplayer component that adds a competitive edge for those who want it. If you've ever tried to introduce someone to coding and hit that wall of "but why does this matter," this might be exactly the kind of hook that makes it click.

  • 2026-04-15

    A brief history of C/C++ programming languages

    Initially, we had languages like Fortran (1957), Pascal (1970), and C (1972). Fortran was designed for number crunching and scientific computing. Pascal was restrictive with respect to low-level access (it was deliberately "safe", as meant for teaching structured programming). So C won out as a language that allowed low-level/unsafe programming (pointer arithmetic, direct memory access) … Continue reading A brief history of C/C++ programming languages

  • 2026-04-15

    Literate Programming and Claude

    There’s an old concept called Literate Programming. It never stuck or took off, but it came back to me the other day. Here is the Wikipedia explanation. My summary of this approach is to write a program (source code) as if it were a chapter in a book — primarily text and diagrams, interspersed with bodies of code. Hold that thought.

    My latest use of Claude Code has yielded some impressive stuff. For the first time I am working with neural networks for image processing and object identification. I am using a camera, the Oak‑D‑Lite, which has a neural‑net processing chip in the camera i...

    Read more →
  • 2026-03-01

    Microsoft Launches Bosque: An Open Source Programming Language

  • 2026-03-01

    A thought about training future software engineers

    You know I've been using Claude Code and friends extensively in my work. To the extent that most of the python that I generated in the last month was written by Claude Code. You might know that up to recently I was teaching at Brandeis University in the Computer Science department. While teaching software engineering and robotics - and this is true of the whole department - we spent a fair amount of time teaching students "program". Either of the main topic of a course, or as an incidental part of whatever the course was about.

    Students would learn through lectures, reading and practice how to write relatively complicated programs in a variety of languages. But the practice, usually was to ...

    Read more →
  • 2026-02-28

    Rules of Thumb for Software Engineers

    Based on my own experience, some of my favorite books and blog posts, and advice from friends, I’ve come up with this. What do you think? What should I add? Please comment! This was my opinion back in 2015 I will create a new post showing what has changed!

    Personal Effectiveness Rules of Thumb

    When you have your best idea ever, always remember that the idea is just 1% of the journey Yes, ideas are cheap. At least in the world of software engineering and product development, everyone and their grandfather have ideas that may be great. The distance between the idea and the reality is great. ...

    Read more →
  • 2025-07-04

    Midnight Commander

    Midnight Commander Development Center

  • 2025-04-11

    The Best Programmers I Know | Matthias Endler

    I have met a lot of developers in my life.
    Late…

  • 2024-09-27

    Python Type Challenges - Learn & Master Type Hints

    Learn Python typing (type hints) with interactive online
    exercises!

  • 2024-09-27

    Lessons Learned: The Evolution of an Undergraduate Robotics Course in

    Seven years ago (2016), we began integrating Robotics into our Computer Science curriculum. This paper explores the mission, initial goals and objectives, specific choices we made along the way, and why and outcomes. Of course, we were not the first to do so. Our...

  • 2024-05-04

    Code. Simply. Clearly. Calmly.

    Short and simple video lessons that start from scratch. Tools and thoughts that might make your professional life more enjoyable.

  • 2023-09-19

    Death by a thousand microservices

    Death by a thousand microservices –The software industry is learning once again that complexity kills

  • 2023-09-08

    Writing an Operating System From Scratch

    Writing an Operating System From Scratch –null

  • 2023-09-06

    The Worst Programmer I Know

    The Worst Programmer I Know –The great thing about measuring developer productivity is that you can quickly identify the bad programmers. I want to tell you about the worst programmer I know, and why I fought to keep him in the team.

  • 2023-08-24

    Costs exposed: Monorepo vs. multirepo – Julio Merino (jmmv.dev)

    Costs exposed: Monorepo vs. multirepo – Julio Merino (jmmv.dev) –In software engineering organizations, there are certain practices that keep costs under control even if those seem more expensive at first. Unfortunately, because such practices feel more expensive, teams choose to keep their status quo even when they know it is suboptimal. This choice ends up hurting productivity and morale because planned work is continuously interrupted, which in turn drags project completion.

    The reason I say seem and not are is because the alternatives to these cost-exposing practices also suffer from costs. The difference is that, while...

    Read more →
  • 2023-06-23

    Lago Blog – ORMs are criticized for the wrong reasons

    Lago Blog – ORMs are criticized for the wrong reasons –ORMs, often criticized, are typically misused rather than inherently flawed. While they present challenges in visibility and performance, correct usage can mitigate these issues.

  • 2023-06-14

    Nova

    Nova –The beautiful, fast, flexible, native Mac code editor from Panic.

  • 2023-06-06

    Git is simply too hard

    Git is simply too hard –Git is actually sooo hard. Not just to learn, but also to use consistently. And I say that as a person who used it for probably over ten years. Here’s my thoughts on the matter.

  • 2023-05-22

    Memory Allocation

    Memory Allocation –For those of you learning C or C++, this article is a great and detailed tutorial. Also useful if you are studying operating systems.

  • 2023-05-13

    fast.ai – Mojo may be the biggest programming language advance in decades

    fast.ai – Mojo may be the biggest programming language advance in decades –Mojo is a new programming language, based on Python, which fixes Python’s performance and deployment problems.

  • 2023-03-28

    Falsehoods Programmers Believe About Names | Kalzumeus Software

    Falsehoods Programmers Believe About Names | Kalzumeus Software –

  • 2023-03-19

    Zed – Code at the speed of thought

    Zed – Code at the speed of thought –Just to prove that theres never the last word on anything, especially programmers editors. I thought history ended with vscode. But take a look st this, pretty tantilizing! Author says: “Code at the speed of thought. Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.”

  • 2023-03-10

    Some possible reasons for 8-bit bytes

    Some possible reasons for 8-bit bytes –An interesting walk down history lane… of computers

  • 2023-03-10

    Meet Zig: The modern alternative to C

    Meet Zig: The modern alternative to C –Zig is an up-and-coming systems-oriented language that could one day replace C. Here’s what you need to know about Zig.

  • 2023-03-03

    The Missing Semester of Your CS Education

    The Missing Semester of Your CS Education –Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!

  • 2023-01-30

    Writing Code Without Plain Text Files

    Writing Code Without Plain Text Files –Many years ago there was an ide-like tool that worked this way too. No separate source files. It was a cool approach. Glad to see it back! Author said: “The Unison programming language doesn’t store code in files, but in a database. What is that like?”

  • 2023-01-13

    Make your own assembler simulator in JavaScript (Part 1)

    Make your own assembler simulator in JavaScript (Part 1) –A nice series of posts explaining how the assembly simulator was implemented: “The goal of this blog post is to create a simple simulator which is able to assemble your code into cpu instructions and run them inside a virtual computer”

  • 2023-01-13

    Simple 8-bit Assembler Simulator in Javascript

    Simple 8-bit Assembler Simulator in Javascript –One of many simple CPU simulators. I’m teaching a course in Operating Systems and I’ve been looking for a really simple and clear visual simulator for a CPU. This one is the best one yet. But I would like a better one. This one is missing any kind of support for IO or System calls or something like that. But it’s usable.

  • 2022-12-30

    Regexp Preprocessor

    Regexp Preprocessor –Interesting but not for me. I know regexps are arcane and confusing but they are well documented and people know them. I put this in the same bucket as scss and sass and many other helpful pre-processors. Not for me. Of course, you may not know that C++ started out literally as a C pre-processor (called cfront) that would generate C. So… The author says: “Summary of what pomsky is and what it looks like. Pomsky is a language that compiles to regular expressions. It is currently in an alpha stage and will likely change in the next few releases.”

  • 2022-12-15

    Coding Interview Preparation | Codinginterview

    Coding Interview Preparation | Codinginterview –A very interesting overview of companies and their spproach yo coding interviews. Good if youre applying for a job there. But also good if you are designing your interview process. Author says: “Take the guesswork out of coding interviews with codinginterview.com. Explore comprehensive guides to hack the process at top companies including Amazon, Microsoft, Google, Apple, Facebook, and more “

  • 2022-12-15

    Laurence Tratt: How Might Generative AI Change Programming?

    Laurence Tratt: How Might Generative AI Change Programming? –More about a topic that is extremely hot right now

  • 2022-12-08

    Forget about algorithms and models — learn how to solve problems first

    Forget about algorithms and models — learn how to solve problems first –An interesting article, stating the obvious. This is highly relevant to someone who teaches college students their in their very first year of learning programming. And yet it is still a subject of debate among my colleagues. Heres the authors’s own words: “t’s not necessarily about what programming language you learn or use. It’s about how you approach problem solving.”

  • 2022-12-07

    Learning Rust with ChatGPT, Copilot and Advent of Code

    Learning Rust with ChatGPT, Copilot and Advent of Code –Another amazing and somewhat scary example of ChatGPT, the ai tool that everyone is takking about. Heres what the author says: lI’m using this year’s Advent of Code to learn Rust—with the assistance of GitHub Copilot and OpenAI’s new ChatGPT. I think one of the most exciting applications of large language …”

  • 2022-11-27

    Using Rust at a startup: A cautionary tale

    The author (not me) says: “Right up front, I should say that Rust is very good at what it’s designed to do, and if your project needs the specific benefits of Rust (a systems language with high performance, super strong typing, no need for garbage collection, etc.) then Rust is a great choice. But I think that Rust is often used in situations where it’s not a great fit, and teams pay the price of Rust’s complexity and overhead without getting much benefit.”

  • 2022-11-27

    Using Rust at a startup: A cautionary tale

    Using Rust at a startup: A cautionary tale –The author (not me) says: “Right up front, I should say that Rust is very good at what it’s designed to do, and if your project needs the specific benefits of Rust (a systems language with high performance, super strong typing, no need for garbage collection, etc.) then Rust is a great choice. But I think that Rust is often used in situations where it’s not a great fit, and teams pay the price of Rust’s complexity and overhead without getting much benefit.”

  • 2022-11-13

    Gallery

    Gallery –This is a gallery of all sorts of interesting visualizations you can do with the GraphViz package.

  • 2022-11-13

    GraphViz Examples and Tutorial

    GraphViz Examples and Tutorial –I hope you know GraphViz. It’s a wonderful simple tool for creating diagrams. An interface as well as documentation to the GraphViz program and DSL

  • 2022-10-23

    Why Rust? — Rerun

    A nice overview of rust and its pros and cons.

  • 2022-10-23

    Rosetta Code

    Rosetta Code –Rosetta Code is a programming chrestomathy site. The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how…

  • 2022-10-02

    The Hundred-Year Programming Language

    The Hundred-Year Programming Language –

  • 2022-09-10

    Runno

    Runno –It has some similarities with things like JSFiddle or CodePen, but can run Ruby (as well as Python, C and C++). It can even act interactively and accept user input (such as with gets). You can then take these sandboxes and use them on your own pages/blog posts, etc.

  • 2022-09-02

    Duplication – Code with Jason

    Duplication – Code with Jason –Duplication can pose serious maintenance problems to codebases. Developers’ attempts to fix duplication can even sometimes introduce new problems. Certain popular approaches to addressing duplication exist, such as the rule of three and the refrain duplication is cheaper than the wrong abstraction. I think these advice snippets treat duplication in an oversimplified way that doesn’t […]

  • 2022-08-17

    Read the Docs tutorial — Read the Docs user documentation 8.4.0 documentation

    Read the Docs tutorial — Read the Docs user documentation 8.4.0 documentation –A very popular way to create free documentation web sites. I haven’t looked at it much. I use gitbook. I was wondering what the difference is, and I don’t see much

  • 2022-08-13

    The Unreasonable Effectiveness of Makefiles

    The Unreasonable Effectiveness of Makefiles –Im just in the process of leveling up my make knowledge. Ive read many many makefiles. But the last time i studied how it works?

  • 2022-07-16

    GitHub – postlight/mercury-parser: 📜 Extract meaningful content from the chaos of a web page

    GitHub – postlight/mercury-parser: 📜 Extract meaningful content from the chaos of a web page –I dont have a use fornthis right now, but it is an extremely powerful and useful package! “📜 Extract meaningful content from the chaos of a web page – GitHub – postlight/mercury-parser: 📜 Extract meaningful content from the chaos of a web page”

  • 2022-06-30

    The strange relationship between objects, functions, generators and coroutines

    The strange relationship between objects, functions, generators and coroutines — In this article, I’d like to investigate some relationships between functions, objects, generators and coroutines in Python. At a theoretical level, these are very different concepts, but because of Python’s dynamic nature, many of them can appear to be used interchangeably.

  • 2022-06-29

    Recommended: Crystal is not Ruby Part 1

    I recommended Crystal is not Ruby Part 1 on Medium.

  • 2022-06-27

    Algorithms from scratch: RANSAC

    Algorithms from scratch: RANSAC: RANSAC stands for Random Sample Consensus. In my opinion, it is the best type of algorithm: simple but very powerful and useful. It is…

  • 2022-06-26

    GitHub – kochrt/markwhen: Make a cascading timeline from markdown-like text.

    Make a cascading timeline from markdown-like text. Supports simple American/European date styles, ISO8601, images, links, locations, and more. – GitHub – kochrt/markwhen: Make a cascading timeline …

  • 2022-06-23

    The Recurse Center

    The Recurse Center is a self-directed, community-driven educational retreat for programmers in New York City.

  • 2022-06-23

    The Good Research Code Handbook

    This handbook is for grad students, postdocs and PIs who do a lot of programming as part of their research. It will teach you, in a practical manner, how to organize your code so that it is easy to...

  • 2022-06-10

    highlight.js demo

    highlight.js demo

    June 10, 2022 at 04:13PM

  • 2022-05-10

    5 Programming Languages With the Least Competition Yet Command the Highest Salaries

    5 Programming Languages With the Least Competition Yet Command the Highest Salaries You will get employed quicker than in other languages May 11, 2022 at 02:45AM

  • 2022-05-09

    pkolaczk/fclones: Efficient Duplicate File Finder

    pkolaczk/fclones: Efficient Duplicate File Finder Efficient Duplicate File Finder. Contribute to pkolaczk/fclones development by creating an account on GitHub. May 9, 2022 at 03:12PM

  • 2022-04-21

    Threading in Python: The Complete Guide

    Threading in Python: The Complete Guide The Thread class allows you to create and manage new threads of execution in Python. Although the threads have been available since Python 2, it is not widely used, perhaps because of misunderstand… April 22, 2022 at 05:17AM

  • 2022-03-23

    My guiding principles after 20 years of programming

    My guiding principles after 20 years of programming I’ve been programming since 1999. This year I’ve officially coded for 20+ years. I’ve started with Basic but soon jumped into Pascal and C… March 23, 2022 at 02:24PM

  • 2022-03-13

    GitHub – TomWright/dasel: Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.

    GitHub – TomWright/dasel: Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package. Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package. – GitHub – TomWright/dasel: Select, put… March 13, 2022 at 03:17PM

  • 2022-03-10

    To Render or to Redirect, that is the Question…

    To Render or to Redirect, that is the Question… In this blog post I will be covering different topics in regards to rendering and redirection within a Sinatra app. These are two very… March 10, 2022 at 09:21PM

  • 2022-03-10

    Sinatra Forms Params – Learn.co

    Sinatra Forms Params – Learn.co Learn about Sinatra Forms Params . Start learning to code for free with real developer tools on Learn.co. March 10, 2022 at 02:45PM

  • 2022-02-14

    GitHub – ngs-lang/ngs: Next Generation Shell (NGS)

    GitHub – ngs-lang/ngs: Next Generation Shell (NGS) Next Generation Shell (NGS). Contribute to ngs-lang/ngs development by creating an account on GitHub. February 14, 2022 at 01:40PM

  • 2022-01-24

    secretGeek/AwesomeCSV: 🕶️A curated list of awesome tools for dealing with CSV.

    secretGeek/AwesomeCSV: 🕶️A curated list of awesome tools for dealing with CSV. 🕶️A curated list of awesome tools for dealing with CSV. – secretGeek/AwesomeCSV: 🕶️A curated list of awesome tools for dealing with CSV. January 25, 2022 at 12:25AM

  • 2022-01-11

    Ruby 3.1 – Pattern Matching – Lee Jarvis

    Ruby 3.1 – Pattern Matching – Lee Jarvis

    January 12, 2022 at 03:03AM

  • 2022-01-04

    AWK-ward Ruby

    AWK-ward Ruby From AWK to Ruby January 4, 2022 at 08:49PM

  • 2021-12-28

    Refactoring and Design Patterns

    Refactoring and Design Patterns Refactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design. December 28, 2021 at 02:37PM

  • 2021-12-21

    vizzuhq/vizzu-lib: Library for animated data visualizations and data stories.

    vizzuhq/vizzu-lib: Library for animated data visualizations and data stories. Library for animated data visualizations and data stories. – vizzuhq/vizzu-lib: Library for animated data visualizations and data stories. December 21, 2021 at 04:44PM

  • 2021-11-05

    The family of anonymous functions – blocks, procs and lambdas

    The family of anonymous functions – blocks, procs and lambdas Anonymous functions are an integral part of Ruby’s identity and provide flexibility. This article is a deep dive into blocks, procs, and lambdas. November 5, 2021 at 12:46PM

  • 2021-11-05

    Intro to web scraping with Ruby

    Intro to web scraping with Ruby Learn how to use Ruby to do the webscraping of almost any website November 5, 2021 at 12:43PM

  • 2021-10-14

    Import CSV File Into PosgreSQL Table

    Import CSV File Into PosgreSQL Table In this tutorial, we will show various ways to import a CSV file into a PosgreSQL table. October 15, 2021 at 02:40AM

  • 2021-09-08

    GitHub – mgdm/htmlq: Like jq, but for HTML.

    GitHub – mgdm/htmlq: Like jq, but for HTML. Like jq, but for HTML. Contribute to mgdm/htmlq development by creating an account on GitHub. September 8, 2021 at 02:48PM

  • 2021-09-05

    An Introduction to JQ

    An Introduction to JQ In this article, I’m going to go over the basics building blocks of jq in enough depth that you will be able to understand how jq works. September 5, 2021 at 03:40PM

  • 2021-09-05

    GitHub – johnkerl/miller: Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON

    GitHub – johnkerl/miller: Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON – GitHub – johnkerl/miller: Miller is like awk, sed, cut, join, and sort for name-indexed data … September 5, 2021 at 07:30PM

  • 2021-08-23

    GitHub – public-api-lists/public-api-lists: A collective list of free APIs for use in software and web development 🚀

    GitHub – public-api-lists/public-api-lists: A collective list of free APIs for use in software and web development 🚀 A collective list of free APIs for use in software and web development 🚀 – GitHub – public-api-lists/public-api-lists: A collective list of free APIs for use in software and web development 🚀 August 23, 2021 at 02:51PM

  • 2021-08-20

    5 Useful jq Commands to Parse JSON on the CLI

    5 Useful jq Commands to Parse JSON on the CLI JSON has become the de facto standard data representation for the web. It’s lightweight, human-readable (in theory) and supported by all major languages and platforms. However, working on the CLI with JSON is still hard using traditional CLI tooling.

    Lucky, there is jq, a command-line JSON processor. jq offers a broad range of operations to transform and manipulate JSON based data structures from the command line. Looking at the documentation however reveals an overwhelmingly huge number of options, functions and things you can do with jq. August 20, 2021 at 06:00PM

  • 2021-04-06

    Dictionary of Algorithms and Data Structures

    Definitions of algorithms, data structures, and classical Computer Science problems. Some entries have links to implementations and more information.

  • 2021-04-06

    Structure and Interpretation of Computer Programs, Video Lectures

  • 2021-04-06

    Free source code hosting - Bitbucket

    Bitbucket is a alternative to GitHub. It's very similar. But the one big different is that even Public repositories are available free.

  • 2021-04-06

    Pvote

  • 2021-04-06

    Apipie/apipie-rails

    Ruby on Rails API documentation tool. Contribute to Apipie/apipie-rails development by creating an account on GitHub.

  • 2021-04-06

    Siege User's Manual

  • 2021-04-06

    Tsung

    Tsung demo site

  • 2021-04-06

    Rabbits

  • 2021-04-06

    Atom Editor Keyboard Shortcut Cheat Sheet - Sweetmeat

    A cheat sheet for the keyboard shortcuts in the Atom text editor by GitHub

  • 2021-04-06

    E.W.Dijkstra Archive: Home page

  • 2021-04-06

    CodeCombat - Learn how to code by playing a game

    Learn programming with a multiplayer live coding strategy game for beginners. Learn Python or JavaScript as you defeat ogres, solve mazes, and level up. Open source HTML5 game!

  • 2021-04-06

    Nobody understands the GIL

  • 2021-04-06

    Command-line-text-processing/ruby_one_liners.md at master · learnbyexample/Command-line-text-processing

    If you’re a ruby fan person like me, you will love just reading these!

  • 2021-04-06

    Falsehoods programmers believe about addresses

  • 2021-04-06

    Programming quotes by Joe Armstrong | defprogramming

    Classic quote about OO vs. functional

  • 2021-04-06

    https://www.getdrip.com/broadcasts/166594061/c3628fcd3c81a04dce8cf

  • 2021-04-06

    A Modern Prometheus – Processing Foundation – Medium

    The History of Processing by Casey Reas and Ben Fry

  • 2021-04-06

    The Ruby Bibliography

    Fun list of papers, reports, and dissertations related to ruby from academia.

  • 2021-04-06

    The Crystal Programming Language

    A language for humans and computers

  • 2021-04-06

    TabNine | Install TabNine

    Looks really cool. ML auto completion for any programming language. Must try.

  • 2021-04-06

    The Programming Language I'm Looking For

    Nice review of various programming language s including crystal

  • 2021-04-06

    Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell

    Handy summary

  • 2021-04-06

    Devhints — TL;DR for developer documentation

    An amazing set of cheat sheets from a prolific developer in the philippines

  • 2021-04-06

    MRPT – Empowering C++ development in robotics

    A comprehensive package of C++ robotics related code. Another resource, not sure how well it works or how usable it is.

  • 2021-04-06

    50 years of “The Art of Computer Programming” by Donald Knuth

    A classic - the books and the guy

  • 2021-04-06

    An Introduction to Task-Oriented Programming

    Subreddit dedicated to the news and discussions about the creation and use of technology and its surrounding issues.

  • 2021-04-06

    Goodbye, Clean Code — Overreacted

    DRY. Everything in moderation. On rules and knowing when to break them.

  • 2021-04-06

    The Throw Keyword was a Mistake - By Chris Fox

    I don’t think I agree. But does contain some good caveats. Reminds me of the old “Goto considered harmful”.

  • 2021-04-06

    Different Ways to Set Attributes in ActiveRecord (Rails 6)

    It’s always hard to remember all the different options that activerecord offers for manipulating data.

  • 2021-04-06

    Best programming books EVAR!

    A good list. I know every single one and would generally agree with it. Some books are too high in the list and some too low. But an excellent starting point.

  • 2021-04-06

    Programming Rules

    Some wise advice although for a funny language.

  • 2021-04-06

    MockMechanics

    Very cool and clever visual programming.

  • 2021-04-06

    How a Kalman filter works, in pictures | Bzarg

    Ive been doing a deep dive on Kalman Filters. Here are one of the best explanations. Beware it's hard.

  • 2021-04-06

    kettanaito/naming-cheatsheet

    Some ideas on naming. Doesn’t take into account conventions or idioms from specific languages.

  • 2021-04-06

    10 Ultimate Programming Jokes

    Groan but ok, funny

  • 2020-11-01

    Some great links for 11/02/2020

    MockMechanics

    Very cool and clever visual programming.

    tags: programming howto MockMechanics hacker visual

    Posted from Diigo. The rest of my favorite links are here.

  • 2020-01-26

    Some great links for 01/27/2020

    Goodbye, Clean Code — Overreacted

    DRY. Everything in moderation. On rules and knowing when to break them.

    tags: dry Code programming

    The Throw Keyword was a Mistake – By Chris Fox

    I don’t think I agree. But does contain some good caveats. Reminds me of the old “Goto considered harmful”.

    tags: software programming design

    Posted from Diigo. The rest of my favorite links are here.

  • 2020-01-24

    Some great links for 01/25/2020

    How I write backends

    Very nice detailed set of guidelines for a scalable node backend

    tags: scale web backend howto

    Posted from Diigo. The rest of my favorite links are here.

  • 2019-04-23

    Some great links for 04/24/2019

    Microsoft Launches Bosque: An Open Source Programming Language

    Interesting to see a brand new language come out of research.

    tags: open source programming language microsoft

    Posted from Diigo. The rest of my favorite links are here.

  • 2019-04-22

    Some great links for 04/23/2019

    Why OO Sucks

    Joe Armstrong is a famous person in Erlang circles. He passes away yesterday.

    tags: OO oop object oriented

    Posted from Diigo. The rest of my favorite links are here.

  • 2019-02-19

    Some great links for 02/20/2019

    Programming is Hard

    tags: programming learning beginner

    Posted from Diigo. The rest of my favorite links are here.

  • 2019-02-09

    Some great links for 02/10/2019

    10 Signs You Will Suck at Programming – Noteworthy – The Journal Blog

    It’s good to know if you have some of the traits of a good programmer!

    tags: skill programming learners

    Refactoring — oops, I’ve been doing it backwards. – freeCodeCamp.org

    Good insights about becoming slave to rules without remembering why you’re do8ng it!

    tags: ...

    Read more →
  • 2018-10-23

    Some great links for 10/24/2018

    The Most Important Non-Programming Skills for Programmers

    Decent summary. A bit obvious though. But a good read.

    tags: skills programmers

    Posted from Diigo. The rest of my favorite links are here.

  • 2018-09-26

    Some great links for 09/27/2018

    10 practices for writing readable code

    This article almost perfectly corresponds to what I believe about coding style

    tags: code practices coding style cleancode

    ...

    Read more →
  • 2018-04-09

    Daily 04/09/2018

    Weekly Command: processing JSON with jq

    tags: cli command json processing

    The Stack Overflow Age

    tags: stack stackoverflow software

    ...

    Read more →
  • 2018-04-06

    Daily 04/06/2018

    A brief look at sklearn.tree.DecisionTreeClassifier

    4 Go Language Criticisms

    Posted from Diigo. The rest of my favorite links are here.

  • 2018-04-04

    Interesting links for 04/04/2018

    1.10. Decision Trees — scikit-learn 0.19.1 documentation

    From Rails to Clojure, then to Java, then back to Rails – Engineering Management

    Next step Git for those that already know add and commit

    Posted from Diigo. The rest of my favorite links are here.

  • 2014-08-18

    Worth reading: Falsehoods Programmers Believe About Names

    This is worth looking at: John Graham-Cumming wrote an article today complaining about how a computer system he was working with described his last name as having invalid characters. It of course does not, because anything someone tells you is their name is — by definition — an appropriate identifier for them. Link: Link to original

  • 2014-07-30

    Worth reading: 5 Programming Languages You’ll Need Next Year (and Beyond)

    This is worth looking at: We’ve reached a bit of a turning point in the world of programming. Ten years ago, programmers were moving into dynamic languages. To many of us, those languages seemed like a bit of a fad, even if they made programming easier. Link: http://ift.tt/1xvv7S4 My Blog

  • 2014-06-27

    Ruby Internals

    Here’s an interesting article about how Ruby (the programming language not the gem) is interpretted or compiled. (It’s funny to contemplate what that question might mean to someone who thinks we are talking about a gem and not a programming language. ‘Is Ruby Interpretted or Compiled’ ? Say what??)

    Anyway, to whoever is left reading this, I thought this article was quite interesting: Is Ruby interpreted or compiled? – Pat Shaughnessy. Here’s a quote to give you a taste:

    “Ever since I started to work with Ruby in 2008, I?ve always assumed that it was an interpreted language like PHP or Javascript ? in other words, that R...

    Read more →
  • 2014-06-26

    [GEEKY] Agent: Go-Like Concurrency in Ruby

    Really good article, albeit quite geeky, about concurrency in general, and using Go-like primitives in Ruby.

  • 2013-08-30

    [GEEKY] Using bundler to create and publish a gem

    A really useful link. For Ruby programmers only.

    Jorge Coca | [HOW-TO] Build a Rails gem with Bundler – Gumby Framework:

    Since I’m building a new Rails website, and I wanted to use Gumby as a part of my Gemfile, and I couldn’t find a gem with the newest version of the framework, I decided to write my first Rails gem and publish it to the community.

  • 2013-06-01

    Teach ’em GIT

    I don’t agree that it’s a “major problem for computer science” – by a long shot. But still it is odd that often Computer Science students are not exposed to ‘modern’ source control management systems or version management systems, or maybe even “any” SCM at all.

    Version Control and Higher Education — What I Learned Building… — Medium:

    We are not doing students any favors by ignoring software like Git at the university level. It’s a major problem for computer science, information technology and design students to not—at the very least—be exposed to some form of version control or source code management during their tenure at school.

  • 2013-05-19

    How to be a “woman programmer”

    How to Be a ‘Woman Programmer’ – NYTimes.com:

    But none of it qualified me as extraordinary in the great programmer scheme of things. What seems to have distinguished me is the fact that I was a “woman programmer.” The questions I am often asked about my career tend to concentrate not on how one learns to code but how a woman does.

  • 2013-04-30

    Debunking the conventional wisdom

    What do you think, are younger people better programmers? Are they more productive, more clever, work longer hours? Or do older people have some advantages? Here’s a bit of research that says they do!

    NC State News :: NC State News and Information » Older Is Wiser: Study Shows Software Developers’ Skills Improve Over Time:

    There is a perception in some tech circles that older programmers aren’t able to keep pace with rapidly changing technology, and that they are discriminated against in the software field. But a new study from North Carolina State University indicates that the knowledge and skills of programmers actually improve over time – and that older programmers know as much (or more) than their younger peers when it comes to recent software platforms.

  • 2013-03-16

    Everyone should know how to program

    [youtube http://www.youtube.com/watch?v=dU1xS07N-FA&w=560&h=315]

  • 2012-09-23

    Great new book on Object Oriented design (in Ruby)

    I first came across Sandy Metz in this video:

    [vimeo 12350535 w=500 h=281]

    2009 – Sandi Metz – SOLID Object-Oriented Design from Gotham Ruby Conference on Vimeo.

    If you are interested in Object Oriented design you will enjoy this. She is a wonderful speaker, and fun to listen to. Even if you don’t agree with (or understand) some of the concepts, I promise that you will enjoy listening to it. Since then Sandy has come out with a wonderful new book which I highly recommend: ...

    Read more →
  • 2012-04-02

    [GEEKY] Sublime Text surpassing TextMate?

    I’ve been doing some more coding these days in Ruby.

    I’ve had great success and fun (especially when debugging) using RadRails, which is an Eclipse based IDE for Ruby and Rails. It’s quite nice.

    With introduction of RVM, bundler, and so on, I’ve gotten a feeling that RadRails maybe too much. It seems to get contexts confused and create more hassles. I am not sure yet, but it’s caused me to go back and use TextMate, which I’ve always had in an honored spot in my toolset.

    Poking aroun...

    Read more →
  • 2012-03-22

    [GEEKY] Capistrano Colors

    A random, highly specific and geeky tip:

    If you’ve used Capistrano before, you’re familiar with the large error logs. Finding errors is, well, a hassle. You’ve got a whole slew of text, some just saying what command it’s going to execute next, sometimes errors, sometimes just output from Bundler or whatever it’s running. (from Rails Tip #8: Capistrano Colors)

    Just follow the link to Rails Tip #8: Capistrano Colors) and your Cap life will be a little better.

  • 2012-01-02

    I wish I knew more JavaScript

    I know basic Javascript. I think I will be learning more soon. I think JavaScript is the language of the (near) future. Predicting what the language of the (further) future is would be impossible, as programming languages come and go. Hopefully they get better as they evolve.

    Why do I say that it is the language of the (near) future? Compared, for example to Java, or Ruby or Python, or even Erlang? Here’s an article I wrote about that: how JavaScript may be the most important language for the web for the near future. Do you agree?

    With that context, I was very interested to see Jon Ressig’s article...

    Read more →
  • 2011-11-20

    Mysql – NoSql – KnowSql

    A catchy headline, but is it true? “Facebook Trapped in MySql ‘a fate worse than death’.This is a quote of what Michael Stonebreaker supposedly said in this interview article:

    “The widely accepted problem with MySQL is that it wasn’t built for webscale applications or those that must handle excessive transaction volumes. Stonebraker said the problem with MySQL and other SQL databases is that they consume too many resources for overhead tasks (e.g., maintaining ACID compliance and handling multithreading) and relatively few on actually finding and serving data. This might be fine for a small application with a small...

    Read more →
  • 2011-11-09

    Game Design: Tiled Game Boards

    I’ve spent the last few weeks in dribs and drabs building a new game for Android. Lately I got deeper on what it means to have a ’tiled’ game space display where you construct the appearance of the game space by arranging a series of graphic images based on what’s needed for a certain level of the game. The idea is that you get essentially data driven graphics.

    In my case the game space is a maze, ostensibly a map of a neighborhood. Creating these, still rather ugly tiles, is fairly painstaking both to understand what the tiles are in your vocabulary to be able to create a variety of game levels, and then to do the graphic design and actual image files for these baybies.

    Here you can see a...

    Read more →
  • 2011-08-06

    [GEEKY] Connecting Web Apps with Web Intents

    Check this post Connecting Web Apps with Web Intents "Android OS addresses this problem with Intents, a facility for late run-time binding between components in the same or different applications. In the Intents system, the client application requests a generic action, e.g. share, and specifies the data to pass to the selected service application. The user is given a list of applications which have registered that they can handle the requested intent. The user-selected application is created in a new context and passed the data sent from the client, the format of which is predefined for each specific intent type." (from Chromium Blog)

    This is a really cool idea! If you are familiar with Android Intents it will make sense to you. Read the article if not. I wonder whether W3C will embrace this as a ‘good idea’. I think they should!

  • 2011-08-05

    [GEEKY] Why I am not yet developing for iOS

    Check this post A strong argument for why iOS development is winning "IOS platform competitors take note: Fledgling indie iOS dev Chris Eidhof has posted a smart list of the main reasons why a new developer finds Apple’s mobile operating system such an attractive prospect. Eidhof, who is in the process of developing his first software for Apple devices, broke down the appeal of iOS using six main points." (from TheAppleBlog — Apple and iOS News, Tips and Reviews)

    For me the biggest resistance, as a developer, to iOS is that I have to learn a new programming language (Objective C) and it’s tools, traditions, and bugs. And no one on the planet other than Apple uses Objective C.

  • 2011-07-29

    [GEEKY] Best Tutorial for Android OpenGL

    If you are interested in graphics programming and gaming, let me strongly recommend you take a look at this 6 part tutorial on 3D graphics development on Android.

    Open GL ES Programming on Android

    ‘Nuf said.

  • 2011-07-16

    [GEEKY] Good link of Rails Tips

    Just a quick hit: Ruby on Rails tips that will male you a better programmer.

  • 2011-06-29

    [GEEKY] Full Applications that run in the browser

    Sproutcore is a JavaScript framework for writing powerful web applications with less code. It looks to me as a way to write a lot more of your application in JavaScript running in the browser. And this involves moving the logic of the application’s own logic there.

    Sproutcore is a big complicated system that I have not fully investigated. It comes with a good pedigree though and is very nicely documented and designed. Worth a look if you want to have a super responsive browser based app that will continue to work even when the network connection is gone.

    Here is their own blurb: “SproutCore applications move business l...

    Read more →
  • 2011-06-26

    [GEEKY] JavaScript – Universal Language of the Future

    JavaScript is the language of the future. Why do I say this?

    I love Ruby, I respect Java, and I am jealous of Python. And of course I have a warm spot in my heart for C++. Think about it. JavaScript is unique among all those languages:

    Any computer you can get your hands on nowadays has a working, and probably very fast JavaScript compiler/interpreter. Laptops, Desktops, Servers, Mac, Pc, Linux, Phone, Tablet. ALL OF THEM. You can’t say that of any of the other languages.

    Because of the browser wars, and probably spurred on by Google and Chrome, there has been enormous investment in JavaScript performance so that it is now respected as a viable high performance language for server side ap...

    Read more →
  • 2011-05-27

    [GEEKY] Great set of excellent Rails 3 Gems

    Just a quick read of this post showed me several great gems that I want to try right away! If you’re a Rails programmer this is going to be of great interest: Rails 3: Fully Loaded

    ActiveAdmin is particular looks like an excellent new way to generate a whole suite of reasonable views and controllers to create, read, update and delete information in Rails3 applications. ActiveAdmin is customized with a DSL so that you have a prayer of getting what you want without hacking the hell out of the logic that is built in. I will definitely try it.

  • 2011-05-23

    [GEEKY] REST and the PATCH verb

    Last year when teaching REST concepts at Brandeis University I proved the truism that there’s no better way to learn about something than to try and teach it. We (all) wrapped ourselves around the axle trying to understand HTTP “PUT” versus HTTP “POST” and learned new english words like Idempotency. I won’t go into the whole story because it’s kind of long.

    * But one of the keys ideas that is tricky to understand is the difference between PUT and POST in REST as it is implemented using HTTP. PUT replaces a specific resource (think of it as a record for a specific key) while POST creates a new resource. *

    So I was interested to see that there’...

    Read more →
  • 2011-05-21

    [GEEKY] Devise Gem – current favorite for authentication of Rails Applications

    How to build authentication into Rails applications? Well, at least at RailsConf 2011, the buzz was around a new Authentication gem called Devise.

    I played with it a little (here in the airport) at it seems quite nice and straightforward. Check it out if you were looking for something like that.

    railsconf

  • 2011-05-20

    [GEEKY] Magic Rails Applications with Hobo

    Another tidbit I came across at RailsConf is Hobo. I haven’t tried it myself but did just go through the screencast and tutorial. I think it’s worth a closer look.

    “Hobo is a plugin for Ruby on Rails that brings a number of extensions—some small some large—to Rails application development. The common theme to these extensions is rapid development.

    Like Rails itself, Hobo encapsulates a number of opinions about web application development. The opinion that is most central to Hobo is this: we have found that there is a great deal of similarity from one web application to the next. Much more similarity in fact, than is supported by today’s frameworks. We w...

    Read more →
  • 2011-05-19

    [GEEKY] Yes, Virginia, Rails DOES scale

    Why doesn’t every one love Rails? I am surprised when I run into someone (Pat?) who’s not so sure about Rails. Usually it’s about scalability.

    [I warned you this is a geeky post]

    When I am designing or building a system and am questioned about whether writing it in Ruby or Rails is a good idea. Or if someone asks me my opinion or for advice about whether it makes sense that his or her developers are recommending Rails for a big site.

    What I believe is that scalability has to do with the overall system architecture — caching, queueing, horizontal scalability and so on. It does not have to do with the programming language. (What the LivingSocial guy said about this wasn’t quite ...

    Read more →
  • 2011-02-04

    [GEEKY] Great classic article about Mocks and Subs (non-geeks: don’t ask!)

    A seminal article about an advanced topic in software testing: Mocks aren’t Subs

    “The term ‘Mock Objects’ has become a popular one to describe special case objects that mimic real objects for testing. Most language environments now have frameworks that make it easy to create mock objects. What’s often not realized, however, is that mock objects are but one form of special case test object, one that enables a different style of testing. In this article I’ll explain how mock objects work, how they encourage testing based on behavior verification, and how the community around them uses them to develop a different style of testing.” (from Mocks aren’t Subs by Martin Fowler)

  • 2011-01-05

    [GEEKY] Nicer way to run Ruby tests

    Just came across this handy-dandy tool to run tests for Ruby and Rails, and produce much nicer and readable traces so you have a prayer to sort out what is going on when stuff fails.

    Test::Unit Reporter — A new look and feel for Test::Unit output

    TURN is a new way to view Test::Unit results. With longer running tests, it can be very frustrating to see a failure (….F…) and then have to wait till all the tests finish before you can see what the exact failure was. TURN displays each test on a separate line with failures being displayed immediately instead of at the end of the tests.

  • 2010-12-14

    [GEEKY] Resfulie GEM for Rails and RESˇ

    This is really nice: Restfulie – Rest from Scratch. It’s a package of code for creating REST clients and servers with built in content type negotiation and other goodies. Watch the fun tour-do-force video too:

    http://vimeo.com/moogaloop.swf?clip_id=11294789&server=vimeo.com&show_title=1&show_byline=1&show_portrait=1&color=&fullscreen=1&autoplay=0&loop=0

    “Rest from scratch” with Rails and Restfulie – part 1 from Caelum on Vimeo.

  • 2010-11-30

    [GEEKY] Ruby 2.0 Refinements in Practice

    I went to RubyConf and heard a detailed presentation on a new possible feature of possible Ruby 2.0 called ‘Refinements’. I have to admit that I didn’t fully grasp how the feature really would be used. Here’s a nice and quite techical article about it: Ruby 2.0 Refinements in Practice from Katz Got Your Tongue?: "The first thing you need to understand is that the purpose of refinements in Ruby 2.0 is to make monkey-patching safer. Specifically, the goal is to make it possible to extend core classes, but to limit the effect of those extensions to a particular area of code."

  • 2010-11-06

    [GEEKY] CSS Deep Thoughts

    I feel that I am finally mastering CSS and in doing so I am seeing some interesting patterns. It seems to me that it’s very easy to get into a situation where you have too many CSS rules that overlap and override each other in ways that are more complex than necessary. It seems like there could and should be a tool to ‘simplify’ or ‘clean up’ css and reduce the rules to the minimum necessary set to accomplish what you want. Clearly the browser when it applies CSS, no matter how messy and redundant, figures it out and does the right thing.

    Here are some of the cases that I can see:

    two or more css rules with exactly the same selector in different part of a file

    two or more css files which ...

    Read more →
  • 2010-08-05

    David Weinberger has flat feet: Programming

    Check this post The flatfooted learning society from Joho the Blog: But, I am a flatfooted “programmer” and always will be. I have limitations that would have kept me from ever becoming a professional. I have an odd inability to handle indirect relationships, e.g., pointers; I did fine with C, but bombed at C++. I have problems with recursion, so although I once did a fair bit of hobbyist Lisp “programming” (I once wrote a beginner’s guide to Lisp as a document extension language), I can’t handle the self-reflexive capabilities that turn Lisp into a super-tool for Paul Grah...

    Read more →
  • 2010-06-24

    [GEEKY] Metaphors Rule! Actually, some thoughts about REST Security

    I don’t know yet whether I agree with or disagree with what is said in “REST Security (or lack thereof)” but you have to admit that this metaphor kills: “Until then, we’ll just continue (asGene Spafford said) using an armored car to deliver between someone living in a cardboard box and someone living on a park bench.” (from 1 Raindrop)

    (Also check out his follow up post: Part Deux

  • 2010-06-23

    [GEEKY] How to use Twitter in Rails

    This looks like a really nice and detailed tutorial on how to use Twitter in Rails. Check it out! p.s. if you don’t know what the previous sentence means, don’t worry about it. You must not really be geeky.

  • 2010-06-21

    [GEEKY] Nuances about REST

    While teaching at Brandeis University this summer (see Cosi JBS Web Site) I’ve come to think a lot more deeply about the often cliche’d ‘REST’ approach to developing Web Services APIs. As everyone always says, when you try and explain something, you discover the little gaps in your own understanding, and end up learning at least as much from your students as they are learning from you, which is cool, but for another day.

    The essence of the subtlety is captured in the introductory paragraphs of “Put or Post: The Rest of the Story” (an article t...

    Read more →
  • 2009-10-14

    [Geeky] Create UML Diagrams from the command line

    If you get it, you may want to get it: Create UML Diagrams from the command line

  • 2009-07-15

    [GEEKY] Interesting article about code leaks

    Check out this interesting case study of how one awful memory leak was tracked down and killed: “It’s every developer’s worse nightmare. You’ve bet the farm on a development framework, spent thousands of person-hours developing your application and then find a memory leak. Worse yet, you’ve got a memory leak in an interpreted scripting environment where you have little to no control over how memory is allocated and managed at runtime.” (from Tracking a memory leak in Rails)

    Technorati Tags: rails, memoryleak, geeky, programming

  • 2009-06-19

    [Geeky] RMagick and memory leaks

    A recent post talked about creating a “Domain Specific Language” for image processing of ballots. I’ve made a lot of progress on that project and wanted to give an update. One commenter (my pal Aleks) said to ‘watch out for RMagick as it has major memory leaks. I talked to him further and he recommended using MiniMagick instead. I investigated.

    It turns out indeed that my RMagick app was gobbling up tons of memory.

    Both RMagick and ...

    Read more →
  • 2009-06-03

    [GEEKY] A DSL for Image Analysis

    I have been working quite a lot on Election Reform over the last few weeks, at least from the technology side. To be honest there is just so much I could be blogging about in this narrow specialized space that my cup overfloweth, but also it has been an impediment, not knowing where to start. There’s so much background and new new learning (for me anyway) that it’s been daunting.

    Herewith the start of my attempts to further document what I am up to.

    One task I’ve taken on is prototyping a “post election audit” system (more on this soon.) Basically at the heart of that beast is a bi...

    Read more →
  • 2009-02-02

    [GEEKY] Built my first gem (Ruby Gem that is)

    I’ve gotten interested in what is going on in the public sector, in particular in the world of non profits. I’ve learned a lot, met many people and been trying to define a project that would at the same time do something to better the world as be an interesting and fulfilling product challenge (notice, missing from that list is “make a lot of money”) I want to start posting some of the cool things I am figuring out but so far I haven’t because I can’t really figure out how to organize it.

    One area that I have immersed myself into is the many diverse groups who are doing work promoting government openness and transparency by, among many other things, creating the technical bridges to allow i...

    Read more →
  • 2008-08-18

    [GEEK] Note to self: Ruby has no ++ operator

    I don’t know why it don’t. I don’t know why the error message doesn’t just say: “Hey dope, Ruby has no ++ operator”

    Originally posted on Apr 13, 2007. Reprinted courtesy of ReRuns plug-in.

  • 2008-05-05

    [GEEKY] Cool open source product analogous to Yahoo Pipes

    SnapLogic is an open source product (at least in it’s base edition) providing tools to construct pipelines that deliver and process and filter information through collections of interconnected REST services. As usual, they provide a free ‘community’ edition, and then variously priced developer and enterprise editions. Pricing wasn’t indicated but if you have this kind of need, SnapLogic looks like it’s worth a peek.

  • 2008-03-17

    [Geeky] Doing popups in Rails and elsewhere

    So my little toy pedagogical application needed a pretty popup box. Actually I wanted one so I could see close up some of the alternatives. In the process I came across three different code snippets, each one doing it in a little bit different way. For you and me, here are the links:

    The DOM-popup kit, by Stuart Rackham

    The FAMSPAM Facebox package by Chris Wantrath

    The Bubble Tooltip kit by Alessandro Fulciniti with an assist by Annalisa Afeltra

    I tried the first two, but the third looks cool too. I liked Facebox the best. Your mileage may/will vary.

  • 2008-01-15

    [GEEKY] What every programmer should know about …

    It’s just the title of this post that caught my eye: “What Every Programmer Should Know About Memory, Part 1″: “[snip…]The original document prints out at over 100 pages. We will be splitting it into about seven segments, each run 1-2 weeks after its predecessor. Once the entire series is out, Ulrich will be releasing the full text.[…snip…]” (from LWN.NET)

    I don’t know about you, but it may be just a little bit more than I want to know about memory 🙂

  • 2007-08-20

    TextMate and Ruby

    I’m an on and off [tag]Ruby[/tag] developer, and recently I’ve been trying to decide whether I should use Eclipse for Ruby development or whether TextMate (I am on a Mac) is better. Why even think of [tag]Eclipse[/tag]? Simply that I know it well and it’s very rich for developing Java. It’s also cross platform. From my investigation though, Ruby support in Eclipse is still immature.

    On Mac, TextMate is the hero of Ruby developers. But given that Ruby doesn’t have a debugger and nirvana to Ruby developers is the interactive ruby shell, IRB, I’m not convinced yet.

    Here’s a good article on maximizing TextMate for Ruby: ...

    Read more →
  • 2007-04-05

    [GEEKY] Domain specific languages in Ruby

    This is a topic that I’ve gotten somewhat interested in. If you search for Ruby Domain Specific Languages in google, you will find a ton of hits. Here are two that I particularly liked:

    Building a DSL in Ruby, Part I Building a DSL in Ruby, Part II

  • 2007-01-23

    Is Eclipse too “Windows-esque”?

    Check out this post from dzone.com: latest front page:

    The basic premise of most of the Eclipse-meshes-badly arguments was that Eclipse’s whole design and layout (directories used, startup, etc) is solely oriented toward Windows. An example that Alex cited was that until recently (Eclipse 3.3), Eclipse wasn’t even a properly dockable app in MacOS X

    » Visit DZone Jobs for great people and great opportunities.

    (from: Is Eclipse too "Windows-esque"?)

  • 2007-01-19

    Boston PHP meeting coming up

    A quick reminder of the upcoming BostonPHP meeting: BostonPHP will host a panel discussion on Venture Capital and Open Source Software with Michael Skok of North Bridge Venture, Larry Bohn of General Catalyst Venture and David Beisel of Masthead Venture. Sounds interesting. Follow the link for more details!

  • 2007-01-05

    [GEEKY] Eclipse 3.2.1, CVS and SourceForge.net on Mac OS X

    If you need this tip, it will save you a lot of time. 99% likely though, you don’t need it and it will read as complete gibberish. But I feel compelled to share it because it’s totally obscure and I just spent 2 hours trying to figure it out.

    Problem:

    Eclipse 3.2.1 just ceased to be able to grab code from SourceForge.net via CVS. It would give an error: “Invalid argument or cannot assign requested address”

    Configuration

    Eclipse for using CVS on SourceForge requires ExtSSH (which means, use the Eclipse bundled SSH client, rather than some other utility that you have on your computer — don’t ask.) Mac OS X, 10.4.9, all patches applied Eclipse: 3.2.1 – brand new download

    Solution:

    In Mac OS X Network settings, TCP/IP, make sure that IPv6 is configured and shows an IPv6 Address.

    Thanks for listening.

  • 2006-10-24

    [GEEKY] BostonPHP Meeting: Ajax Update

    “Without a doubt, the concepts behind AJAX are providing the catalyst to move the web from its old clunky “send it all back the server for an update” into the thick client “desktop” feel the average computer user has come to expect.”

    Check out the next meeting of BostonPHP, October 25, 6:30pm, at IBM/Lotus in Cambridge. Get meeting details here.

    Technorati Tags: PHP

  • 2006-06-29

    links for 2006-06-29

    The Blog Ride – The Vietnam of Computer Science

    An interesting paper about object relational mapping…. But what does Vietnam have to do with it?

    (tags: orm soflow technical java hibernate)

  • 2006-06-25

    June 26 – Cool stuff!

    InfoQ – Tracking change and innovation in the enterprise software development community

    A really good high level overview of ‘rules engines’. Explains what the heck they are and how they might be used.

    (tags: soflow rulesengines interesting software)

    9 Ways to Misunderstand Web Standards

    Interesting commentary about building web pages, html, css etc. Nothing life changing, but interesting.

    (tags: web css html soflow)

  • 2006-04-12

    BostonPHP Meeting: Thursday May 4, 2006 – Check it out!

    I met Mark Mark Withington at the last Geek Dinner. He runs the Boston PHP Group. They meet every month. This month’s meeting is about the ZEND Framework. Looks interesting. If you’re PHP dude, check it out!

    When: Thursday, May 04, 2006 At 06:30 PM Where: Optaros, 60 Canal Street 4th Floor, Boston, MA 02114 What: BostonPHP meeting. Topic: Zend Framework More info: Here

    Technorati Tags: PHP

  • 2006-01-14

    [GEEK] What every Java programmer should know about Ruby

    Heard a lot about Ruby? Ruby on Rails? Wonder what the heck it is? Here’s a good intro.

    “This is not yet another “Ruby is better than Java” article. Nor is it intended to bash Java or Java programmers. Rather, it is an attempt to aid Java programmers who are investigating Ruby by helping them quickly get over the “Writing Java in Ruby” syndrome and to discover the Ruby Way.” (from “10 Things Every Java Programmer Should Know about Ruby”)

    Technorati Tags: ruby

  • 2005-12-10

    Using AJAX to do word processing on the web

    You may not have heard of this, but we are now starting to see quite decent word processing applications implemented directly in the browser, using a technique that has become known as “AJAX” – Asyncrhonous Javascript And XML. As usual there is debate about what AJAX really means, who invented it (Microsoft claims that they had it like 5 years ago – which everyone scoffs at.) Here’s a good article about Ajax and how it’s being used to build word processing applications that run directly in the browser:

    “None of these methods, however, are as simple to set up as a standard Web browser, which can quickly access a f...

    Read more →
  • 2005-09-30

    [GEEKY] Ajax? Flash? Java? What’s the best way to create a rich browser based application?

    Ss Inbox Tn

    This is a perenial debate with lots of sides. Here’ s just some fodder for those of you who are pondering the question:

    I guess right off the bat I would exclude Java for a browser based application. Why? Unfortunately it requires a so-called JVM which may or may not be present.

    AJAX on the other hand requires a ‘modern’ web browser, which I think in this day and age (FireFox) is a pretty safe bet.

    And Flash requires the Flash runtime, which again, in this day and age, is also a ...

    Read more →
  • 2005-09-15

    Making it sound better

    Ever notice in restaurant menus how the dish descriptions are made to sound fancier and fancier by adding adjective?

    “green beans” are not as good as “fresh green-beans”, which are not as good as “native fresh green-beans”, which are not as good as: “hand-picked native fresh green-beans”, which are of course the best!

    Is this a similar phenomenon in geek-world? It seems like you can tack “X driven development” or “agile Y” or “object oriented Z” to make anything sound cooler and more a-go-go. Why has no-one written the papers on “agile idea driven development” or “agile concept-driven object-oriented debugging” yet?

    Or have they?

    Technorati Tags: funny, Geeky

  • 2005-09-15

    [GEEK] JDemo: Java Demonstration Framework

    This is pretty cool: a framework to easily manage the demonstration of UI elements, inspired by JUnit. Here’s what they say:

    “As supplement to test driven software development, JDemo provides a new approach of demo driven development: When developing software, you write short code snippets (demo cases) that use your new API. The demo then demonstrates both: how to use the API and what happens when you execute the code. So you can for example interactively test the usability of GUI components.” (from JDemo web site)

    Pretty cool. Check it out!

    Technorati Tags: cooltool

  • 2005-09-13

    Funny: Banana Problem

    This is from a dictionary:

    Banana problem: noun

    A situation of uncertainty about when a task is complete and therefore when to stop working on it

    The term banana problem is often used in computing when talking about badly written or incorrect conditions for the termination of a computer program. It has also been applied in website development, referring to a situation in which a designer adds so many different features that the whole thing looks messy, for example: ‘If you insist on adding that video clip, I’m afraid we’re going to have a real banana problem on our hands.’

    Background

    The term originates from the story of a little girl who said ‘I know how to spell ‘banana’, bu...

    Read more →
  • 2005-06-04

    [GEEK] Good bit about code commenting

    Another neat link I was shown:

    “Ever since I was a wee programmer, I’ve been reminded that good code has a lot of comments. After all, code will be read many more times than it will be written. ” (from “Write Sweet-smelling Comments“)

    Technorati Tags: programming

  • 2005-03-31

    [GEEK] Java Web Start {again}

    There’s another flame-up on the WebStart commentary on the web, this time under the title *“Webstart, now I see why people don’t use it.”

    Even though I’ve spoken out about this once or twice, I couldn’t resist weighing in.

    Here’s what I wrote:**

    *

    I have written so much about this in Blogs, newsgroups, etc that I won’t rehash it here; however I will put some links below for those who are interested.

    My Bottom lines:

    WebStart is a very promising (I would call it tantalizingly close) approach. The problem is that when you are t...

    Read more →
  • 2005-01-02

    Incredibly cool visualizations

    In the realm of interesting visualizations, check this oneout. It’s a Chess game where the computer’s ‘thought process’ is displayed as it figures out the next move. Via “Bad Magic Number” who said “It’s quite an interesting cross between art, programming and chess. “

  • 2004-12-08

    [GEEK] Java Web Start

    You might think it’s a bad idea for me to complain about Java Web Start. Well the truth is that I really like it and so am really frustrated by it’s failures. In my own small way I am hoping to wake up someone at Sun to see the importance of this little bit of technology to their grand Java strategy. In my interview with ClientJava I again made some pointed comments about Java Web Start, and in the comment thread some annonymous person (coward) asked me to elaborate. Here is what I said.

    “Why has WebStart been such a disappointment? I’ve written about this in my blog, hereand here. Basi...

    Read more →
  • 2004-10-06

    [GEEK] Undrestanding and getting around EDT

    No, not Eastern Daylight Time, the Swing Event Dispatch Thread. Duh. If the abbreviation EDT doesn’t send shivers up your spine you’re not really a Java Geek. Or maybe you are an uber-geek. Anyway, I came across this clear and short articleexplaining the big traps and how to avoid them. It is the SPIN project which implements a way-esoteric-PhD-level technique to make it easier to work with the EDT.

  • 2004-09-29

    Web Services gone wild

    Here’s a cool idea: using the web services of Google and Technorati together to find other, related blogs. Here’s the idea: One of the things I am trying to do with BlogBridgeis to help users discover new blogs that they would be interested in. Let’s say I am interested in finding other blogs which are related to or similar to one of my favorites, Scripting News.

    First we ask Google for other sites ‘related to’ Scripting news (click here to see result.)

    Starting at the second entry, we ask Technorati whether the re...

    Read more →
  • 2004-08-03

    Joel on API Wars

    Joel writes a good analysis of some of the dynamics and strategy that apply to the evolution of the Windows APIs and programming paradigms in general. A good readl

  • 2004-07-01

    [GEEK/JAVAONE] Java Web Start – still falling short

    Java Web Start is a piece of Java platform that’s meant to ease the deployment and updating of Java applications. It’s a great idea, but disappointingly implemented. There were several JavaOne sessions about Web Start. There are some great enhancements coming in Java 5.0 (1.5)

    A semi-miraculous JAR compression technology (called Pack200, who knows why) which in some cases achieves a claimed 10-1 compression. You need to know that Java applications are notoriously huge because and so this is welcome news. Beyond this, there are a set of features allowing more control of the placement of shortcuts, onto the desktop, in the start menu, and various other items.

    However, disappointingly, I have...

    Read more →
  • 2004-06-10

    [GEEK] Getting URL objects to time out

    For some reason, it is not possible to get at the Socket object that the URL object uses for its network I/O. And so, on the face of it, you can’t set or change the time-out time. However here are two, semi-kludge properties that Sun has provided us to overcome that deficiency: System.setProperty(“sun.net.client.defaultReadTimeout”, “10000”); System.setProperty(“sun.net.client.defaultConnectTimeout”, “10000”);

  • 2004-06-10

    [GEEK] Ever get confused about logging.properties formats?

    I know I do! Here’s a very concise summary of the syntax that will jog your memory when it needs to be jogged! Syntax for Log4j Cheat Sheet

  • 2004-05-29

    [Geek] Getting ftp task to work in Ant / Eclipse

    Note to self: The FTP task in Ant relies on the library: commons-net.jar from Apache.

    Be not confused, this is different from the library: ant-commons-net.jar, which I believe is the Ant interface to commons-net.jar.

    In other words, you need them both, in ant_homelib. If they are not both there you can a ridiculously cryptic error message. ** p.s. Didn’t I say “GEEK” ?**Dave, thanks for the words of encouragement.

  • 2004-05-28

    [Geek] Debugging focus problems

    Struggling with debugging hairy focus and other UI problems in Swing (Java)? Here’s a handy little tip that I just found out about: When running a Java application, type Ctrl-Shift-F1 and the VM will dump the components hierarchy into standard output.

    p.s. Editorial comment: I question whether I should enter these super-geeky-limited-interest notes here. In the end, as I am using this blog as my personal lab notebook I decided that it’s ok even though it might put some people off. My new standard is that I will precede the title with [geek] to give early warning and allow people to skip it.

  • 2004-05-17

    Still can learn more,,,

    If you are doing Java programming, check out Hardcore Java by Robert Simmon Jr. It’s a idiosyncratic tour through many very interesting advanced Java topics. My wife who sees another Java book sprout on my table every week wonders why it’s taking me so long to learn this “Java” thing 🙂

  • 2004-05-10

    [GEEK] Is Log4J not doing what you expect, or not finding its properties?

    Here’s a handy bit of esoterica: To force Log4J to report on it’s initialization sequence do this:

    java -Dlog4j.debug=true

    (And no, I usually don’t use log4j, I use the Java 1.4 built in logging facility, but some of the libraries I like still use log4j.)

  • 2004-05-08

    [GEEK] Bootclasspath

    In order to debug a hairy problem, I need to step into some Java system classes (hashmap.java) HashMap.class is to be found in rt.jar, part of the standard Java distribution (1.4.2_04) but it does NOT have debug info compiled in.

    So what to do? I think I did a pretty exhaustive set of steps but I was still stumped:

    I can’t locate an rt.jar with debug info From what I read, you can’t easily rebuild it from the java system sources because some stuff does not compile I tried recompiling hashmap.java with -g to get debug info and putting the resulting .class files into a .jar and placing that jar at what I believe is the front of the classpath. I did this in Eclipse by adding it as a library i...

    Read more →
  • 2004-05-08

    Programming Esoterica

    As I delve into programming esoterica, in the past I’ve written down little handy items of information that I discover through a lot of work, for possible future reference. 6 months later, the details will have escaped me, and so I have my written notes to refer back to. Well, I thought, why not use my blog as a handy place for these notes?

    It’s just one fewer place to look, and who knows someone else might benefit from it. The downside, it will be a jarring bit of geekdom to throw in the middle of my other random ramblings and for many people it would be patently meaningless.

    So forgive me ahead of time, this is just another foray into my experimenting with blogs and what they mean and what they are good for. And here we go…

  • 2004-04-08

    [GEEK] Web Rich Text Editors (Apropos of nothing)

    I’ve had occasion to look into what kinds of rich text editors are availble out there, and I thought I’d use this as a place to record the results, for myself, for you, and for posterity. Basically I am looking for a Rich Text Editor that can be embedded in a browser based application. Here are the requirements:

    – Needs to run cross platform (IE, Mozilla, Safari) – Doesn’t need to be hugely featureful – The less of a download the better – Avoid stepping into a cross platform testing quagmire

    So far, here’s what I’ve come up with:

    This onelooks nice, is lightweight and sufficiently functional.

    This one is much heavier weight, and is very functional

    I will post more results of my research as I continue. If you know of any that I should take a look at, please drop me a line or post a comment.

  • 2004-01-17

    Goody, Goody! Mary, over at

    Goody, Goody! Mary, over at LockerGnome notes: “…to look like a Windows application. With JGoodies you can give them what they want, and a whole lot more besides!”. This is in reference to a great UI framework for Java called JGoodies.

    As it turns out, the app I’ve been working on lately has been using JGoodies. Check it out, it does make a lovely WindowsXP looking UI with Swing actually possible. No small feat.

© Salas Blog. All rights reserved.