dominiek | 4 years ago | on: The Handwavy Technobabble Nothingburger of Crypto
dominiek's comments
dominiek | 5 years ago | on: FTP is 50 years old
If I had any influence on the protocol it would be HTTPs. This is why I wasn't expecting to build an FTP server in 2020.
dominiek | 5 years ago | on: FTP is 50 years old
I'm making the maintenance of this less painful by doing a hacking/debugging session with manufacturers once a month where we hook up many devices and fix issues. After addressing most edge cases fewer are coming up now (despite a relentless stream of new cheaply manufactured devices)
dominiek | 5 years ago | on: FTP is 50 years old
- Scaling requirements are relatively low. Even though we're dealing with 10 thousands of devices, the amount of firware updates at a given time to those devices is minimal. Our main scaling challenges are around OCPP over websockets. Story for another day.
- I have bad memories of ProFTPd etc buffer overflow exploits.
- I wanted something simple that could bridge between FTP and our cloud persistence (MongoDB and Cloud Storage).
- I found this Node.js library that I since then forked: https://github.com/autovance/ftp-srv - The great thing about this library is that it allows a quick implementation of a custom filesystem.
- For Kubernetes pods the file system should really be treated as a /tmp - which we are doing.
- When a charge station connects, the FTP username/password is a temporary generated set of tokens that is checked against our MongoDB.
Essentially, I'm using FTP as a throwaway here.
If you think through this you can imagine it would be quite a lift to accomplish this with an existing FTP server.
dominiek | 5 years ago | on: FTP is 50 years old
We use MongoDB as persistence and have existing wrappers for dealing with Google Cloud Storage.
Since it's an isolated service we could've used a different implementation language.
In our case Node.js in our existing Kubernetes environment was the least amount of friction
dominiek | 5 years ago | on: FTP is 50 years old
dominiek | 5 years ago | on: FTP is 50 years old
I never thought I would say this, but I actually implemented an FTP server in 2020. This was needed to support firmware updates to specific hardware (Electric Vehicle charging stations). Apparently embedded software developers choose FTP whenever a spec doesn't specify how binary file transfers should work.
It was kind of amusing getting FTP to work in a modern cloud environment. I run a single Kubernetes pod with a Node.js based FTP server optimized for one thing: Transferring files between FTP and Google Cloud Storage. A series of ports are specified in the Docker file to enable passive FTP transfers.
Even more amusing was the number of varieties in which FTP was implemented by different hardware manufacturers. I regularly had to dive into the FTP libraries to add support for crazy edge cases (tcpflow in kubectl exec -it is your friend!). Example: one device added a newline in the middle of a command (USER\n myusername)..
The latest curve ball I received this week is that a certain firmware version of a Qualcomm modem chip cannot deal with the size of the IP packets coming from our FTP server... Fun stuff!
dominiek | 9 years ago | on: Simple JavaScript App Skeleton (React, Bootstrap, Babel/ES6, StandardJS, Browserify..)
dominiek | 9 years ago | on: Simple JavaScript App Skeleton (React, Bootstrap, Babel/ES6, StandardJS, Browserify..)
If you pull now it should work. Sorry about that.
dominiek | 9 years ago | on: Member of The European Union
Even though I have these strong feelings towards Europe, I am against the EU as a super-state. I have been a “Euro Skeptic” ever since I started reading about liberty and became a libertarian. Unfortunately, being a Euro Skeptic and/or believing in smaller governments gets you cast into the “Right-wing Nutbag” camp in Europe (even by my own parents).
A lot of “Remainians” have strong personal feelings towards Europe just like me. They’ve benefited from some EU initiative at a university, or perhaps they married a fellow European person. Also, they enjoy the benefits of the Schengen treaty, being able to travel and settle freely - without spending years of legal fees and stress on immigration like me. All of these things can be accomplished by treaties and standards without a monolithic EU super nation. Trade and treaties (like Shengen) are great, and they are perfectly achievable without an EU super state).
There are countless of arguments around the democracy and economics of the EU, but at the end of the day the EU is an idealistic construct. It was created with noble intensions to create peace on a warn-torn continent - accelerated quickly after the fall of the Berlin Wall (to address a strong and unified Germany).
Yet once again, the idealism of Europe (and in my opinion the disregard for the fundamentals of liberty) is creating a new cycle of instability on the continent. Whether there’s going to be a Brexit or Bremain, a storm is coming.
dominiek | 9 years ago | on: Antarctic CO2 Hit 400 PPM for First Time in 4M Years
dominiek | 12 years ago | on: Ask HN: Who is hiring? (September 2013)
We are looking for Big Data Engineers, Data Hackers and Machine Learning Pragmatists. Example job description here: http://bottlenose.com/jobs/senior-big-data-engineer. But if you are hungry for challenges in the intersection of Big Data / Machine Learning. Talk to us. Contact me at dominiek at bottlenose dot com (Recruiters NOT OK).
Bottlenose is headquartered in LA with a large part of the development team in Amsterdam. Technologies we use: Cassandra, Storm, Hadoop, MongoDB, Node.js.
Our Vision:
The Stream. It's what matters now. From email to tweets, from forum postings to customer complaints, from enterprise social to automated systems monitors, the drivers for business are now in vortex of voices reflecting markets, internal morale, innovation, brand equity, product acceptance, politics and threats. Rational intend has shifted to irrational actions. Understanding the past bares no guarantee for the future. Understanding what's actionable in streams after-the-fact is expensive. Even dangerous.
This new paradigm requires new tools and methods that can make sense out of the stream and understand human emotion. Bottlenose’s core technology - StreamSense - creates a virtual mind map of everything people pay attention to. It is a new kind of database to derive powerful new insights. StreamSense gives organizations the emotional intelligence that they didn’t have before. It allows them to sense what people are feeling and to anticipate the unknown unknowns - both the good and the bad.
Attempts at creating machine understanding of our world like the Semantic Web and the Knowledge Graph have failed due to two fundamental flaws: 1) A model of the world is not something that should be derived from documents written by experts; 2) In order to build a ‘global brain’ you need to understand human emotion and human intend.
Bottlenose’s ultimate mission is to create a global artificial brain. This global consciousness is build out of a continuous stream of human conversation and attention. By analyzing these vast amounts of data and by analyzing the emotions around it, we build up a mental model of the world. We think this will give us a shot at creating an incredibly powerful Artificial General Intelligence.
dominiek | 14 years ago | on: Why I think HTTP is Overrated
dominiek | 15 years ago | on: Tim Berners-Lee says Facebook is a trap
Facebook has in-fact done some serious web innovation the last years and W3C has completely dropped the ball. Facebook and Twitter have been catalyzing internet adoption and the general spread of information.
Mr. Berners-Lee's obsession about content-silos shows that there is a serious disconnect between the current state of the web and W3C. The web was about content and documents fifteen years ago, now it's about the flow of data.
I know Berners-Lee is a big Linked Data advocate, but the approach that's being taken by the W3C is painfully slow and doesn't take into account the fluidity of information.
This is one of the reasons why developers (and even semantic web developers) have resorted to non-W3C technologies more and more: JSON, Javascript-wrappers, Webkit, client-side routing, non-REST HTTP requests, IOSockets/Coment, streaming apis, etc.
The web is emergent and out of control. Deal with it. Technologies and tools compete for attention and adoption. You snooze, you lose.
As for the 'content silos': Are you fucking kidding me? 'Content' being stuck in Facebook is not going to happen, in fact, the content is going to flow more and more. If you mark something as 'only my friends can see this', it will leak. Don't want to be tagged in a picture? Well, you have no choice. Face recognition will get you soon.
The internet, thanks to social web, is a giant copy machine. There's a huge shitstream of content and your attention and the activity around it is the thing that matters. Who cares about the damn content.
So maybe it's time for the 'Web Founder' and the W3 Web Museum to roll up their sleeves and do something, instead of bitch about the companies that actually advance the web.
So instead of bitching about the companies and people that actually advance the web and change the world, maybe it's time for the 'Web Founder' and the Web Museum to roll up their sleeves and do something...
dominiek | 16 years ago | on: Twitter finally in the money with Google link
This deal is just a little utility fee they're getting for providing priority access to their data pipe. At this point, Google and Microsoft will probably be the biggest 'data pipe' clients that Twitter can have. These deals have resulted in "several million dollars a month" which is absolutely nothing! These numbers, without factoring in anything else can never justify Twitter's current valuation.
That's why I think Twitter should make sure that people don't get distracted with this puny little revenue stream, but rather turn their heads to the real pot of gold: monetizing the activity ecosystem.
dominiek | 16 years ago | on: Rethinking the Knowledge Economy
So I guess we need to determine whether informationization is a force that can be stopped, and if it's not, what can we do to minimize catastrophic failure. One thing could be to have certain physical/static baselines to fall back to (like shelters, food, minimum levels of non-liquid wealth). Or convert some of NNT's black-swan heuristics into well known practices (e.g. "Learn to be redundant, don’t be optimal.", "have small losses if you are wrong, and big profits if you are right", etc.)
I haven't put a lot of thought into the risks and downsides of informationization actually, and perhaps not enough people out there aren't either. At this year's Singularity Summit there was a real lack of skepticism and interest in debating some of these core downsides and dangers.
dominiek | 16 years ago | on: Sell your product with fake screenshots
dominiek | 16 years ago | on: A Twitter Bot in One Line of Code
dominiek | 17 years ago | on: Win 5% Startup Ownership by making a Kick-ass Design
Perhaps I should start a 'Help me out with legal issues' contest ;]
dominiek | 18 years ago | on: YC Analysis: "37signals/DHH style" companies?
What if the actual crime is committed by those that control our money...
Saifedean Ammous' book "The Bitcoin Standard" gives an excellent history of hard money and shows that any new form of hard money will inevitably replace the lesser form (e.g. from the silver standard to the gold standard).
Crypto is composed of interesting projects and scams. Gambling and speculations are symptoms of a wider problem of debased currency and a lack of hard money.
Bitcoin fixes this...
Talking about Bitcoin in the same vain as Crypto shows a profound lack of understanding of history both past and recent when looking at Bitcoin.
While people trade their little Pokemon NFTs Bitcoin will be doing what Bitcoin has been doing from the beginning: Staying exactly 21 million bitcoin - the scarcest and most accessible form of hard money the world has ever seen. It's a black hole sucking in monetary inflation.
1 Bitcoin = 1 Bitcoin.