The Brain Sandwich
The brain sandwich is a practical AI coding workflow: understand the problem, let an agent help, then verify and explain its work before sharing it.
978 posts
The brain sandwich is a practical AI coding workflow: understand the problem, let an agent help, then verify and explain its work before sharing it.
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.
The CSV magician. Contribute to medialab/xan development by creating an account on GitHub.
Terminal workspace manager for AI coding agents.
A guide to start using Peppy
Clear — An intent-first agentic development language. Write readable specifications. AI agents turn them into real software.
Coding agents as normal technology
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…
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...
I stumbled across NiceGUI recently and it looks like a genuinely elegant solution for anyone who wants to build web-based user interfaces without leaving Python. The library lets you spin up buttons, dialogs, plots, 3D scenes, and more, all rendered directly in the browser with minimal boilerplate. What caught my attention is how well-suited it seems for the kinds of small, practical projects I always end up reaching for something heavier than I need — think quick dashboards, home automation controls, or internal tooling for a robotics project. With over 15,000 GitHub stars it clearly resonates with a lot of people, and flipping through the examples confirms the API feels refreshingly clean and Pythonic. The fact that it can also run in a native window via Chrome makes it even more versatile for desktop-style apps without shipping a full Electron monster.
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...
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.
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
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...
I don't like this one bit
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 ...
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. ...
If this site looks a little different to you, it’s because I am doing a complete overhaul using Claude code. I have drunk the cool aid 100%! Over the last 2 months I’ve done a lot of “coding”. Actually very liittle coding, more directing Claude Code to code for me. I am using Python ouf of habit but it almost doesn’t matter.
I am posting using Mars Edit! I wrote (back before Claude) the interface to metablog API to allow this. Mars Edit was the only tool I could find on Mac that still spoke that. It wasn’t an exhaustve search but this is what I came up with.
I don’t know yet whether I will be. blogging here. I have posted occasional things on LinkedIn where I have a built in audience. I am sure they never look at my blog. In fact the traffic to this blog is non existant I am sure. So why post here?
Thinking out loud now, maybe I automate this blog to automatically display whatever I post to LInkedin. Or the other way around.
A few random notes from claude coding quite a bit last few weeks.
Coding workflow. Given the latest lift in LLM coding capability, like many others I rapidly went from about 80% manual+autocomplete coding and 20% agents in November to 80% agent coding and 20% edits+touchups in December. i.e. I really am mostly programming in English now, a bit sheepishly telling the LLM what code to write... in words. It hurts the ego a bit but the power to operate over software in large "code actions" is just too net useful, especially once you adapt to it, configure it, learn to use it, and wrap your head around what it can and cannot do. This is easily the biggest change to my basic coding workflow in ~2 decades of programming and it happened over the course of a few weeks. I'd expect something similar to be happening to well into double digit percent of engineers out there, while the awareness of it in the general population feels well into low single digit percent.
IDEs/agent swarms/fallability. Both the "no need for IDE anymore" hype and the "agent swarm" hype is imo too much for right now. The models definitely still make mistakes and if you have any code you actually care about I would watch them like a hawk, in a nice large IDE on the side. The mistakes have changed a lot - they are not simple syntax errors anymore, they are subtle conceptual errors that a slightly sloppy, hasty junior dev might do. The most common category is that the models make wrong assumptions on your behalf and just run along with them without checking. They also don't manage their confusion, they don't seek clarifications, they don't surface inconsistencies, they don't present tradeoffs, they don't push back when they should, and they are still a little too sycophantic. Things get better in plan mode, but there is some need for a lightweight inline plan mode. They also really like to overcomplicate code and APIs, they bloat abstractions, they don't clean up dead code after themselves, etc. They will implement an inefficient, bloated, brittle construction over 1000 lines of code and it's up to you to be like "umm couldn't you just do this instead?" and they will be like "of course!" and immediately cut it down to 100 lines. They still sometimes change/remove comments and code they don't like or don't sufficiently understand as side effects, even if it is orthogonal to the task at hand. All of this happens despite a few simple attempts to fix it via instructions in CLAUDE . md. Despite all these issues, it is still a net huge improvement and it's very difficult to imagine going back to manual coding. TLDR everyone has their developing flow, my current is a small few CC sessions on the left in ghostty windows/tabs and an IDE on the right for viewing the code + manual edits.
Tenacity. It's so interesting to watch an agent relentlessly work at something. They never get tired, they never get demoralized, they just keep going and trying things where a person would have given up long ago to fight another day. It's a "feel the AGI" moment to watch it struggle with something for a long time just to come out victorious 30 minutes later. You realize that stamina is a core bottleneck to work and that with LLMs in hand it has been dramatically increased.
Speedups. It's not clear how to measure the "speedup" of LLM assistance. Certainly I feel net way faster at what I was going to do, but the main effect is that I do a lot more than I was going to do because 1) I can code up all kinds of things that just wouldn't have been worth coding before and 2) I can approach code that I couldn't work on before because of knowledge/skill issue. So certainly it's speedup, but it's possibly a lot more an expansion.
Leverage. LLMs are exceptionally good at looping until they meet specific goals and this is where most of the "feel the AGI" magic is to be found. Don't tell it what to do, give it success criteria and watch it go. Get it to write tests first and then pass them. Put it in the loop with a browser MCP. Write the naive algorithm that is very likely correct first, then ask it to optimize it while preserving correctness. Change your approach from imperative to declarative to get the agents looping longer and gain leverage.
Fun. I didn't anticipate that with agents programming feels more fun because a lot of the fill in the blanks drudgery is removed and what remains is the creative part. I also feel less blocked/stuck (which is not fun) and I experience a lot more courage because there's almost always a way to work hand in hand with it to make some positive progress. I have seen the opposite sentiment from other people too; LLM coding will split up engineers based on those who primarily liked coding and those who primarily liked building.
Atrophy. I've already noticed that I am slowly starting to atrophy my ability to write code manually. Generation (writing code) and discrimination (reading code) are different capabilities in the brain. Largely due to all the little mostly syntactic details involved in programming, you can review code just fine even if you struggle to write it.
Slopacolypse. I am bracing for 2026 as the year of the slopacolypse across all of github, substack, arxiv, X/instagram, and generally all digital media. We're also going to see a lot more AI hype productivity theater (is that even possible?), on the side of actual, real improvements.
Questions. A few of the questions on my mind:
- What happens to the "10X engineer" - the ratio of productivity between the mean and the max engineer? It's quite possible that this grows a lot.
- Armed with LLMs, do generalists increasingly outperform specialists? LLMs are a lot better at fill in the blanks (the micro) than grand strategy (the macro).
- What does LLM coding feel like in the future? Is it like playing StarCraft? Playing Factorio? Playing music?
- How much of society is bottlenecked by digital knowledge work?
TLDR Where does this leave us? LLM agent capabilities (Claude & Codex especially) have crossed some kind of threshold of coherence around December 2025 and caused a phase shift in software engineering and closely related. The intelligence part suddenly feels quite a bit ahead of all the rest of it - integrations (tools, knowledge), the necessity for new organizational workflows, processes, diffusion more generally. 2026 is going to be a high energy year as the industry metabolizes the new capability.
The best ChatGPT that $100 can buy
A multifunctional web development environment that integrates web servers, databases, and various programming languages. It offers multi-instance PHP running, powerful CLI support, and flexible domain and SSL customization, aimed at optimizing web and PHP development processes. Its efficient development environment enhances resource utilization. It includes software such as MySQL, MariaDB, PostgreSQL, PHP, Redis, etc., supports Docker, Node.js, and focuses on security, ensuring a smoother and more efficient development process.
Continuing a theme of the previous blog, I am starting to really believe that programming, coding, software development is going to be forever changed. I say this, among other things, from the perspective of someone who has taught software engineering, development, and intro programming courses.
I have been doing more and more programming using AI tools. In my case, Claude Code in particular. But I think they are all similar and converging. From time to time, the leader switches around. But really, that is kind of meaningless because it is very unclear what it means to be the leader. In other words, what is the metric by which we compare them? There are more or less an infinite number of us...
How to lovingly handcraft your own git repositories
Midnight Commander Development Center
Easing is the process of gradually increasing (or decreasing) a value to from a start to a target, without just jumping to the target. Used in computer animation. I used it for powering servos in an arm in a graceful way. There are simple Easing Equations to accomplish this.
Open Streetmaps is one of the nicest packages for maps. But using it is really messy. Prettymaps is a package that makes it easy to use OpenStreetMaps, in python. It contains a small set of Python functions to draw pretty maps from OpenStreetMap data. Based on osmnx, matplotlib and shapely libraries.
I have met a lot of developers in my life.
Late…
Just a small tool to help me (and you but without any guaranty) to create command alias and sub-aliases (multi word alias) - adoy/cmdalias
Run local LLMs inside your browser. Contribute to sauravpanda/BrowserAI development by creating an account on GitHub.
Sync, search and backup shell history with Atuin
Welcome to PyViz! The PyViz.org website is an open platform for helping users decide on the best open-source (OSS) Python data visualization tools for their purposes, with links, overviews, comparisons, and examples.
👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. - ghostty-org/ghostty
A fast and efficient type assistant for Python, including tensor shape inference - RightTyper/RightTyper
Explore and compare open source Ruby libraries
A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git. - marimo-team/marimo: A reactive notebook for Python — run reproducible ...
Learn Python typing (type hints) with interactive online
exercises!
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...
👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts:
Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Interrupting Threads: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorless Ruby Processes, Ractors and alternative runtimes: Parallel Ruby Scaling concurrency: Streaming Ruby Abstracted, concurrent Ruby Closing thoughts, kicking the tires and tangents How I dive into CRuby concurrency You’re reading “The Thread API: Concurrent, colorless Ruby”.
Learn web development with Python and the Django Web Framework. Tutorials on Django REST Framework, Docker, React, and Vue.
Learn about hash value omission in Ruby, their benefits, examples, and implementation guidelines for more concise code
A CLI utility and Python library for interacting with Large Language Models, both via remote APIs and models that can be installed and run on your own machine.
An Experimental Package Management Solution for Python
A modern Jupyter client for MacOS
⏰ Modern datetime library for Python, written in Rust - ariebovenberg/whenever
Ruff is an extremely fast, modern linter with a simple interface, making it straightforward to use. It also aims to be a drop-in replacement for other linting and formatting tools, like Pylint, isort, and Black. It's no surprise it's quickly becoming one of the most popular Python linters.
A complete library of resources that caters to all levels of Roboticists. - akshetP/robotics-resources
Analyze how a Git repo grows over time.
TEO is the schema-driven web server framework native to Rust, Node.js and Python. It reduces developing time and improves developers' life experience.
piku, inspired by dokku, allows you do git push deployments to your own servers, no matter how small they are.
Get started with IFTTT, the easiest way to automate your favorite apps and devices for free. Make your home more relaxing. Make your work more productive. We...
Documentation and demos for the open source reveal.js HTML presentation framework.
Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.
Write down your thoughts in your favourite text editor, and Deckset will turn them into beautiful presentations.
NiceGUI is an easy-to-use, Python-based UI framework, which shows up in your web browser. You can create buttons, dialogs, Markdown, 3D scenes, plots and much more.
Explore data and build apps seamlessly with marimo, a next-generation Python notebook.
Clicky's privacy-friendly, real-time website analytics service is simply the best way to monitor, analyze, and react to your website's traffic in real time.
Fastest way to deploy a Rails app!
Make serving a Twirp RPC Services as easy and familiar as Rails controllers. - collectiveidea/twirp-rails
Simple, powerful, first-party analytics for Rails. Contribute to ankane/ahoy development by creating an account on GitHub.
An attempt to tame Rails' default policy to log everything. - roidrage/lograge
Short and simple video lessons that start from scratch. Tools and thoughts that might make your professional life more enjoyable.
Web based supervisory system for ROS. Contribute to EESC-LabRoM/rosweb development by creating an account on GitHub.
ROS node that turns your robot into a web server to visualize ROS topics - dheera/rosboard
A web-based control center for ROS robots. Contribute to pantor/ros-control-center development by creating an account on GitHub.
Foxglove helps teams explore, collaborate on, and ultimately make sense of their data more efficiently.
Educational robot with support for various drive kinematics - IDiAL-IMSL/Edurob
The Wiki for Robot Builders.
The first real AI developer. Contribute to Pythagora-io/gpt-pilot development by creating an account on GitHub.
Create web-based user interfaces with Python. The nice way. - zauberzeug/nicegui
Usually when people say that a topic is confusing when I think it’s not, the reason is that there’s actually some hidden complexity that I wasn’t considering. And after some follow up conversations, it turned out that HEAD actually was a bit more complicated than I’d appreciated!
Recently I needed to run millions of API calls to an internal service. API calls are IO blocking. This means that when my service calls the…
A framework for rapid development and deployment of production-ready RAG systems - SciPhi-AI/R2R
Rails debugging dev tools for faster development. Inspect your request details (queries, logs, cache, jobs and more).
ROS opencv camera driver that uses cv::VideoCapture - OTL/cv_camera
A small set of Python functions to draw pretty maps from OpenStreetMap data. Based on osmnx, matplotlib and shapely libraries. - GitHub - marceloprates/prettymaps: A small set of Python functions t...
How git commits really work
Describes a simple Markov chain algorithm to generate reasonable-sounding but utterly nonsensical text, and presents some example outputs as well as a Python implementation.
During the development of Python applications, I've continually asked myself how and when variables should be passed and initialized for the application's configuration. I want to be able to easily override the configuration for tests, for example, to use a local database for testing. But what exactly is application configuration, and why is it needed? The website a ...
A static site generator combines a markup language with a templating engine to produce HTML files. Learn more on Full Stack Python.
Kagi Search –Better search results with no ads. Welcome to Kagi (pronounced kah-gee), a paid search engine that gives power back to the user.
Robotics Toolbox for Python. Contribute to petercorke/robotics-toolbox-python development by creating an account on GitHub.
Amazing summary of all the crazy dev tools in the python world.
Death by a thousand microservices –The software industry is learning once again that complexity kills
Let’s Implement the Map Method from First Principles –Those new to functional programming often wonder when to use higher-order functions (or blocks/procs/lambdas in Ruby). I did, too. In this post, we’ll implement the map method from scratch, in turn gaining an intuitive understanding of higher-order functions and when to use them.
Simple.css is a classless CSS template that allows you to make a good looking website really quickly. - kevquirk/simple.css
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.
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...
Practical Stimulus: Building a Counter Component –In this article, we will build a counter component using the Stimulus JavaScript library. This simple example will demonstrate a bunch of useful features of Stimulus such as managing state, handling events, and targeting DOM elements.
Ruby’s Hash is a Swiss-Army Knife –A Hash is a built-in data structure in Ruby that maps values to keys and has a constant-time O(1) lookup. This article shows the capabilities of this simple, but equally powerful tool. We’ll start with the basics but also cover some obscure but equally useful features of hash.
Service Objects are a popular software design pattern in the Ruby on Rails community. They are used to extract procedural logic away from models and controllers and into their own objects.
The costly mistake so many make with numpy and pandas –What happens next() will shock you
Shale - Ruby object mapper and serializer for XML, JSON and YAML
Shale – Ruby object mapper and serializer for XML, JSON, TOML and YAML –Shale – Ruby object mapper and serializer for XML, JSON and YAML
Rails Generate Migration — Everything you need to know –This article is a reference for generating migrations in your Ruby on Rails app — I cover the basics like adding columns and tables, adjusting column types (and loads more), plus some tips and tricks…
Python packages with pyproject.toml and nothing else –I’ve been using setuptools and setup.py for my Python packages for a long time: I like that it works without me having to think about installing and learning any additional tools such as Flit or pip-tools or Poetry or Hatch .
Deploying Ruby on Rails with Dokku (including Redis, Sidekiq, ARM servers and Docker). –This is the ultimate Dokku + Ruby on Rails guide — I cover running Dokku on x86 and ARM, deploying Sidekiq and Redis, dockerizing our Ruby on Rails app, and more…
Tips for writing Rails tasks with Thor instead of Rake –Thor is a great way to write simple CLIs like one-off Rails scripts, but it does have its own gotchas. Here’s how to use Thor in practice.
Rails design patterns –This article is a high-level overview of design patterns that are commonly used in Ruby on Rails applications. I also mention the cons and pros.
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.
Blocks, Procs, and Lambdas: A Beginner’s Guide to Closures and Anonymous Functions in Ruby –Closures and anonymous functions are very useful concepts, especially in functional programming. Ruby makes working with them a pleasure via its flavors like blocks, procs, and lambdas. This post provides an in-depth tutorial and shows the subtle differences between them.
I am a Ruby on Rails developer based in Victoria, BC. This blog is my attempt to spread the joy of building web applications in Ruby on Rails with the world.
Akshay’s Blog –I am a Ruby on Rails developer based in Victoria, BC. This blog is my attempt to spread the joy of building web applications in Ruby on Rails with the world.
0008 – Guide to overloading in Python –Overloading is giving multiple implementations to a function, based on what arguments it receives.
Rewriting the Ruby parser –At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems downloaded from rubygems.org. We recently got approval to merge this work into CRuby, and are very excited to share our work with the community. This post will take you through the motivations behind this work, the way it was developed, and the path forward.
The beautiful, fast, flexible, native Mac code editor from Panic.
Get the most out of Python dicts –I won’t make any dict joke
Ruby 3.2 runtime now available in AWS Lambda | Amazon Web Services –Get started building with Ruby 3.2 today by making necessary changes for compatibility with Ruby 3.2, and specifying a runtime parameter value of ruby3.2 when creating or updating your Lambda functions.
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.
Concerns in Rails: Everything You Need to Know –Concerns are an important concept in Rails that can be confusing to understand for those new to Rails as well as seasoned practitioners. This post explains what concerns are, how they work, and how & when you should use them to simplify your code, with practical, real-world examples.
Introduction to Rails Engines – FastRuby.io | Rails Upgrade Service –An intro to Rails Engines are an architectural pattern that can be used to modularize or pack a Rails application. An article about this powerful f…
Rails cache using the Brotli algorithm offers better compression and performance. - GitHub - pawurb/rails-brotli-cache: Rails cache using the Brotli algorithm offers better compression and performa...
pawurb/rails-brotli-cache: Rails cache using the Brotli algorithm offers better compression and performance. –Rails cache using the Brotli algorithm offers better compression and performance. – GitHub – pawurb/rails-brotli-cache: Rails cache using the Brotli algorithm offers better compression and performa…
How-To Add Recommendations to a Rails App with pgvector and OpenAI –Creating recommendations with pgvector, ruby-openai, and the neighbor gem.
Next generation of automated data exploratory analysis and visualization platform. - Kanaries/Rath: Next generation of automated data exploratory analysis and visualization platform.
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.
From Ruby to Crystal? Writing and distributing a CLI tool—Martian Chronicles, Evil Martians’ team blog –We use the Crystal language to build a CLI tool, a coverage reporter for Coveralls, as a static binary and as a Homebrew tap
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.
Advanced Active Record –Optimizing Performance and Robustness with Locking, UUIDs, Fulltext Search, Database Views, and Geospatial Data
Ruby’s Switch Statement is More Flexible Than You Thought –Ruby’s switch statement is very versatile and flexible, especially due to the dynamic nature of Ruby. In this post, we’ll see how you can use it in various ways. We’ll also learn why it works the way it works. Hint: it uses the === operator (method) under the hood.
Bullet Train is a Ruby on Rails SaaS-in-a-Box that saves developers months of effort and new founders tens of thousands of dollars.
The Ruby on Rails SaaS Template | Bullet Train –Bullet Train is a Ruby on Rails SaaS-in-a-Box that saves developers months of effort and new founders tens of thousands of dollars.
How to Load Code in Ruby | AppSignal Blog –Let’s look into three options for code loading in Ruby: using load, require, and autoload. This is a very useful review and also explains more about zeitwerk.
Why I Stopped Using Sorbet in All My Ruby Projects –And why I think you should stop using it too
Building GitHub with Ruby and Rails | The GitHub Blog –Since the beginning, GitHub.com has been a Ruby on Rails monolith. Today, the application is nearly two million lines of code and more than 1,000 engineers collaborate on it daily. We deploy as often as 20 times a day, and nearly every week one of those deploys is a Rails upgrade. Upgrading Rails weekly Every […]
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.”
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.”
Some possible reasons for 8-bit bytes –An interesting walk down history lane… of computers
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.
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!
Last week I published a story for The Washington Post that required an interactive slippy map. Lookup maps like this are a common pattern to show a geographic trend and let readers explore the data …
Rails initializers you don’t know about – Inflections –Fun Rails Esoterica. One of the features that new Rails people are amused and surprised by: “Rails come with a lot of initializers that we are not quite familiar with. One of them is the inflections initializer. In this post, we will look at what inflections.rb is and how we can use them.”
GPT in 60 Lines of NumPy | Jay Mody –Implementing a GPT model from scratch in NumPy. This is a detailed article including python source code. Ive skimmed it and it does explain a lot. But even without my being a neural net, ai, machine learning, gpt, chatgpt expert, i think i would learn a lot. Also the article is very well written presented.
An interesting study of performance. It seems hard to believe.
The Difference Between load, autoload, require, and require_relative in Ruby 📖 –An oldy but goodie source of confusion in Ruby. Author says: “Loading external files can get tricky in Ruby, but it doesn’t have to be. This post explains the usage of Ruby’s load, require, and require_relative methods, and when to use each.”
Unlock the Potential of VS Code for Ruby Programming –Lots of up to date information on how to tune VS Code for the best Ruby experience. A guide to a free Ruby development environment. Author says: “If you’re like me and your RubyMine trial version expired, you’re probably relying on VS Code. While the former is an amazing tool, it comes behind a paywall, unfortunately. Hopefully, JetBrains will reconsider at some point and have a Community Edition, just like IntelliJ.”
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?”
Ruby 3.2’s YJIT is Production-Ready –My question is what does the Y in YJIT stand for? From the author: “YJIT, a just-in-time (JIT) implementation on top of CRuby built at Shopify, is now production-ready and delivering major improvements to performance and speed. Maxime shares the updates that have been made in this newest version of YJIT, and future plans for further optimization.”
This is a standalone password generator. I think that because it does’t know the email or account name that the password is used with, the risk that the app itself is malware is small… i think… Author says: “z-tokens -- random tokens generation and related tools - GitHub - volution/z-tokens: z-tokens -- random tokens generation and related tools”
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”
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.
This looks useful, which is why I am linking to it, I haven't tried it or anything: "The simplest, fastest repository for training/finetuning medium-sized GPTs. - karpathy/nanoGPT: The simplest, fastest repository for training/finetuning medium-sized GPTs.
Create a Business Language for a Rails Application | AppSignal Blog –This is a very useful package to be aware if… assuming youre a rubyist 😀 Author says: “Build and parse a programming language to extend your Rails application’s functionality.”
VSCode Marketplace can be abused to host malicious extensions –It seems that no one and nowhere is safe from hackers: “Threat analysts at AquaSec have experimented with the security of VSCode Marketplace and found that it’s surprisingly easy to upload malicious extensions from accounts that appear verified on the platform.”
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.”
Interesting package although I don't have a use for it yet. It's your own IFTTT built for geeks that you run on your ownn server. It's got no UI to speak of. On the other hand, it has a sophisticated way to create logic around events and is extensible and open source.
GitHub – gregmolnar/prepper: Prepper is a simple server provisioning tool, built on top of SSHKit. You can use it to script your server build process. –This seems like a very nice simple tool to solve a common problem. My only confusion is that there are a bunch of similar tools to do the same thing. Each has its own DSL, written in ruby or some other language, has its own conceptual steucture, and its own bugs. It’s enough to make me decide to just keep doing it by hand. Heres what the author says: “ Prepper is a simple server provisioning tool, built on top of SSHKit. You can use it to script your server build process. – GitHub – gregmolnar/prepper: Prepper is a simple server provisioning tool…”
An Introduction to Ractors in Ruby | AppSignal Blog –I read and heard about Ractors in ruby. This article demystifies them. My evaluation: Ractors are a safer alternative to Threads. I’m sure thats a massive oversimplification and even incorrect in a way. But for me I need a simple hook to hang the concept onto! The author says: “Discover when and why you should use ractors, and build a ractor in Ruby.”
This is not a new thing by a long shot. But thw fact that it is published by dhh is a big deal imo. For me it assures me to some extent that it is “correct” and that it will be maintained. From author: “Running Rails from Docker for easy start to development - rails/docked: Running Rails from Docker for easy start to development”
rails/docked: Running Rails from Docker for easy start to development –This is not a new thing by a long shot. But thw fact that it is published by dhh is a big deal imo. For me it assures me to some extent that it is “correct” and that it will be maintained. From author: “Running Rails from Docker for easy start to development – rails/docked: Running Rails from Docker for easy start to development”
For me, a very provocative set of arguments. Novel insights on how to remove complexity. Or recognizing that you may not need that additional service or technology. The author: “Radical Simplicity is a startup development method to make development faster and more fun that plays well with lean startups”
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 “
Laurence Tratt: How Might Generative AI Change Programming? –More about a topic that is extremely hot right now
If youve done a bit of Rails, you might have written some helpers like this. This package seems like a more complete and comprehensive implementation of this idea.
Port of OpenAI's Whisper model in C/C++. Contribute to ggerganov/whisper.cpp development by creating an account on GitHub.
Phlex — fast, object-oriented view framework for Ruby –If youve done a bit of Rails, you might have written some helpers like this. This package seems like a more complete and comprehensive implementation of this idea.
Database Performance Optimization and Scaling in Rails | AppSignal Blog –A decent introductory article about scaling rails applications. Somewhat rails specific, but it does introduce the general principles. Heres the authors blurb: “Improve your Rails application’s performance by fine-tuning and scaling your database.”
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.”
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 …”
Refurbishing and modernizing Python codebases with refurb –I havent tried this tool. If it works (a big if) it would be very useful. Heres what the author says: “As we know, Python is an interpreted language. Interpreted code is always slower than direct machine code because it takes a lot more…”
Another guide to help you figure out how to use IFTTT to post on Mastodon. I am still tweaking this.
5 ways to make HTTP requests in Ruby –Oldie but goodie question – but the answer changes a little every year! So this post: “There are numerous ways to perform HTTP requests in Ruby. Let’s dive in 5 of these solutions and compare each other.”
A very interesting concept and scenario that affects scale in surprising ways. In the category of everything old is nee again, this was identified and named back in the 1970’s!
From the readme, this is a promising tool for automating deploymeny of apps to s cloud server. Perhaps one more option post Heroku. They dont mention ruby and rails but imply its covered.
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.”
Object-Oriented Discrete Event Simulation — with SimPy –Discrete Simulation is a grest alternative for scenarios that are hard or impossibke to solve analytically. Improving a busy emergency department with stochastic discrete event simulation
[Pito: They make some very bold promises about this app. Take a look] The next-generation command line.
Thoughts on Python Poetry. Pip is hard enough, how much does… | by Daryan Hanshew | Sep, 2022 | Medium –Indeed how much does it help? For a ruby guy, pip == gem and poetry == bundler
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
This article is about a few quick thumb rules I use when writing shell scripts that I’ve come to appreciate over the years. Very opinionated....
Very interesting review of github copilot, open source and the law. The
A nice overview of rust and its pros and cons.
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…
Heroku Alternatives for Python-based Applications –In this article, you’ll learn what the best Heroku alternatives (and their pros and cons) are.
Building a Rails CI pipeline with GitHub Actions –GitHub Actions is an automation platform that you run directly from inside a repository. We can use it as a testing CI/CD pipeline and keep everything close to the code.
Testing Rails Apps with FactoryBot and MiniTest –This blog post looks at testing rails apps with FactoryBot and MiniTest – the default test framework which ships with Rails….
5 Python Libraries That Make Everyday Coding Simpler –A bunch of really handy little python libraries: lThese modules bring a bit more elegance and functionality to Python
Markdown in Ruby on Rails with RedCarpet – Mitch Craver –A pretty detailed explanation and example of how to use Markdown in Rails
Security Best Practices for Your Rails Application | AppSignal Blog –These are pretty basic common sense measures that i think any rails app should follow: “Ensure your Rails application stays secure by following some best practices and habits.”
A suprisingly thoughtful and detailed essay. I skimmed it. It's a bit of intellectual play because the question could be answered much more briefly. But the article does go deep and look at the question in many different interesting ways.
Import Maps Under the Hood in Rails 7 | AppSignal Blog –Very useful background on Rails 7 and Javascript: “Learn how to install JavaScript libraries with import maps and how import maps work under the hood in Rails 7.
Making Sense of Rails Assets –Rails Assets (css, js, etc) have been managed through various mechanisms over the years. They seem to keep trying to find something less mind bendingly complex. Here’s the latest: “Demystify the complexity of the Rails 7 asset pipeline and navigate its wide menu of options.”
Why You Should Use Data Classes in Python | Giuliano Pertile –Don’t you know what a Data Class is? You know how to use it? And what is the difference with a regular class? Here in this post I will try to answer these questions and many more.
Bashly is a command line application (written in Ruby) that lets you generate feature-rich bash command line tools.
A Quick and Easy Guide to the Asset Pipeline in Rails 7 | Mix & Go –It never hurts to learn more about the Asset Pipeline in Rails 7, right?
Welcome to Bashly | Bashly – Bash CLI Framework –Bashly is a command line application (written in Ruby) that lets you generate feature-rich bash command line tools.
Python List Comprehensions Are More Powerful Than You Might Think –I can always learn tonuse comprehensions better! “Write better list comprehensions with the help of these unknown features and tricks”
Accelerate Python code 100x by import taichi as ti | Taichi Docs –This is almost in the too good to be true category! “Python has become the most popular language in many rapidly evolving sectors, such as deep learning and data sciences. Yet its easy readability comes at the cost of performance. Of course, we all complain about program performance from time to time, and Python should certainly not take all the blame. Still, it’s fair to say that Python’s nature as an interpreted language does not help, especially in computation-intensive scenarios (e.g., when there are multiple nested for loops).”
Why Use MongoDB with Ruby –I haven’t read this yet, but the topic is of great interest: “Before discovering Ruby and Ruby on Rails I was a .NET developer. At that time I’d make ad-hoc changes to my development database, export my table/function/stored procedure/view definitions to text files and check them into source control with any code changes. Using diff functionality I’d compare the schema changes that the DBAs needed to apply to production and we’d script that out separately.”
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.
Adds additional postgres functionality to an ActiveRecord / Rails application - GeorgeKaraszi/ActiveRecordExtended: Adds additional postgres functionality to an ActiveRecord / Rails application
GeorgeKaraszi/ActiveRecordExtended: Adds additional postgres functionality to an ActiveRecord / Rails application –Adds additional postgres functionality to an ActiveRecord / Rails application – GeorgeKaraszi/ActiveRecordExtended: Adds additional postgres functionality to an ActiveRecord / Rails application
Effective Queries with Rails and PostgreSQL –Getting data into your database is easy, but querying large datasets is challenging—especially without the right indexes. Pavel Tkachenko teaches how to write performant SQL queries with EXPLAIN and ANALYZE.
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 […]
Command-line interactive multitool for tabular data.VisiData is an interactive multitool for tabular data. It combines the clarity of a spreadsheet, the efficiency of the terminal, and the power of Python, into a lightweight utility which can handle millions of rows with ease.
Thinking in Hotwire: Progressive Enhancement –Your mental model for Hotwire should be progressive enhancement: start with the basics and layer on Turbo Frames, Streams, and Stimulus as you build more.
Open-source data multitool | VisiData – A very sophisticated tool for working with tabular data. It’s actually a cli and is handy. But I found it a little hard to learn. Still good to be aware of it!
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
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
Polar plots with Matplotlib –If you need a polar plot, you need one! They are tricky to do but these examples are helfpul!
It’s Time to Say Goodbye to These Obsolete Python Libraries –p
With every Python release, there are new modules being added and new and better ways of doing things get introduced. We all get used to using the good …
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?
Python and TOML: New Best Friends – Real Python –TOML is a configuration file format that’s becoming increasingly popular in the Python community. In this tutorial, you’ll learn the syntax of TOML and explore how you can work with TOML files in your own projects.
ROS tool to locate the source file for ROS packages. This is a little esoteric unless you are doing ROS development - like I do. But here it is for you ROS nerds.
Managing Multiple Python Versions With pyenv – Real Python –If this is not a port of rubyenv I don’t know. Its exactly the same. So it’s helpful if you know one, you will know the other! “In this step-by-step tutorial, you’ll learn how to install multiple Python versions and switch between them with ease, including project-specific virtual environments, even if you don’t have sudo access with pyenv.”
Introduction to Vector –Looks useful so I am saving it, but still does not the meet that I have: “Introduction to Vector Vector is a Python library for 2D, 3D, and Lorentz vectors, especially arrays of vectors, to solve common physics problems in a NumPy-li”
20 Type Hinting Techniques and Tools for Better Python Code –Let’s discuss why type hinting techniques and tools improve your Python code
4 Books For Intermediate Ruby And Rails Developers. –I’m a fan of good books. Through my Ruby and Rails journey, I’ve discovered a few excellent books that I’d like to share with fellow Rubyists. The authors of these books are experts in their fields. These books are my recommendation and I think they deserve some space on your desk.
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”
Introducing scikit-geometry –One of those libraries that I was going to write, then I thought, someone else must have already written it. Then I googled and found: “The Python ecosystem is lacking a library with useful geometric types — we aim to fix this by introducing scikit-geometry.”
Deploy Your Ruby on Rails App Using Capistrano | AppSignal Blog –Useful to know that Capistrano is still viable. Find out how to configure Capistrano in your Rails app, then deploy the app.
Get Started with Hotwire in Your Ruby on Rails App | AppSignal Blog –Learn the basics of Hotwire and how to use it in your Rails app.
This is a very reasonable, rational, practical style guide. “Shopify's Ruby Style Guide. Always useful to see how the ruby experts do it!”
Ruby Style Guide –Shopify’s Ruby Style Guide. Always useful to see how the ruby experts do it!
RUby on Whales: Dockerizing Ruby and Rails – I am working on a ruby on rails cluster. There will be many links about my research. An exhaustive and documented Docker configuration for developing Ruby and Rails applications
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.
I recommended Crystal is not Ruby Part 1 on Medium.
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…
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 …
Python mmap: Doing File I/O With Memory Mapping – Real PythonIn this video course, you’ll learn how to use Python’s mmap module to improve your code’s performance when you’re working with files. You’ll get a quick overview of the different types of memory before diving into how and why memory mapping with mmap can make your file I/O operations faster.
The Recurse Center is a self-directed, community-driven educational retreat for programmers in New York City.
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...
SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.
Streamlit is an open-source app framework for Machine Learning and Data Science teams. Create beautiful web apps in minutes.
June 10, 2022 at 04:13PM
Add Feature Flags in Ruby on Rails with Flipper | AppSignal Blog Find out how feature flags function in principle and get started with feature flags using the Flipper gem. June 8, 2022 at 08:41PM
Create a visual timeline of any codebase's contribution history.
To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models An in-depth look at threads vs processes in Ruby web applications, and when you should use each. June 2, 2022 at 07:16PM
DSL Framework consisting of a DSL Engine and a Data-Binding Library used in Glimmer DSL for SWT (JRuby Desktop Development GUI Framework), Glimmer DSL for Opal (Pure Ruby Web GUI), Glimmer DSL for ...
Extension for Visual Studio Code - Andrew Mason's favorite extensions for Rails development in Visual Studio Code
Rails Extension Power Pack – Visual Studio Marketplace Extension for Visual Studio Code – Andrew Mason’s favorite extensions for Rails development in Visual Studio Code May 29, 2022 at 05:29PM
The Practical Effects of the GVL on Scaling in Ruby MRI Ruby’s Global VM Lock: frequently mislabeled, misunderstood and maligned. Does the GVL mean that Ruby has no concurrency story or CaN’T sCaLe? To underst… May 28, 2022 at 05:29PM
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
Efficient Duplicate File Finder. Contribute to pkolaczk/fclones development by creating an account on GitHub.
A collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance. - onceupon/Bash-Oneliner: A collection of handy Bash One-Liners and terminal tricks for d...
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
Our Golang Frameworks vs Ruby Frameworks Expert Guide for Software Developers Browse our Golang web framework vs Ruby On Rails framework guide to uncover which one is best for you. We compare Goland web frameworks and Ruby web frameworks based on their installation, configuration, dependency management, and models. Read our Golang web framework vs Ruby On Rails framework blog at Sphere Partners. May 8, 2022 at 02:48PM
Custom Shirts – Design Custom T-Shirts Online | 40% OFF Custom Shirts! #1 Leader in Custom T-Shirts. Create custom t-shirts for your team, business, school, event and more. FREE SHIPPING! April 24, 2022 at 03:00PM
Creating A Modern Python Development Environment This blog post demonstrates how I set up and configure my Python development environment using pyenv and Poetry. April 24, 2022 at 09:10PM
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
A Kubernetes tutorial for complete beginners.
Head-First Kubernetes A Kubernetes tutorial for complete beginners. April 8, 2022 at 03:31PM
Robot demos. Contribute to UbiquityRobotics/demos development by creating an account on GitHub.
demos/follow.py at master · UbiquityRobotics/demos Robot demos. Contribute to UbiquityRobotics/demos development by creating an account on GitHub. April 1, 2022 at 04:35PM
Simultaneous localization and mapping using fiducial markers. - jrlandau/fiducials-1: Simultaneous localization and mapping using fiducial markers.
jrlandau/fiducials-1: Simultaneous localization and mapping using fiducial markers. Simultaneous localization and mapping using fiducial markers. – jrlandau/fiducials-1: Simultaneous localization and mapping using fiducial markers. March 29, 2022 at 05:47PM
Simple, efficient background processing for Ruby. Contribute to mperham/sidekiq development by creating an account on GitHub.
Sucker Punch is a Ruby asynchronous processing library using concurrent-ruby, heavily influenced by Sidekiq and girl_friday. - brandonhilkert/sucker_punch: Sucker Punch is a Ruby asynchronous proce...
This article will teach you how background processing works as well as the alternatives the Ruby community offers to implement it in your application.
help to kill N+1 queries and unused eager loading. Contribute to flyerhzm/bullet development by creating an account on GitHub.
Scheduled Jobs and Custom Clock Processes | Heroku Dev Center Schedule recurring or time-based jobs on Heroku with the Scheduler add-on or by implementing a custom clock process. March 28, 2022 at 08:19PM
Comparing Ruby Background Processing Libraries: Delayed Job – SitePoint This article will teach you how background processing works as well as the alternatives the Ruby community offers to implement it in your application. March 28, 2022 at 06:52PM
Partial rendering performance in Rails Some numbers about rendering times with different techniques March 28, 2022 at 06:52PM
Getting Started · mperham/sidekiq Wiki Simple, efficient background processing for Ruby. Contribute to mperham/sidekiq development by creating an account on GitHub. March 28, 2022 at 08:14PM
The Rails Command Line — Ruby on Rails Guides
March 28, 2022 at 08:20PM
flyerhzm/bullet: help to kill N+1 queries and unused eager loading help to kill N+1 queries and unused eager loading. Contribute to flyerhzm/bullet development by creating an account on GitHub. March 28, 2022 at 06:51PM
brandonhilkert/sucker_punch: Sucker Punch is a Ruby asynchronous processing library using concurrent-ruby, heavily influenced by Sidekiq and girl_friday. Sucker Punch is a Ruby asynchronous processing library using concurrent-ruby, heavily influenced by Sidekiq and girl_friday. – brandonhilkert/sucker_punch: Sucker Punch is a Ruby asynchronous proce… March 28, 2022 at 08:14PM
Managing remote repositories – GitHub Docs Learn to work with your local repositories on your computer and remote repositories hosted on GitHub. March 28, 2022 at 03:30AM
There are many ways to scale out your database; many of these techniques require advanced management and expensive add-ons or editions. Database sharding is a flexible way of scaling out a database. In this presentation, Jeremiah Peschka explains how to scale out using database sharding, covers basic techniques, and shares some of the pitfalls. This...
The Basics of Database Sharding – Brent Ozar Unlimited® There are many ways to scale out your database; many of these techniques require advanced management and expensive add-ons or editions. Database sharding is a flexible way of scaling out a database. In this presentation, Jeremiah Peschka explains how to scale out using database sharding, covers basic techniques, and shares some of the pitfalls. This… March 24, 2022 at 03:03PM
I’m increasingly encountering users on Heroku that are encountering the need to shard their data. For most users this is something you delay as long as possible as you can generally go for sometime before you have to worry about it. Additionally scaling up your database is often a reasonable approach early on and something I encourage as a starting point as scaling up is easy to do with regards to databases. However, for the 1% of users that do need to shard when the time comes many are left wondering where to start, hence the following guide.
OpiniDatabase sharding is the process of splitting up a database across multiple machines to improve the scalability of an application. The justification for database sharding is that after a certain scale point it is cheaper and more feasible to scale a site horizontally by adding more machines than to grow it vertically by adding beefier servers.
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
Building Scalable Databases: Pros and Cons of Various Database Sharding Schemes – Dare Obasanjo OpiniDatabase sharding is the process of splitting up a database across multiple machines to improve the scalability of an application. The justification for database sharding is that after a certain scale point it is cheaper and more feasible to scale a site horizontally by adding more machines than to grow it vertically by adding beefier servers. March 24, 2022 at 12:33AM
Sharding your database I’m increasingly encountering users on Heroku that are encountering the need to shard their data. For most users this is something you delay as long as possible as you can generally go for sometime before you have to worry about it. Additionally scaling up your database is often a reasonable approach early on and something I encourage as a starting point as scaling up is easy to do with regards to databases. However, for the 1% of users that do need to shard when the time comes many are left wondering where to start, hence the following guide. March 24, 2022 at 12:34AM
The Ultimate Guide to Real-Time Lane Detection Using OpenCV – Automatic Addison In this tutorial, we will go through the entire process, step by step, of how to detect lanes on a road in real time using the OpenCV computer vision library and Python. By the end of this tutorial, you will know how to build (from scratch) an application that can automatically detect lanes in a video stream from a front-facing camera mounted on a car. You’ll be able to generate this video below. March 22, 2022 at 03:46PM
Git Good – The magic of keeping a clean Git history | Blog | simplabs This post is designed to help you form a solid mental model while working with Git both professionally and in an open source project, and how to ensure you are following best practices to make the process easier for everyone. March 17, 2022 at 08:09PM
3 ways to detect slow queries in PostgreSQL This blog post is about handling bad performance in PostgreSQL and shows three useful and quick methods to spot performance problems and slow queries. March 16, 2022 at 05:35PM
QuickLook plugins and packages. Contribute to haokaiyang/Mac-QuickLook development by creating an account on GitHub.
haokaiyang/Mac-QuickLook: QuickLook plugins and packages QuickLook plugins and packages. Contribute to haokaiyang/Mac-QuickLook development by creating an account on GitHub. March 15, 2022 at 08:18PM
How I test Rails applications When I was a Rails beginner I was amazed by Rails and Test Driven Development. But I often struggled with testing because I did not know… March 14, 2022 at 04:55PM
Sinatra Best Practices: Part One While Sinatra’s one-file approach may work well for your one-off, smaller application – it can quickly become a mess as you add on multiple routes, route-handlers, helpers, and configuration.… March 14, 2022 at 04:56PM
Faster Rails: Eliminating N+1 queries – Semaphore N+1 queries are making your Rails app painfully slow. Learn how to eliminate them from your project. March 14, 2022 at 04:28PM
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...
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
OpenCV: OpenCV-Python Tutorials
March 14, 2022 at 01:29AM
March 14, 2022 at 01:30AM
March 14, 2022 at 01:30AM
March 14, 2022 at 01:29AM
YOLO object detection with OpenCV – PyImageSearc In this guide you will learn how to use the YOLO object detector to detect objects in images and video using OpenCV, Python, and Deep Learning. March 14, 2022 at 01:32AM
March 14, 2022 at 01:32AM
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
Git Organized: A Better Git Flow | Render Development is rarely a linear process, and our commits tend to reflect this. Here you’ll learn about a git flow for faster PR reviews and an keeping your git history organized. March 10, 2022 at 04:38PM
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
Heroku's platform was designed with services in mind. If you're building a service oriented web app, you might find this interesting.
Randall Degges – Heroku and SOA Heroku’s platform was designed with services in mind. If you’re building a service oriented web app, you might find this interesting. March 10, 2022 at 12:16AM
How to Test Ruby Code That Depends on External APIs Few things are more frustrating than slow, flaky test suites. You’re ready to deploy, wait 20 minutes for CI to run, only to find that a test failure in code you’ve never touched is blocking you. You dig into the source and find the problem: an external API call. It works (slowly) most of the tim… March 8, 2022 at 09:43PM
Learn How to Test Third Party Services With Minitest & VCR In this article we will be learning on how to work with VCR, how to configure it and how to write tests for third-party services. March 8, 2022 at 09:45PM
What's Changed
Enable Layout/EmptyLineAfterGuardClause cop by @sambostock in #348
Enable Style/GlobalStdStream by @casperisfine in #350
Allow 'webmaster' for Naming/InclusiveLanguage b...
A tricky thing to remember in Active Record is how to query multiple associations vs. nested associations. Multiple associations take a list of symbols, nested associations take a hash with a symbol. pic.twitter.com/XhGiJdcH7h— Colleen Schnettler (@leenyburger) March 3, 2022
Colleen Schnettler on Twitter A tricky thing to remember in Active Record is how to query multiple associations vs. nested associations. Multiple associations take a list of symbols, nested associations take a hash with a symbol. pic.twitter.com/XhGiJdcH7h— Colleen Schnettler (@leenyburger) March 3, 2022 March 7, 2022 at 01:54PM
Release 2.5.0 · Shopify/ruby-style-guide What's Changed Enable Layout/EmptyLineAfterGuardClause cop by @sambostock in #348
Enable Style/GlobalStdStream by @casperisfine in #350
Allow 'webmaster' for Naming/InclusiveLanguage b…
March 7, 2022 at 01:57PM
Advanced Postgres Performance Tips What do you do when indexes aren’t enough? March 5, 2022 at 02:50PM
PostgreSQL Performance Enabling pg_stat_statements This article will help with how to enable pg_stat_statements to analyze queries and response time for the best PostgreSQL Performance. March 5, 2022 at 02:51PM
MiniTest – Writing Test Code In Ruby (2/3) p.s. This is a series of articles and each article builds off another. I suggest starting at Part 1…. March 4, 2022 at 02:54PM
Why You Should Find Product-Market Fit Before Sniffing Around For Venture Money When you first start out the only thing that matters is finding a cohort of customers who truly value what you offer. Growth alone means next to nothing. March 4, 2022 at 02:56PM
Testing network services in Ruby is easier than you think You’ve started a new project and it’s time for your code to depend on a third-party service. It could be something like ElasticSearch, Resque, a billing provider, or just an arbitrary HTTP API. You’re a good developer, so you want this code to be well tested. But how do you test code that fires off requests to a service that’s totally out of your control? March 4, 2022 at 02:53PM
Packaging Python with the PyOxidizer Pants Plugin Alliterations aside, this post discusses the new PyOxidizer integration coming in Pants 2.10 for packaging Python applications. February 24, 2022 at 05:02AM
Delayed Job vs. Sidekiq: Which Is Better? | AppSignal Blog Let’s take a look at the pros and cons of Delayed Job and Sidekiq, two major job processing systems for Rails apps. February 17, 2022 at 02:49PM
Next Generation Shell (NGS). Contribute to ngs-lang/ngs development by creating an account on GitHub.
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
Code switches at Flickr
Heroku Postgres | Heroku Dev Center The Heroku Postgres add-on is a production database service, offering PostgreSQL, read-only follower databases, snapshots for forks, and local client access. February 1, 2022 at 10:21PM
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
Custom vinyl stickers, decals, labels. High quality printing at low prices! Get custom vinyl stickers, die cuts, window decals, and roll labels printed with your design. The original Sticker Guy, stickin since 1993 January 24, 2022 at 04:00AM
Welcome back! Python is one of my favorite programming languages of all time, if you’re new to Python, check out the link below to learn…
Awesome VS Code Extensions For Python Welcome back! Python is one of my favorite programming languages of all time, if you’re new to Python, check out the link below to learn… January 20, 2022 at 01:36PM
The Anatomy of a GraphQL Query – Apollo GraphQL Blog
January 12, 2022 at 04:42PM
So what’s this GraphQL thing I keep hearing about? by Sacha Greif So what’s this GraphQL thing I keep hearing about?If you’re like me, you probably go through three stages when hearing about a new technology: 1. DismissalOne more JavaScript library?! Just use jQuery already!2. InterestHmm, maybe I should check out this new library I January 12, 2022 at 04:41PM
Runbook: A Ruby DSL for Gradual System Automation At Braintree, we like to write tools to automate our work. Our latest tool is Runbook, a Ruby DSL for gradually automating system… January 12, 2022 at 06:04PM
An instrumental intro to GraphQL with Ruby | AppSignal Blog We’ll learn about GraphQL by making an application about music January 12, 2022 at 04:41PM
braintree/runbook: A framework for gradual system automation A framework for gradual system automation. Contribute to braintree/runbook development by creating an account on GitHub. January 12, 2022 at 06:03PM
Ruby 3.1 – Pattern Matching – Lee Jarvis
January 12, 2022 at 03:03AM
GitLab.com
Wouter Klop / BalancingRobot GitLab.com January 8, 2022 at 01:18AM
Scalability is considered a hard problem to tackle. It’s always presented like it’s something magical done with secret, special tools that only big, million ...
How an internet mapping glitch turned a random Kansas farm into a digital hell An hour’s drive from Wichita, Kansas, in a little town called Potwin, there is a 360-acre piece of land with a very big problem. January 5, 2022 at 04:52PM
Scalable architecture without magic (and how to build it if you’re not Google) Scalability is considered a hard problem to tackle. It’s always presented like it’s something magical done with secret, special tools that only big, million … January 5, 2022 at 05:23PM
From AWK to Ruby
Fly through your shell history. Great Scott! Contribute to cantino/mcfly development by creating an account on GitHub.
cantino/mcfly: Fly through your shell history. Great Scott! Fly through your shell history. Great Scott! Contribute to cantino/mcfly development by creating an account on GitHub. January 4, 2022 at 02:50PM
AWK-ward Ruby From AWK to Ruby January 4, 2022 at 08:49PM
Alternate library for doing ssh from Python
Client — Paramiko documentation Alternate library for doing ssh from Python January 1, 2022 at 11:35PM
Python SSH Tutorial SSH (secure shell) is good for remotely managing machines using a secure connection. Typically you will log in to a server using the command-line ssh tool, or something like PuTTy or MobaXTerm. This guide will show you how to use Python to connect and run commands over SSH using the Paramiko package. – Paramiko Documentation – Paramiko Source on GitHub January 1, 2022 at 11:52PM
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.
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
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
12ft – Hop any paywall Show me a 10ft paywall, I’ll show you a 12ft ladder. December 5, 2021 at 02:05PM
Minimax algorithm and alpha-beta pruning This article will teach you about the minimax algorithm and alpha-beta pruning, from a beginner’s perspective. November 27, 2021 at 07:32PM
November 8, 2021 at 12:47AM
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
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
Ruby2JS is an extensible Ruby to modern JavaScript transpiler you can use in production today.
In this tutorial, we will show various ways to import a CSV file into a 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
Introduction to Pattern Matching in Ruby This article will introduce you to the basics of pattern matching in Ruby, a powerful new feature added in Ruby 2.7. October 13, 2021 at 09:49PM
Style guides for Google-originated open-source projects
styleguide Style guides for Google-originated open-source projects September 26, 2021 at 03:06PM
Ruby 3.1 – Shorthand Hash Syntax – First Impressions It’s the time of year again, and with it comes a bundle of new Ruby 3.1 features getting approved and… September 21, 2021 at 03:31PM
Like jq, but for HTML. Contribute to mgdm/htmlq development by creating an account on GitHub.
September 8, 2021 at 03:38PM
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
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 ...
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
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
A comprehensive, curated list of open-source Ruby on Rails applications.
OpenSourceRails.org A comprehensive, curated list of open-source Ruby on Rails applications. September 2, 2021 at 03:14PM
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 🚀
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
Execute a local command using the processing power of another Linux machine. - Overv/outrun: Execute a local command using the processing power of another Linux machine.
Overv/outrun: Execute a local command using the processing power of another Linux machine. Execute a local command using the processing power of another Linux machine. – Overv/outrun: Execute a local command using the processing power of another Linux machine. August 22, 2021 at 08:52PM
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
Over 100,000 developers and designers are more productive with Tower - the most powerful Git client for Mac and Windows.
Removing sensitive data from a repository – GitHub Docs
August 13, 2021 at 05:06AM
Tower Git Client – The most powerful Git client for Mac and Windows Over 100,000 developers and designers are more productive with Tower – the most powerful Git client for Mac and Windows. August 12, 2021 at 01:56PM
wadetb/eliza: Python implementation of the Eliza chatbot Python implementation of the Eliza chatbot. Contribute to wadetb/eliza development by creating an account on GitHub. August 9, 2021 at 02:46PM
New in Git: switch and restore To my surprise, I recently found out about 2 new additions to the list of high-level commands: git restore and git switch August 8, 2021 at 03:47PM
I am trying to save a cache dictionary in my flask application.
As far as I understand it, the Application Context, in particular the flask.g object should be used for this.
Setup:
import flask ...
Preserving global state in a flask application I am trying to save a cache dictionary in my flask application. As far as I understand it, the Application Context, in particular the flask.g object should be used for this.
Setup:
import flask …
July 29, 2021 at 02:11PM
Structuring a Large Production Flask Application In the world of Python web frameworks Flask and Django are considered the two major frameworks. Flask is a micro-framework and is… July 26, 2021 at 11:39PM
How to speed up Python application startup time Introduction of Python 3.7’s new feature to measure import time July 24, 2021 at 03:59AM
If you ask me to name the most misunderstood aspect of Python, I will answer without a second thought: the Python import system. Just remember how...
Python behind the scenes #11: how the Python import system works If you ask me to name the most misunderstood aspect of Python, I will answer without a second thought: the Python import system. Just remember how… July 17, 2021 at 03:44PM
In this article we will show you how to setup an SSH key-based authentication and connect to your Linux servers without a entering password.
How to Setup Passwordless SSH Login In this article we will show you how to setup an SSH key-based authentication and connect to your Linux servers without a entering password. July 17, 2021 at 02:47AM
Deploying Flask App with WSGI and Apache Server on Ubuntu 20.04 Description July 17, 2021 at 01:08AM
A command line tool that draw plots on the terminal. - red-data-tools/YouPlot
red-data-tools/YouPlot A command line tool that draw plots on the terminal. – red-data-tools/YouPlot July 3, 2021 at 06:13PM
Set Up A Docker Container To Test Your Rails App Code is never self-contained. It runs in an environment. Docker lets you define that environment in a simple and portable way. That’s why pretty much every automated testing and deployment service works with docker containers. You give them a container, and done! But how do you set up a container… July 3, 2021 at 06:14PM
Functools — The Power of Higher-Order Functions in Python Take a tour of Python’s functools module and learn how to use its higher-order functions to implement caching, overloading and much more July 2, 2021 at 05:25AM
Creating Local Python Packages with init.py Packages are so confusing in Python. Here are some of the better links I’ve found about Packages for code reuse and distribution June 29, 2021 at 11:06PM
Python Modules and Packages – An Introduction – Real Python This article explores Python modules and Python packages, two mechanisms that facilitate modular programming. June 29, 2021 at 11:09PM
A list of things that we can do when we need to scale a SQL database.
A collection of modern/faster/saner alternatives to common unix commands. - ibraheemdev/modern-unix
ibraheemdev/modern-unix A collection of modern/faster/saner alternatives to common unix commands. – ibraheemdev/modern-unix June 21, 2021 at 05:29AM
Scaling relational SQL databases A list of things that we can do when we need to scale a SQL database. June 21, 2021 at 05:31AM
The official project of SimSwap (ACM MM 2020). Contribute to neuralchen/SimSwap development by creating an account on GitHub.
neuralchen/SimSwap The official project of SimSwap (ACM MM 2020). Contribute to neuralchen/SimSwap development by creating an account on GitHub. June 18, 2021 at 03:23PM
Types in Python A bird’s view look to the Typing features in Python 3.x. My impression is that it’s pretty confusing! June 18, 2021 at 03:21PM
5 Python Libraries That You Don’t Know, But Should One of the best things about using Python is its infinity of open-source libraries. There is a library for basically anything. If you have read some of my previous blogs, you may have noticed that… June 7, 2021 at 04:36AM
math and logic formula parser and evaluator. Contribute to rubysolo/dentaku development by creating an account on GitHub.
rubysolo/dentaku math and logic formula parser and evaluator. Contribute to rubysolo/dentaku development by creating an account on GitHub. May 31, 2021 at 03:19PM
🔥 🔥 The Open Source Airtable alternative. Contribute to nocodb/nocodb development by creating an account on GitHub.
nocodb/nocodb 🔥 🔥 The Open Source Airtable alternative. Contribute to nocodb/nocodb development by creating an account on GitHub. May 29, 2021 at 06:16AM
ROBOT WEB TOOLS ALLOWS WEB APPLICATIONS TO INTERFACE WITH A VARIETY OF ROBOTS RUNNING MIDDLEWARE LIKE THE POPULAR ROBOT OPERATING SYSTEM (ROS) USING THE LATEST IN HTML5 AND JAVASCRIPT.
Robot Web Tools ROBOT WEB TOOLS ALLOWS WEB APPLICATIONS TO INTERFACE WITH A VARIETY OF ROBOTS RUNNING MIDDLEWARE LIKE THE POPULAR ROBOT OPERATING SYSTEM (ROS) USING THE LATEST IN HTML5 AND JAVASCRIPT. May 22, 2021 at 12:54AM
Neural Magic helps developers in accelerating deep learning performance using automated model sparsification technologies and a CPU inference engine. - Neural Magic
Neural Magic Neural Magic helps developers in accelerating deep learning performance using automated model sparsification technologies and a CPU inference engine. – Neural Magic May 19, 2021 at 04:33PM
There are two kinds of *nix users: the cautious and the adventurous
Here we'll compare three command-line parsing libraries - argparse, docopt, and click.
Definitions of algorithms, data structures, and classical Computer Science problems. Some entries have links to implementations and more information.
Another game theory article
Codebase on which safari web browser was built is apparently an open source project
Railsify is a central resource and directory for all Ruby on Rails plugins maintained by the community
Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced programmers.
SitePoint.com - With a vast variety of web design tutorials and articles coupled with a vibrant and well informed community, SitePoint the natural place to go to grow your online business
Looks like a nice overview of scrum ideas
This is a famous course written by a really cool quirky Ruby celebrity (known as _why -- the underscore is part of the name). You might find it useful!
Bitbucket is a alternative to GitHub. It's very similar. But the one big different is that even Public repositories are available free.
Codeschool courses are supposed to be excellent. This is another resource that is available if you want to accelerate your learning even more!
Ruby for iOS
Useful info about how to authenticate from Rails to Google
RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data - sferik/rails_admin
Crowd sourced projects like
OPen source journals
General database with synchronization accessible via javascript. seems very useful for mobile
Great set of online coding tools
Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration.
Ruby facts, opinions, source code, links, and stuff.
Rake Task for Database Population · GitHub
Our digital forensics service expert team provides digital evidence and support for any forensic need. We service data breach emergencies, intellectual property theft suspicions, cyber security concerns, and personal forensic investigations. Protect your
Drone is a self-service Continuous Delivery platform for busy development teams
CURRENTLY UNMAINTAINED. Authority helps you authorize actions in your Rails app. It's ORM-neutral and has very little fancy syntax; just group your models under one or more Authorizer cla...
Twitter bootstrap stuff
This is a very simple git workflow. It (and variants) is in use by many people. I settled on it after using it very effectively at Athena. GitHub does something similar; Zach Holman mentioned it in this talk.
Sinatra applications are often a single file that contain just enough to get the job done. The framework is best suited for smaller web applications, but if a large web app requires an API or web interface for some secondary functionality, then Sinatra is ideal.
contracts.ruby brings code contracts to the Ruby language. Code contracts allow you make some assertions about your code, and then checks them to make sure they hold.
Ruby scientific library
Beautiful parser generator for ruby. Gem
Another set of tutorials
homeshick keeps your dotfiles up to date using only git and bash. It can handle many dotfile repositories at once, so you can beef up your own dotfiles with bigger projects like oh-my-zsh and still keep everything organized.
Ming Chow's website
Persistence gem for Ruby objects using the Data Mapper pattern - jgaskins/perpetuity
Skeleton of a rails app
Tim Robertson has a website.
gem for http
Honeybadger provides exception and uptime monitoring to keep your web apps error-free.
For the past few months, I've become more and more disillusioned by the current state of Ruby's scripting support. Sure, we have optparse, and a gamut of other solutions, but there's no full-stack package for writing robust binaries. Enter thor. The idea behind thor initially came from my work on
Ruby on Rails API documentation tool. Contribute to Apipie/apipie-rails development by creating an account on GitHub.
In Fearless Refactoring: Rails controllers I'll teach how to improve your Rails controllers in a quick and safe way. This is step-by-step guide so you won't feel lost. Every step is described in every detail, with code changes. All of that, so that you can safely refactor your codebase, even without a full test coverage.
Tsung demo site
A ruby profiler. See https://ruby-prof.github.io for more information. - ruby-prof/ruby-prof
A cheat sheet for the keyboard shortcuts in the Atom text editor by GitHub
Data modeling, versioning and CRUD made easy
RunKit notebooks are interactive javascript playgrounds connected to a complete node environment right in your browser. Every npm module pre-installed.
An SQL-friendly ORM for Node.js. Contribute to Vincit/objection.js development by creating an account on GitHub.
I have some simple shell scripting tasks that I want to do For example: Selecting a file in the working directory from a list of the files matching some regular expression. I know that I can d...
Asynchronous, non-blocking SQLite3 bindings for Node.js - mapbox/node-sqlite3
RunKit notebooks are interactive javascript playgrounds connected to a complete node environment right in your browser. Every npm module pre-installed.
AppNeta's award-winning suite of network monitoring tools allow unparalleled SaaS-based application end-user performance monitoring for 100% delivery confidence. Request a free demo!
Computer-generated poetry . Contribute to RyanMarcus/EdgarAllanPoetry development by creating an account on GitHub.
A book series on JavaScript. @YDKJS on twitter. Contribute to getify/You-Dont-Know-JS development by creating an account on GitHub.
RunKit notebooks are interactive javascript playgrounds connected to a complete node environment right in your browser. Every npm module pre-installed.
Get data from Google Spreadsheet in a matter of seconds. You can copy the HTML Snippet and paste it into your website without any code. If you are developer, you can use one of many languages or frameworks Sheetsu supports like Ruby, Node, React, JavaScript Python, PHP, JQuery, C#, Swift, or R.
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!
How to build an application with Sinatra, Rack and ActiveRecord?
Powtoon gives you everything you need to easily make professional videos and presentations that your clients, colleagues, and friends will love! No design or tech skills are necessary — it’s free, easy, and awesome!
A compiled language with Ruby like syntax and type inference
If you’re a ruby fan person like me, you will love just reading these!
The Internet on one page. Successor of Popurls, the mother of news aggregators. By @thomas
Learn how Animations works in CSS.
Write and run Java code using our Java online compiler & interpreter. You can build, share, and host applications right from your browser!
A collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output. - microsoft/TypeScript
A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js - bookshelf/bookshelf
Open source question and answer forum written in Python and Django
This is wxPython tutorial. In this tutorial, we will learn the basics of GUI programming in wxPython.
Newly updated for Rails 6, the Ruby on Rails Tutorial book and screencast series teach you how to develop and deploy real, industrial-strength web applications with Ruby on Rails, the open-source web framework that powers top websites such as GitHub, Hulu, Shopify, and Airbnb. The Ruby on Rails Tutorial book is available for purchase as an ebook (PDF, EPUB, and MOBI formats). The companion screencast series includes 14 individual lessons, one for each chapter of the Ruby on Rails Tutorial book.
Explore and compare open source Ruby libraries
Web Design and Development Online Magazine
JRuby is a high performance, stable, fully threaded Java implementation of the Ruby programming language.
Stack Overflow | The World’s Largest Online Community for Developers
Ruby on Rails related news, tips and reviews.
Ruby-based regular expression editor/tester
Breaking news and analysis from the U.S. and around the world at WSJ.com. Politics, Economics, Markets, Life & Arts, and in-depth reporting.
…the name still sucks, tho
:zap: From finding text to search and replace, from sorting to beautifying text and more :art: - learnbyexample/Command-line-text-processing
:zap: From finding text to search and replace, from sorting to beautifying text and more :art: - learnbyexample/Command-line-text-processing
Not sure if it's any good. I was just looking for a Ruby counterpart to Pandas. So far I found this and the other link I posted.
Regular expression visualizer using railroad diagrams
Esoteric details about time in ruby!
Generally useful cli tools
Nice overview of choices of IDEs for Python and data science
Good ruby rails and other tips
Classic quote about OO vs. functional
This Christmas, Ruby 2.6 will be released with support for a new syntax denoting an infinite range!
This resource contains a collection of Python best practices and Python tips provided by our Toptal network members.
The History of Processing by Casey Reas and Ben Fry
Web performance is an extremely important metric in the digital world. Learn tools and tricks for its improvement and enjoy both better Rails-related and General Web performance.
Ruby comes distributed with a vast standard library. We only use a fraction of it, usually. Everyone knows date, set, json, maybe even csv. But there are man...
Wharel is a tiny little gem that uses the empty room pattern to make Arel queries easier to build.
rubex - A Ruby-like language for writing Ruby C extensions. - SciRuby/rubex
Active Job BasicsThis guide provides you with all you need to get started in creating, enqueuing and executing background jobs.After reading this guide, you will know: How to create jobs. How to enqueue jobs. How to run jobs in the background. How to send emails from your application asynchronously.
Executing background jobs is quite a common feature in many of the web applications. Switching between different background processing frameworks used to be ...
SASS and SCSS are practically the same thing, but this article explains the difference in a little more detail
One question that I get asked most often is what editor, theme and extensions am I using for my editor. In this episode, we take a look at the different extensions and settings that I use.
The Rails documentation for remote: true is great at explaining how to add the helper to your views. It does not, however, fully explain…
Keyword arguments are one of those Python features that often seems a little odd for folks moving to Python from many other programming languages. It …
Hello, I'm currently hiring and most people sharing their GitHubs have very poorly maintained profile and projects so I decided to write a little...
Quirky cli tool for task management. Some people want everything in the shell.
This is very interesting and cool way to use ruby for fancy cli scripts, like people often use AWK. I haven’t quite figured out how to use it but it’s cool!
I’m not personally an rspec fan, but lots of people are
A really nice tutorial explaining how to write a gui app on Linux using Ruby.
Excellent advanced info on crating dB indexes, looking at query plans to understand performance.
A gem containing functionality to represent, import and export spreadsheets
Fun list of papers, reports, and dissertations related to ruby from academia.
This has just been made free! I think these tutorials will contain some gems.
Answering the perennial question, once again, in the positive.
I’m trying to get smart about Kalman filters. This is a great resource
Getting mobiles to display notifications is a tricky business. Especially because there are several and each one is different. This gem tries to solve this.
An interesting variation on how to represent a many to many relationship in rails.
Really interesting advanced thoughts about rails ActiveRecord validations.
An excellent review of the various issues you have to consider when deciding the put your rails app into production.
Write what look like rich applications while writing very little code. Looks interesting but I’ve not tried it
Title says it all.
This looks amazing, for teaching.
Always looking for the best possible rub tools? Here you go!
Posted in r/ruby by u/drewolson • 27 points and 8 comments
Excellent detailed article about benchmarking a rails app and then introducing a tool that replaces malloc and purports to provide a 2x improvement
Always can learn how this works better!
A language for humans and computers
Rubocop is a great tool for Ruby programmers
An interesting google tool for checking a web sites performance and other behavior.
Under the right circumstances this is an amazingly useful tool
Looks really cool. ML auto completion for any programming language. Must try.
Nice summary of good coding practices. Ruby specific.
Nice review of various programming language s including crystal
Looks interesting
A really great list of services to integrate into your application. A bunch that I didn’t know about!
Rails Actioncable is really complicated. Here's another link
Rails Actioncable is complicated. Here are a series of links about it.
Rails Actioncable is complicated. Here are a series of links about it.
Another actioncable resource
Useful faker for rest apis.
A beautiful book about numpy.
Interesting Rails abstract classes feature
Big news! If you aren’t using the Fish shell yet, what are you waiting for? It’s practically 100% compatible with bash and is 190x better in certain areas!
Great, if complete and accurate
See previous post. I admit I haven’t built super complicated sites, but I always seem to avoid extra languages or preprocessing if at all possible.
Slightly apologetic rundown of Why Ruby
Never new this existed. Looks interesting.
Funny and true.
A nice little tip for handling arguments in Ruby
It’s always welcome to see what the latest most useful gems are.
Nice review of some more advanced ruby features.
This site shows off research papers which include the code to run. Very nice!
Interesting esoteric info about ruby, structs, hashes and more!
Looks very useful!
Wow, this looks just like Sinatra. If you want to build a quick web server this is the tool for you!
Heroku and Github free offers
Say I've got: get '/' do $random = Random.rand() response.body = $random end If I have thousands of requests per second coming to /, will the $random be shared and 'leak' outside the context or...
Useful things to remember about using sessions in Sinatra
A tool to allow me to launch multiple apps locally to get a new SOA service going for debugging.
Great overview of how Redis works, all the types and concepts
Kind of interesting about security, hacking, protocols and ssh
An amazing set of cheat sheets from a prolific developer in the philippines
A super simple automatic open source doc generator. Except I dont quite understand it. I have a feeling once I try it it will be obvious
You know I’m into scalability right now. Here’s a short article with lots of the basics.
Two part series on using queues to communicate between services.
Quite good explanation of thread safety in Ruby apps
Another interesting article about formatting and plugins
Another crazy useful tool for programmers.
If you’re getting a web api to work, this seems like a great alternative,
Interesting account of all the ways that SQL sucks and of course a proposed fix!
The new rails guide on multi databases in activerecord
Excellent performance tips
Interesting description of how a public library or gem can be taken over, and modified to create an all powerful backdoor.
This is an AMAZING collection of graphs. Great to have a ruby binding. Haven’t tried it yet but looks very worth while.
This one is pretty eclectic but if you find yourself writing a script in ruby or python or bash and you need to respond in the logic to what's going on in git, then you will find some very useful tips here.
This is very cool and useful too!
Good to know!
Everything old is new again
Nice loggers
Yes, but, do we need another shell? Do we all have to learn Rust? What about a shell framework that will embed any language?
very interesting way to embed C in ruby, if you’re into that kind of thing!
Another very useful text processing tool for text based data files.
A kind of crazy cool dashboard for all kinds of info all in text suitable for display in. Terminal window.
This looks super useful if you have very large data sets. The Unix shell is surprisingly fast and able to create parallel flows.
Command line cheat sheets. Not sure but could be useful.
You may or may not agree with these formatting ideas.
Really nice taxonomy of database types in history.
Super useful new gem that lets you get rails like auto loading in any ruby program
Surprising and useful way to think about correct SQL statements.
Super useful modern rundown of low hanging fruit performance tips for rails.
Very useful tool for ruby programmers.
Very nice python interface to control a robot that hides a lot of the complexity (at the cost of flexibility of course)
This is a useful and detailed guide.
A comprehensive package of C++ robotics related code. Another resource, not sure how well it works or how usable it is.
Useful little details. Ruby is better than python. There I said it.
A classic - the books and the guy
A great analysis about a question that I had not thought of but is pretty interesting now that you mention it!
Wonderful and instructive collection of python snippets for fun and profit.
There’s so much debate about this. This article has helpful practical advice m
Subreddit dedicated to the news and discussions about the creation and use of technology and its surrounding issues.
Looks like this might be useful: "Get an overview of a directory, even a big one"
Amazing pretty visualizations in Python based on vega-lite platform
One of many instructions for getting Docker to run a ROS environment on MacOS.
If you are coming to Ruby from another programming language there are a lot of good tips here!
A fantastic efficient way to review most of the top methods and functions in python.
DRY. Everything in moderation. On rules and knowing when to break them.
Very nice detailed set of guidelines for a scalable node backend
I don’t think I agree. But does contain some good caveats. Reminds me of the old “Goto considered harmful”.
It’s always hard to remember all the different options that activerecord offers for manipulating data.
This is an amazing tool when you need it. Do queries, merges, filters on json files. You only need it once or twice a year but when you need it, it's a life saver!
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.
Faster than Sinatra? By that much? Hard to believe.
There are many of these building blocks. Use this to mock a web service that your system depends on. That way you can test your system without incurring the costs (in money and time) of calling the service.
Well I always look at ProgrammableWeb.com but it's becoming more and more cluttered with ads and whatnot. Also there's so much in it, I think it's totally uncharted.
We all live in the shell. (Yes, if you're not geekish that sentence makes no sense). And you can always learn a little more and some special trick to make your day. Here's another reference.
Another good article about Python modularity
Linux/OSX/FreeBSD resource monitor. Contribute to aristocratos/bashtop development by creating an account on GitHub.
Friendly, Jupyter-notebook-ish neural nets
Very nice and free visualization tool in python.
A pretty nice concept for patterns in python.
Very useful if you are working and developing for the Rasbery Pi! My go to instructions.
very useful gem to send all kinds of notification from Rails. Haven't tested it myself.
Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source. - mengshukeji/Luckysheet
Always nice to see alternatives to devise but this is just as complicated. I haven’t used it but my question is how much of the user facing UI does it provide and how do you customize it?
A great new tool!
This looks like an amazing tool. I plan to try it asap!
Great, I think I agree with all of it. We should all be able to live with these!
One liners are always fun to learn.
Looks like another wonderful rails deployment solution. Definitely will check this out as an alternative to Heroku.
Very cool and clever visual programming.
For robot reasons I have been diving into linear algebra and have done a pretty thorough search of resources for this. This is one of the pretty simple summaries.
Ive been doing a deep dive on Kalman Filters. Here are one of the best explanations. Beware it's hard.
Useful, but not necessarily universally agreed-upon, guides!
Some ideas on naming. Doesn’t take into account conventions or idioms from specific languages.
A fairly amazing service api if it works. Check it out and let us know!
Groan but ok, funny
From the looks of it this is a super handy library doing charts without needing JavaScript. Does it work? Don’t know yet.
A command-line tool and library for generating regular expressions from user-provided test cases - pemistahl/grex
15 Python Packages You Probably Don’t Know Exits
Sweet collection of very useful python packages
tags: package algorithms python howto
Very useful python tips.
Here’s what the true modern stack looks for real products (rather than toys!)
7 Deadly Sins Python Developers Do
Another set of very useful Python tips and tricks.
tags: howto techniques tricks python
4 Advanced Tricks With Python Functions You Might Not Know
One cam never have too many of these!
tags: tricks python techniques howto
Very cool and clever visual programming.
Looks like another wonderful rails deployment solution. Definitely will check this out as an alternative to Heroku.
tags: howto rails Heroku deployment kubernetes
Rodauth: A Refreshing Authentication Solution for Ruby | Janko’s Blog
Always nice to see alternatives to devise but this is just as complicated. I haven’t used it but my question is how much of the user facing UI does it provide and how do you customize it?
tags: howto roda authentication ruby
Ruby introduces find pattern in pattern matching | Saeloun Blog
...
Noticed Gem: Notifications for Ruby on Rails applications
very useful gem to send all kinds of notification from Rails. Haven’t tested it myself.
tags: rails howto notification gems tools
PEP 622 — Structural Pattern Matching | Python.org
A pretty nice concept for patterns in python.
What Are Duck Typing and Monkey Patching in Python?
Good for ruby programmers who are learning python
Welcome to Streamlit — Streamlit 0.62.1 documentation
Very nice and free visualization tool in python.
tags: howto visualization python graphs
datas-frame – Modern Pandas (Part 2): Method Chaining
Ive been trying this style and while it looks cool I am not sure it’s more productive. Because debugging is harder as you can’t examine intermediate results.
tags: functional pandas method chaining howto
The Unreasonable Effectiveness of Method Chaining in Pandas
Good article exploring and explaining the functional or fluent style of design in python.
tags: functional pandas style howto
The Definitive Guide to Python import Statements | Chris Yeh
Another good article about Python modularity
tags: python import howto modularity
Cleaning and Prepping Data with Python for Data Science — Best Practices and Helpful Packages
Tour de force explanation of techniques for data cleaning in python data science
tags: howto python cleaning data datascience
Library for stubbing and setting expectations on HTTP requests in Ruby.
There are many of these building blocks. Use this to mock a web service that your system depends on. That way you can test your system without incurring the costs (in money and time) of calling the service.
Ruby on Rails Mistakes that could kill Your Production Servers
Specific good advice on rails performance and scale.
tags: servers ruby on rails howto ruby production
How to write Javascript in Rails 6 | Webpacker, Yarn and Sprockets
A good introduction to the very confusing combination of JavaScript, yarn, css, etc in rails 6. Hopefully they will clean this up in rails 7.
tags: javascript yarn rails
Gemifying Your Style Guide to DRY Your CSS – Ruby on Rails Upgrades
A very nice technique to build a gem with all your css and js in one place.
tags: ruby on rails guide rails dry style css ruby howto
...
Dicts are now ordered, get used to it
— Read on softwaremaniacs.org/blog/2020/02/05/dicts-ordered/en/
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.
tags: programming rails activerecord
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
If you are coming to Ruby from another programming language there are a lot of good tips here!
Altair: Declarative Visualization in Python
Amazing pretty visualizations in Python based on vega-lite platform
tags: python jupyter visualization vega-lite
More handy shortcuts and one liners in everyday use
tags: programming howto python
I always thought those trigger callbacks in activerecord were a problem.
How to Write Fast Code in Ruby on Rails – Shopify Engineering
These people have one of the largest rails apps. They know what they are talking about!
tags: Shopify rails howto tips performance
Super useful modern rundown of low hanging fruit performance tips for rails.
tags: performance rails tips ruby
Advanced multi-db techniques in Rails 6
Great new features in rails 6 — support of multi database models
tags: rails techniques database scalability multi
Great list. One I had I idea existed is warn_indent. Hello Python?
A Complete Guide to the Ruby Programming World – Learn Worthy
A nice comprehensive review of the world of the ruby programming language, my personal favorite right now.
tags: programming guide ruby overview
Everything old is new again
https://fili.pp.ru/leaky-constants.html
Good to know!
Nice loggers
tags: github logging structured terminal
Goodbye ActiveRecord! – Inside Aircall – Medium
Always wanted to learn more about this new Orm
tags: rom activerecord gems libraries orm
This is very cool and useful too!
strong_password v0.0.7 rubygem hijacked
Interesting description of how a public library or gem can be taken over, and modified to create an all powerful backdoor.
tags: password hacking ruby security gems attack
...
How to Schedule Cron Jobs in Ruby With the Whenever Gem
Useful gem to have in your toolbox.
Rails 6: B-Sides and Rarities — Martian Chronicles
Another nice trip through upgrades to Rails for 6.0
Microsoft Launches Bosque: An Open Source Programming Language
Interesting to see a brand new language come out of research.
Joe Armstrong is a famous person in Erlang circles. He passes away yesterday.
tags: OO oop object oriented
How do I know whether my Rails app is thread-safe or not?
Quite good explanation of thread safety in Ruby apps
tags: ruby threads rails threadsafe
Architecting Ruby on Rails Apps as Microservices | Codeship | via @codeship
Great article about Service Oriented Architectures
tags: SOA rails scale services architecture
Understanding a fundamental Ruby abstraction for concurrency | via @codeship
Another great re...
Dealing with Ruby Threads is tricky. And add to that understanding the GIL, and thread unsafeness and its pretty subtle!
tags: concurrency ruby tips threads threadsafe
Need faster code? Try Multithreading – Hacker Noon
More nice information about multithreading and concurrency in Ruby
tags: ...
How to scale Ruby on Rails with Redis | Opensource.com
Another nice tutorial on Caching with Redis and Rails
tags: redis caching rails howto
The new changelog.com setup for 2019 | News and podcasts for developers | Changelog
tags: scaling architecture ...
A tool to allow me to launch multiple apps locally to get a new SOA service going for debugging.
tags: launching ruby soa servivces
How to Enable Sessions with Sinatra | getLaura
Useful things to remember about using sessions in Sinatra
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: ...
40 Best Ruby Gems We Can’t Live Without
It’s always welcome to see what the latest most useful gems are.
tags: tips ruby recommendations gems
Ruby tricks for junior developers | Drivy Engineering
Nice review of some more advanced ruby features.
Using Ruby in 2019 – Jason Charnes
Slightly apologetic rundown of Why Ruby
3 ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present
Every Rails or ActiveRecord Dev should read this!
tags: rails activerecord mistakes
Never new ...
Bindings and Lexical Scope in Ruby
Ruby is such an elegant language!
Great, if complete and accurate
...
Good description of how to use fibers in ruby.
tags: fibers processes concurrency
Nice summary of good coding practices. Ruby specific.
...
Rubocop is a great tool for Ruby programmers
tags: rubocop
WebSockets – A Conceptual Deep-Dive
Websockets is important to understand if you’re going to be a full stack Dev.
tags: Websockets tutorial
Always can learn how this works better!
Crystal is not Ruby Pt. 2 – Runtime Revolution
Ive been playing around a lot with Crystal. If you’re a ruby person you will really like this for it’s compiled binaries. The typing is a big of a mixed bag but overall I think its helpful.
https://link.medium.com/0oNpyGJ4gR
Excellent detailed article about benchmarking a rails app and then introducing a tool that replaces malloc and purports to provide a 2x improvement
tags: memory optimization rails performance ruby
The Most Important Non-Programming Skills for Programmers
Decent summary. A bit obvious though. But a good read.
tags: skills programmers
This looks like a super useful tool!
Why Crystal is the most promising programming language of 2018
I am really fascinated with this language. Ruby-like syntax and semantics, but fully compiled.
tags: crystal programming ruby compiled
Ruby goes Serverless! – Apache OpenWhisk adds native support for Ruby
Title says it all.
Web Architecture 101 – VideoBlocks Product & Engineering
Looks like a great brief tutorial on how the web works.
tags: web ...
Creating Powerful Command Line Tools in Ruby – via @codeship | via @codeship
Another great article about creating a well behaved cli
Creating Configuration Objects in Ruby – via @codeship | via @codeship
Ideas on how to write code to store configuration data from a ruby program.
tags: creating ...
Is your Rails app ready for Production? | AkitaOnRails.com
An excellent review of the various issues you have to consider when deciding the put your rails app into production.
tags: rails production deploy
Notes to Myself on Software Engineering – Member Feature Stories – Medium
A collection of sage advice about software engineering
tags: ...
An interesting variation on how to represent a many to many relationship in rails.
tags: activerecord manytomany join rails
Getting mobiles to display notifications is a tricky business. Especially because there are several and each one is different. This gem tries to solve this.
tags: ruby ...
10 practices for writing readable code
This article almost perfectly corresponds to what I believe about coding style
tags: code practices coding style cleancode
...
FREE Tutorials on React.js, Ruby on Rails, JavaScript
This has just been made free! I think these tutorials will contain some gems.
tags: ruby free tutorials ruby on rails
The State of Agile Software in 2018
Fowler discusses real and so call...
A gem containing functionality to represent, import and export spreadsheets
tags: rails ruby Spreadsheets
Excellent advanced info on crating dB indexes, looking at query plans to understand performance.
tags: ...
iridakos – Creating a Linux Desktop application with Ruby
A really nice tutorial explaining how to write a gui app on Linux using Ruby.
tags: creating linux desktop ruby glade gtk+
Git commands to keep a fork up to date
Forking with git, and just c...
How to configure RSpec in Ruby on Rails
I’m not personally an rspec fan, but lots of people are
tags: ruby ruby on rails rspec configure
Using Pundit for authorization in Rails – recipes and best practices
Authorization is the management of who is allowed to do what (vs. authentication which is accurate identification of who ...
Python Tuples and Tuple Methods | Codementor
Python doesn’t have arrays… but it does have lists and tuples. Actually lists are arrays. And tuples are … different … and don’t seem that useful. But this article explains it all.
Essential RubyOnRails patterns — part 4: Form Objects
tags: ruby formobjects Rails forms
[Thread by @cyberomin: “It’s always fun when I speak to founders and potential founders and they are quick to tell me how they want to use AI/ML to improve customer […]”](https://threadreaderapp.com/thread/987602838594445312.html?utm_source=hackernewsletter&utm_medium=email&utm_term=f...
Write tests. Not too many. Mostly integration. – kentcdodds
Great subtitle. Most readers won’t get it!
Stimulus Handbook: Introduction
Interesting new lightweight JavaScript framework
tags: ruby gem stimulus ruby on rails
...
Top 5 Python IDEs For Data Science (article) – DataCamp
Nice overview of choices of IDEs for Python and data science
Generally useful cli tools
Build a Text Classification Program: An NLP Tutorial
A little difficult but one can follow and try this out.
tags: classification text tutorial nlp
...
TechRabbit: Makara: a read-write splitting adapter for Active Record
An alternative to Octopus as a solution to shard databases
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

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
Check out this article that shows off how visualizations can help you understand how algorithms work. It’s an amazing piece of work: Creatively, he figured out how to illustrate an algorithm so I can better understand how it works; Technically, the code that implements these visualizations is itself very clever and elegant; and Aesthetically, the overall effect on the page itself is quite beautiful. I am jealous!
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...
Check out this really interesting article plus lovely animations. I have to go find out how it actually implements the animations. Even though the examples are in Python, what is actually embedded into the page? We shall see!
Visualizing Alghorithms
Really good article, albeit quite geeky, about concurrency in general, and using Go-like primitives in Ruby.
Forget Dropbox, I just heard that Box.com gives you 50gig for free upon signup. I just signed up and it seems like I got it. Pretty cool:
Box | Secure content-sharing that users and IT love and adopt:
Box lets you store all of your content online, so you can access, manage and share it from anywhere. Integrate Box with Google Apps and Salesforce and access Box on mobile devices. Learn More
But I wonder: how can they do it? Is storage so cheap now? Yahoo gives 100Gig free with Flickr.com.
And I also wonder, who needs 50gig free for non commercial use on Box.com? My first idea was to fill it up with movies, tv shows and so on.
But then I got to...
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.
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.
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.
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!
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.
[youtube http://www.youtube.com/watch?v=dU1xS07N-FA&w=560&h=315]
I was a volunteer for the Democratic Committee in Arlington Mass. They have an impressive operation, just like what you’ve heard. For example, the systems they used to deploy us volunteers.
I walked in the campaign office, untrained and unschooled. Within minutes I was assigned my very own ‘turf’. What is a turf? A turf is a neighborhood of about two to four streets assigned to me and only me.
I was handed a clipboard with a sheaf of sheets describing my turf. The clipboard included:
A map of a nearby neighborhood, with a series of dots on certain, but not all houses A list of addresses in street order, first one side and then the other With each address a list of ...
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: ...
Code T-Shirt, © Pito Salas, 2012. Let me know if you want to order one!

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...
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.
Great review article:
“In this article I digested a number of MapReduce patterns and algorithms to give a systematic view of the different techniques that can be found in the web or scientific articles. Several practical case studies are also provided. All descriptions and code snippets use the standard Hadoopâs MapReduce model with Mappers, Reduces, Combiners, Partitioners, and sorting. This framework is depicted in the figure below.” (from Highly Scalable)
Worth reading if you are interested in how Hadoop and friends might apply to the problems that you are trying to solve: “MapReduce Patterns, Algorithms, and Use Cases”
Here’s an interesting article in “The Opinionator” of the New York Times about blogging, scholarly writing and the tension between the two. He says:
“… The digital humanities, it is claimed, can help alter that âmonstrous terrainâ in at least two ways. The first is to open up the conversation to the public whose support the traditional humanities has lost. If anyone and everyone can join in, if the invitation of open access is widely accepted, appreciation of what humanists do will grow beyond the confines of the university. Familiarity will breed not contempt, but fellowship. â...
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 about how Kh...
Just one phrase that jumped out of the new missive from Zuck about privacy:
“As a matter of fact, privacy is so deeply embedded in all of the development we do that every day tens of thousands of servers worth of computational resources are consumed checking to make sure that on any webpage we serve, that you have access to see each of the sometimes hundreds or even thousands of individual pieces of information that come together to form a Facebook page.” (fromOur Commitment to the Facebook Community)
When I tell (non computer) people that it takes hundreds or th...
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...
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...
An interesting article about this impending crisis. Although it’s impending, I had never heard about before, despite the claim that “This impending “flash crisis” is well known in system circles. It’s almost like a mini Y2K.” Ok, tell me more…
The core does make a great point:
“What happens when you blow up the “slow disk” assumption is that your entire software stack begins to crumble. When the cushion provided by those 10 ms of seek time goes away, CPU becomes your bottleneck. You have to start rethinking a lot of design choices.” (from Impending Flash Crisis)
Interesting…
Apparently (not sure why yet) on Android, sound effects files using the OGG format work better than those using wav or mp3. It might be an AndEngine thing, I am not sure. Anyway, here’s my result of half hour googling and experimenting for a reliable way to convert the files. I tried a bunch of things, and I finally settled on MediaHuman AudioConverter. Use it. It really works and is nice and simple.
I read about Quirky.com in the paper the other day. From my perusal it’s a site where people (you and me) can submit ideas for manufactured products.
For example, let’s say I have an idea for a dog leash with a built in flashlight. Clever eh? Well, you can describe it to the best of your ability and submit it to the Quirky.com site.
Ideas are socially curated (translation: visitors to the site can vote on how much they like the product.) Once they reach a certain threshold then the Quirky staff analyzes the idea from a design, marketing, manufacturing perspective, ...
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!
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.
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.
We just got back from the monthly meeting of “Boston Postmortem“.
Huh, what is that? Well as a result of my teaching at Brandeis this summer – Mobile and Game Software Development – I have developed a greater appreciation for the gaming world. When we had Ed Baraf of Blue Fang games speak to our class, among the many things he taught us was that there’s this great meetup in Waltham called the Boston Postmortem.
It was very well attended and the crowd sounded and felt like a community that knew each other and was pretty tight which ma...
This is a very unusual Android app that I came across. It looks like they are just starting so it’s a bit crude, but highly intriguing…
“HappyTrack is an Android Application that gives you the chance to express how are you feeling and why. Every time you update your status this app will keep track of the time, place and reasons about your feelings. But that’s not all!” (from HappyTrack)
What do you think?
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...
Fun article about Ben Hescott who has some unique – and impressive – approaches to teaching an abstract topic:
Q. Did you experience an “aha’’ teaching moment?
A. My first time teaching, I was using PowerPoint slides. One student kept saying, “I don’t see it.’’ So I turned off the computer, grabbed a piece of chalk, and went through the material slowly on the blackboard, without notes. Afterward, the kid said, “You’re a really good teacher when you’re not using PowerPoint.’’ That changed everything.” (from The Boston Globe)
You have to read the whole interview!
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...
The U.S. government is helping create parallel internetsand cell phone networks in countries where the government is suppressing free communications between their citizens. The idea makes sense and is, “pretty cool”: “The effort includes secretive projects to create independent cellphone networks inside foreign countries, as well as one operation out of a spy novel in a fifth-floor shop on L Street in Washington, where a group of young entrepreneurs who look as if they could be in a garage band are fitting deceptively innocent-looking hardware into a prototype “Internet in a suitcase.” (from The New York Times)
Read more about it in the New York Times: US Underwrites Detour Around Sensors.
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.
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’...
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.
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...
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 ...
An interesting article about how to think about designing Artificial Intelligence for playing poker. It’s high level but gives you a good feel about how this writer went about the design. You also learn the basics of Poker at the same time:
“It is very important in this type of project, for any AI project really, to fully understand the rules of the game and the tactics typically used to win. So when I worked on poker I spent a fair amount of time reading the best books and playing the game, both against existing AI and real humans of various levels of experience.” (from Poker AI: A Starting Point)
And here’s a follow up article on the same topic: “Aces High: Numerical Techniques in Poker AI“
Over the last several months I’ve been following a series of blog postings by Jamis Buckon the esoteric and quirky topic of writing programs to design mazes.
For reasons that are not clear, Jamis developed an obsession with mazes and has collected a series of articles detailing many different algorithms, their tradeoffs and concepts and writing them up beautifully.
Today in his final installment he summarized the project:
Over the last six weeks I documented eleven different maze generation algorithms. It’s been a blast. I’ve had so much fun researching and implementing these! It’s bee...
This article is called “Fact and Folklore In Software Engineering” and while it is about that, the part that was more interesting to me was the first section talking about Scientific Discourse:
“This article is about why some “facts” refuse to die, and about how to avoid being fooled by opinion disguised as scientific “fact”. We start, therefore, with some observations on science and facts.” (from “Fact and Folklore In Software Engineering”)
Here he goes on to describe “The messy workings of scientific discourse”. It’s clarifying explanation of a process that we understand intuitively but actually ...
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)
I recommend this article, “Fatboy in A Lean World”, (by Gordon Guthrie) if you are interested in ‘lean’ as in Lean Startups, Lean Production.
About why lean production is becoming so hot among us software entrepreneurs:
The great transformation of the industry over the last 10 years has been the availability of already-written (and battle tested) software which has slashed the size of a team that can build a functioning product and the crash in price of hardware. (fromFatboy in a Lean World)
About Y-Combinator’s...
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.
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:
“Rest from scratch” with Rails and Restfulie – part 1 from Caelum on Vimeo.
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."
RubyConf 2010 was excellent. It was my first and probably not my last. Some general thoughts and then a master list of links (the real meat.)
Unlike most all ‘business’ type conferences and talks I have gone to, the RubyConf style of presentation (and perhaps the Rails or Ruby community — I don’t know where it stops) is beautifully minimalist. Very few words on slides, large and impactful photographs. Is it because no one uses PowerPoint and few even use Keynote? I don’t know. But there were no text heavy, bullet heavy word slides. And also, lots and lots of code (that part is definitely a geek thing.)
Here is a loosely organized set of links to the things that hit me most at RubyConf this...
The problem with conferences is knowing what session to go to, right? Check out this talk called “ZOMG WHY IS MY CODE SO SLOW? Aaron Patterson. It’s really excellent. It has many specific pointers that I will be able to use as soon as I get back.
(Yes, in case you wonder: ZOMG)
Odd thing happened in a talk at RubyConf. Speaker asks all attendees who are using Windows to raise their hands. Looked to me like about 3% of folks here are on Windows. Now its a very biased audience but still an interesting number!
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 ...
This is a weird development. Java is a super well established language, why would Apple decide to stop developing it: “Apple’s announcement that they would be ceasing future development of their version of Java for the Mac has generated concern amongst Java developers.” (from: Steve Jobs Comments on Apple’s Java Discontinuation – Mac Rumors.)
N.B. Apple is not saying they are ceasing support of Java, but development of Java. I guess on other platforms (Windows etc.) the Java support and the Java cod...
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...
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
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.
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...
I am not sure exactly what this article about Trust means exactly, but it’s thought provoking, don’t you think? “Trust is present or it is absent. Grab a nerd and he’ll tell you that even the absence of trust is a measure of trust and that particular measure is zero. When trust is non-zero (which is better, believe me) it is based on one of two methodologies — empiricism or transparency (the other T-word).” (from I, Cringely)
If you’ve been in computing for any time you may have been hit over the head by the slogan “Security by Obscurity is No Security”. As I have understood the argument it has a few components:
If your security relies on secret tricks, trap doors, and a hope that no one will be able to find out or guess the work around, then you’re fooling yourself. Sooner or later someone will be able to guess the trick, see the code, quit your company and take the secret with them. Allowing your code and methods to be inspected and analyzed by the public (bad guys included) is the only way to learn about weaknesses that you would be blind to and give you a chance to close them. The other slogan which I will t...
The article “Reflections on Trusting Trust” is often mentioned in conversation and cited. I finally tracked down and read this classic, and it is indeed a classic of computer science. And typically for classics, it’s short, clear, readable and impactful: “The moral is obvious. You can’t trust code that you did not totally create yourself. (Especially code from companies that employ peoplelike me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect.” (from Reflections on Trusting Trust)
I get asked from time to time to recommend ruby, rails, and other developers in the Boston area, either for full time or part time gigs. I’m developing a list of good local job resources – started so far with the help of pal Brian D:
Dave Beisel‘s WebInno Job Board:http://jobs.webinnovatorsgroup.com
Boston Ruby group’s job board:http://bostonrb.org/jobs
Tom Summit‘s Genotrope: http://www.genotrope.com/genotrope/HitLists.html
Working With Rails national job board:http://workingwithrails.com/browse/jobs/recent

I’ve been working quite a bit on the Open Source Digital Voting foundation project over the last 9 months or so. It’s really weird but I’ve turned myself into a mini-expert on how elections are organized and run here in the USA. It’s fascinating and way complicated. OSDV is a non-profit organization dedicated to developing a suite of election (as in Democracy) hardware and software.
The umbrella name for that project is TrustTheVote: an open source project, which will work closely with election officials around the country to learn requirements and then develop software which in turn will be offered free of charge to those who want to de...
I’ve been part of the core tech team of the TrustTheVote project and recently have been blogging over there too. You can find today’s post about Open Source e-Voting here. 
In my work with the Open Source Digital Voting foundation, and TrustTheVote, I just learned two new words, for your educational pleasure: “COTS” – Commercial off the shelf “COTS” – Government off the shelf
Ok, not all the posts here are gems, but it is also my personal memory bank 🙂

Follow along as I develop the course: Brandeis University Web App Dev, Mobile App Dev and Incubator I’m fortunate to have the opportunity to co-teach 3 courses next year at Brandeis University. It’s something that I have wanted to do for a long time now and I am looking forward to it. As an experiment, I thought I would publish the course notes as I am developing them and perhaps get some feedback, suggestions or even volunteer guest speakers.
Here are the blurbs:
Web Application Development: *An introduction to web programming that covers t...
If you get it, you may want to get it: Create UML Diagrams from the command line 
Sunlight Foundation is a very cool organization that I’ve been close to. They are involved with many efforts to further government transparency and accountability, often using technology, but not only. Recently they ran their second competition looking for interesting and useful applications and tools to be built using or leveraging data published by government.
It’s a clever model: offer $10,000 or so to a winner who creates and submits the most interesting entry. Give applicants encouragement, publicity and assistance. I have to believe that this creates a groundswell of energy and hacking that furthers the foundations goals and uses the prize money in a highly leveraged way.
*““By setti...
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
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 ...
As you know from a previous post, I’ve been working on a “domain specific language” for election ballot processing. In my search for information I got a pointer to a book called: Ruby Best Practices. It’s not out yet, but it looks like it will be excellent. You can get a sample chapter (which contained lots of information relevant to my domain specific language work) here.
In it you will “[… snip] look at a ...
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...
Editors Note (that’s me, Pito): I’ve decided to change the name of this thing to “Decentralized Data Discovery – DDD” because I learned from more than one person that calling it Data RSS was misleading and confusing. I need to go back and update the papers and blog posts. I’ve just finished writing part 3 of my series about DataRSS. Part 1 gives the background and justification for the concept, and Part 2 worked through a semi-believable scenario where having DataRSS would be a good thing.
In part 3 I try to get into more technical detail. I hope that you take the time to read it beca...
I recently saw the movie Hacking Democracy. It’s absolutely fascinating and basic background for anyone interested in election reform. In it you learn about some of the heroes of election reform, including Harri Hursti who demonstrates in a pretty dramatic manner some of the weaknesses of commonly used election technology. This is from the wikipedia article:
“Seven participants made out their ballots using the opti-scan paper sheets (Hursti remaining outside the test area). Sancho then went to Hursti and gave him a ballot which Hursti filled out. Hursti then gave Sancho the memory card to insert in to the machi...
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...
“So yet another way you can help Ruby and Rails Activism is by attending (supporting) a conference. Below you’ll find conferences coming up in the next 6 months. If you think I’ve missed one, or if the information is incorrect, please post a comment.” (from Riding Rails)
If you look at the list of conferences and meetings, all looking interesting, there’s nothing anywhere near Boston. Hey, whatup?
Scott Kirsner of the Innovation Economy blog, as well of the Boston Globe says that: “To me, the biggest way to make Boston more competitive and innovative right now is to do a better job connecting students with our innovation economy. Which is why it pains me that our trade associations and networking groups make it so hard for students to get involved.” (from Innovation Economy)
He goes on to grade a variety of formal and informal groups who put on meetings regularly in the greater Boston area. It’s a ...
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.
Check out “Forget Photoshop: 15 Online Graphics Generators“: “Shiny edges, reflections, neat 3D effects – you love them and can’t get enough of them. Well, there’s no reason to spend any time in Photoshop creating them since there are so many tools out there that will do the dirty work for you. Without further ado, here’s a roundup of 15 online Web 2.0 graphics generators.” (from “Forget Photoshop: 15 Online Graphics Generators“)
...
I just came across Dave Dupre’s blog. Some good reading there, for example: “[…snip] If the single test does not show a huge improvement, the project is considered a failure and scrapped. This happens all the time, and it always stifles innovation. Why propose something new if you have to be right all the time?
Innovation does not proceed on a schedule. To maintain a culture of innovation, occasional failure must be allowed – even encouraged! As long as you learn from your mistakes and move on and get better, the team and the company will be better off.” (from Fear of Failure)
Technorati Tags: softwaredevelopment management
Just a few handy links that, if you are a Rails developer you may be interested in:
Ruby Plus – Free Ruby and Rails Screencasts RailsCasts – free Ruby on Rails screencasts ActiveScaffold – A RoR plugin that magically and dynamically creates user interfaces PeepCode – A super valuable collection of in-depth Screencast, worth every one of the 900 pennies each costs
I have found each of these a great resource, and I recommend them to you!
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.
Well you know I am a Ruby on Rails fan and often when I propose it I am asked whether ‘Rails will Scale’...
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.
Sites that have to support a huge amount of traffic tend to want to be static html. No matter how fast PHP or perl is, in the end, static pages win. So tools pop up to allow you to generate a templated site, but generate it into static html to kind of have your cake and eat it too. Webgen is one of those static web site generators. Here’s what it does:
“When webgen is run it combines the template with each of the page files and generates the HTML output files. During this process special tags are substituted so that, for example, a menu is generated. Actually, this website was generated with webgen and, for example, the menu that you can see was created dynamically. For more information look at the documentation!” (from Webgen)
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 🙂
Joel Spolsky of Joel on Software gave an outstanding talk at Yale which he has written up on his blog. For budding Computer Science majors, people getting into the computer world or business, there is a lot of good wisdom to be found here: My favorite passage is the discussion about the value put on software, from the perspective of those who are involved in creating it. Here’s how he introduces the topic, but you should really read the whole thing:
“Currently, in the battle between the geeks and the suits, the suits are winning, because they control the budget, and honestly, I don’t know if that’s such a bad thing. The suits recognize that there are diminishing returns to f...
I’ve been living inside a couple of [tag]Google groups[/tag] lately, posting questions and waiting for answers. (Which ones? Ruby on Rails: Talk and [tag]Active Scaffold[/tag]: Ruby on Rails plugin) Much to my surprise and [tag]productivity-loss[/tag], it’s not possible to request an email alert when someone posts an answer to your question. Odd, this is a oldie-but-goodie feature in many many mailing lists. So I am reduced to checking manually every day or so. (You can see it annoyed me sufficiently to bother writing this 🙂
Over the last 2 weeks I’ve been actually able to carve out some quality time to get my head around Ruby and Ruby on Rails.
My play project is something called myscum.org, which is a lightweight scrum tracking tool. Basically it’s modeled after what I’ve been using for BlogBridge, working with Aleksey. So a pretty simple case, makes a decent play project.
But of course, that’s how BlogBridge started. A decent play project…
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: ...
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
If you are a Ruby On Rails developer you might want to check out this post from dzone.com: latest front page: ** "Itâ_Ts not particularly hard to deploy your app in a subdirectory, but Iâ_Tve found that figuring out how to can be. So, I decided to put together this short little write-up."
(from**: Deploy your Rails app in subdirectory with Apache and Mongrel)
Â
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"?)
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!
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.
I was discussing with a friend yesterday, really, what’s the difference between a scripting language and a ‘real’ language? Is Java a ‘real’ language? After all it does run on top of an interpreter (the JVM.) But what’s an interpreter anyway? Is the only ‘real’ language C++? Even C# is questionable?
Ah I think that’s all old think. I do think there’s a qualitative difference between a Ruby and a Java, but it’s not about scripting versus real. It’s about something else…. and by the way, what happens when Ruby is run on top of the JVM?
Check out this post from Artima Java Buzz:
The JRuby development team have released version 0.9.2. "This release has some great improvements: extensions openssl and readline now working, code for a new graphical irb console, partial support fo…
(from: JRuby 0.9.2)
I’ve been learning Ruby and Rails in my copious spare time. I found this post instructive on how to write idiomatic Ruby instread of Ruby as C: Idiomatic Ruby.
“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
I’m getting a little fascinated with Ruby and Rails so I’ve been getting acquainted with it. Just want to share a handy link with detailed instructions on how to build and configure all that stuff on a Mac. Handy if you are in the .01% of the world who cares 🙂
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.
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
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
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...
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 ...
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?
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
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...
One of the hairier and most interesting parts of Swing (Java’s GUI layer) are the so-called pluggable look and feels (or is it looks and feel?.) Truth is that you can live a very happy Swing life without knowing how it works, but if you are curious or need to know for some reason…
This document is a good summary, even though a little dated, if you are interested in really understanding it. Like many things it’s not so complex once you understand it.
I’ve subscribed to this list from OCI (“Object Computing Inc.”) for a while now. They always have interesting readable articles on one thing or another related to Java.
If you are interested in Java, I recommend it!
Technorati Tags: java
“IBM has announced that it will be joining the Harmony open source Java project. Although right now, IBM’s role is limited to providing thoughts and suggestions, it is likely that IBM will be contributing code to the project in the future according to Rod Smith, Vice President of Advanced Technology at IBM.”, from JavaLobby.
While Java is great as a language and as a platform, there has been reasonable concern about Sun’s stewardship of it, both short and long term. The fact that IBM seems to be throwing their hat into the ring of making an alternative, open source, Java platform, can either be good by itself or because it gives Sun a kick in the pants. Either way, I think it could be good!
Technorati Tags: interesting, java, IBM, puppy
What a difference this conference is from the ones I usually go to. Ten thousand or so fairly hard-core Java programmers, more or less around the clock, learning about Java in all it’s mysterious variety. 
We get to learn how Sun thinks about its stewardship of Java We get to see the latest new features, concepts, directions of all the multitude of parts of the java universe We get to dive deep, really, really deep, into many nooks and crannies of the technology platform
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
Maybe you’ve read or heard my rants about what has become known as the “Scary Dialog Box” that users see when the run a Java application without a valid certificate.
And if you have used BlogBridge, you will have seen it and many of you have asked what the heck it means, and I am sure many more have chosen not to run BlogBridge because of it.
Sun has heard this complaint from many many people and is now trying to fix the problem, by introducing this new altern...
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.
*
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...
Amusing. Do you recognize yourself? And while you are wasting time, how easily can you tell a programmer from a serial killer?
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. “
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 ...
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.
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...
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
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...
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”);
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
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.
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.
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 🙂
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.)
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...
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…
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.
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.