RSSAmplifier

Blog

Languages and Logic

Programming languages, machine learning and computer vision

blog.samibadawi.comRSS feed ↗25 posts

Latest posts

Self Hosting Coding LLMs

The world is in an arms race to create data centers in 2026, to run and train the most intelligent AI. We spent close to $1 trillion in Capex in 2026 for building data centers and GPUs. Recently free open weight LLMs / AI models have shrunk so you can host them on your laptops and phones. I decided to try these for coding tasks to see if they work. My local AI setup I did a little research and…

Competitive Pure Functional Languages

Pure functional programming languages have dramatically improved lately. Around 2010 functional programming became popular, and Haskell was the most elite language. It was pure and would give you programming super powers. But it was mainly for PhDs. Meanwhile mainstream OOP languages like C++, C#, Java and Typescript stole a lot of functional features and became object oriented functional hybrid…

Deep Learning From Java and Scala

Deep learning has been dominated by Python for years. It has been much harder to do deep learning on the JVM, but recently there has been some improvements. Here is a brief comparison of popular options going into 2021. Deeplearning4j DJL, Deep Java Library MXLib Java and Scala bindings PyTorch Java bindings TensorFlow Java bindings TensorFlow Scala Bindings and Portability Python is great for…

How Many Languages Should You Program In

I love programming languages. Some would say that I am a language addict. I have programmed in a lot of languages, and written blog posts promoting their use. What is a reasonable number of languages to program in? For production code my answer is almost always: Less is more There is a tricky balance between innovation and stability in software engineering. This post has a few metrics and some…

Haskell IDE 2020

Haskell tooling has improved, but getting an IDE-like setup is still tricky. It took me some trial and error finding a good Haskell environment. I tried 5 modern libraries implementing IDE functionality for Haskell: Intero haskell-ide-engine (HIE ) haskell-language-server Spacemacs Haskell Layer SpaceVim Haskell Layer Intero I had good experience combining Intero and Haskero VS Code plugin . It is…

Haskell and Hadoop the Aftermath

In 2012 Haskell and Hadoop were the hottest technologies. They had a lot of hype and I loved them. Both were based on functional programming and built on towering abstractions. Elite functional programmers used Haskell. Serious tech startups had to use big data, meaning Hadoop. Three years later I had learned Haskell and Hadoop and my top advice to startups was: Don't use Haskell or Hadoop! They…

F# vs Scala

F# and Scala are both hybrid functional object-oriented languages created for popular virtual machines. F# for CLR / .NET Scala for JVM / Java F# and Scala are now in more direct competition after Microsoft open sourced F# and .NET Core. They have many similarities but a distinctly different feel. It was hard for me to put my finger on the difference. This blog post investigates their design…

Typed Functional Languages 2019

This post is a brief status of the state of typed functional languages in late 2019. Typed functional languages like Clean, Haskell and OCaml were developed within academia in the 1990s. Around 2010, languages like F# and Scala were gaining some acceptance in industry. Today there are many great typed functional languages, several used in industry. I will give a brief side by side introduction to…

Benefits of Different Python Distributions on Mac

There are at least 5 popular ways to install Python on OS X / Mac. OS X default Python installation, currently Python 2.7.10 Use brew install python Use brew install pyenv Anaconda Python pkg installer from python.org I have used all of these distributions. They are all high quality and easy to install, but you run into conflicts later. You think that you are installing a library into one Python…

ML and Data in AWS, Azure and GCP

Machine learning and data technology are changing fast and the big cloud providers compete with new offerings. This blog is a short introduction to what this looks like in 2019. It is focused on cloud providers Amazon Web Services, Microsoft Azure and Google Compute Platform. A few things I will discuss - Most data in an organization can be put into a data lake to query and combine We now have…

VM, Lambda, Kubernetes & Terraform Best Practice

I work with these popular cloud technologies. VMs, virtual machines like EC2 or GCE Docker Kubernetes Terraform Lambda / serverless functions This post contains a short introduction to these technologies and my best practices for which cloud technology to use in different situations. Virtualization Technologies Here is a quick history and brief summary of difference. A Highly Abbreviated…

Static vs. Dynamic Functional Languages

You can divide functional programming languages into 2 groups: Static and dynamic. Dynamic functional languages: Clojure, Common Lisp, Racket and Scheme. They have few types often only known at run time. Statically typed functional languages: F#, ML, Haskell, Idris and Scala. They have advanced types that are known at compile time. Functional programming languages have similarities but are very…

Practical Scala, Haskell and Category Theory

Functional programming has moved from academia to industry in the last few years. It is theoretical with a steep learning curve. I have worked with strongly typed functional programming for 4 years. I took the normal progression, first Scala then Haskell and ended with category theory. What practical results does functional programming give me? I typically do data mining, NLP and back end…

Big Data: What Worked?

" Big data " created an explosion of new technologies and hype: NoSQL, Hadoop, cloud computing, highly parallel systems and analytics. I have worked with big data technologies for several years. It has been a steep learning curve, but lately I had more success stories. This post is about the big data technologies I like and continue to use. Big data is a big topic. These are some highlights from…

LISP Prolog and Evolution

I just saw David Nolen give a talk at a LispNYC Meetup called: LISP is Too Powerful It was a provocative and humorous talk. David showed all the powerful features of LISP and said that the reason why LISP is not more used is that it is too powerful. Everybody laughed but it made me think. LISP was decades ahead of other languages, why did it not become a mainstream language? David Nolen is a…

Collision with the Zeitgeist

It has been 5 years since I started my blog. Back then I was alone with my obscure computer interests: functional programming languages, machine learning and AI. I felt lucky when I met a Python programmer that I could chat with once in a while. Occasionally I would boil over and just start a computer rant to people at social events, until they ran off. When I met my first Haskell programmer at a…

Akka vs. Finagle vs. Storm

Akka, Finagle and Storm are 3 new open source frameworks for distributed parallel and concurrent programming. They all run on the JVM and work well with Java and Scala. They are very useful for many common problems: Real-time analytics Complex website with different input and outputs Finance Multiplayer games Big data Akka, Finagle and Storm are all very elegant solutions optimized for different…

Scala vs. Haskell vs. Python

Functional programming is on the upswing, but should you bet your career on it, or is it a short-lived technology fad? I have long wanted to use functional programming professionally and for the last year I have. Mainly Scala, written in Haskell style, plus some real Haskell programming. Here is my impression of Scala and Haskell compared to my benchmark language, Python. Scala Scala is a…

Hive, Pig, Scalding, Scoobi, Scrunch and Spark

Comparison of Hadoop Frameworks I had to do simple processing of log files in a Hadoop cluster. Writing Hadoop MapReduce classes in Java is the assembly code of Big Data. There are several high level Hadoop frameworks that make Hadoop programming easier. Here is the list of Hadoop frameworks I tried: Pig Scalding Scoobi Hive Spark Scrunch Cascalog The task was to read log files join with other…

Scala, Eclipse and Maven integration tutorial

I have evaluated Scala as a language for cloud computing and Hadoop. One requirement was a robust development environment, with a real build system, a good IDE with code completion and debugging. The combination of Scala , Eclipse and Maven seemed like a fit for this requirement, but my initial experience was mixed. Problems with Scala, Eclipse and Maven integration It was easy to install Scala,…

Natural language processing in F# and Scala

I do natural language processing in C# 3.5 and Python. My work includes classification, named entity recognition, sentiment analysis and information extraction. Both C# and Python are great languages, but I have some unmet needs. I am investigating if there are any new languages that would help. I 2010 I tried out 3 new languages: Natural language processing in Clojure, Go and Cython Recently I…

Cloud Computing For Data Mining Part 1

The first half of this blog post is about selecting a cloud provider for a data mining and natural language processing system. I will compare 3 leading cloud computing providers Amazon Web Services, Windows Azure, OpenStack. To help me chose a cloud provider I have been looking for users with experience running cloud computing for application similar to data mining. I found them at CloudCamp New…

Practical Probabilistic Topic Models for NLP

Latent Dirichlet Allocation, LDA is a new and very powerful technique for finding the topics in a collection of texts, using unsupervised learning. LDA is a probabilistic topic models. LDA was developed in 2003 and rely on advanced math. This post is a practical guide about how to get started building LDA models and software. LDA will have a substantial impact on corpus based natural language…

Bedtime Science Stories My Science Education Blog

I started a science education blog called: Bedtime Science Stories . Here is a little excerpt from my first post: Can and should a 3 year old girl be into science? I have a 3 year old daughter that has take a bit of an interest in science. We have been talking about science when I put her to bed at night. Last Sunday I discovered a new book called Battle Hymn of the Tiger Mother by Amy Chua, who…

Is IBM Watson Beginning An AI Boom?

Artificial intelligence fell out of favor in the 1970s, the start of first artificial intelligence winter, and has mainly been out of favor since. In April 2010 I wrote a post about how you can now get a paying job doing AI, machine learning and natural language processing outside academia. Now barely one year later I have seen a few demonstrations that signal that artificial intelligence has…