HNHacker News
TopNewBestAskShowJobs

tobiaswk

244 karma · joined November 27, 2015

[ my public key: https://keybase.io/wkjeldsen; my proof: https://keybase.io/wkjeldsen/sigs/Zb8XJgDUnXd8qaXPr361O3ohuM1-sAuvdnRbKt35JgU ]
submissionscomments
tobiaswk··on Show HN: I built an online image editor using WebGL and CSS transforms
Cool!

Can't help but to mention photopea; https://www.photopea.com/ Pretty impressive stuff made by one guy (it was initially). Basically a viable alternative to photoshop in a browser.

tobiaswk··on Flutter looks good, but is painful
I agree. It tears on the developer for sure.
tobiaswk··on Flutter looks good, but is painful
I simply love Flutter for Android and iOS development and have been using it since alpha. I haven't tried the web application part; I'm pretty sure I never will. Here's my opinion. I've created several apps with Flutter and every time I enjoy it. The UI is easy to make beautiful and the resulting code easy to read. It feels like all what the current Android SDK is missing. The current Android SDK is old and quite frankly painfull to work with. You just can't create beautiful apps with ease; it's always a hassle. It's also messy and not easy to read the resulting code. The way the whole way the framework is structured entails ugly code in my opinion. This all becomes evident when you use different apps on Google Play. You get the sense that every app reinvented their UI; there is no real UI continuity. Google became a freeloader after JetBrains created Kotlin and marketed it will. The thing is Kotlin made just a little better; in terms of boilerplate stuff; the framework I still hate compared to Flutter. What I really like about flutter is the framework and “it’s all a widget” idea. You can basically do crazy things in UI with ease and on the other hand just use the standard UI components with a great result.

As an example I've created an alternative to Nissan's Connect EV app. It's basically a way to control and monitor your electric vehicle from Nissan. The official app is I’m very disappointed by; it’s slow and full of wrong decisions.

My alternative is called "My Leaf" and its available on Google Play and the App Store; https://play.google.com/store/apps/details?id=dk.kjeldsen.ca... https://apps.apple.com/us/app/my-leaf-for-nissan-ev/id143670... It's completely open source.

tobiaswk··on The Bitcoin Blockchain Visualized in 3D
Couldn't the same be said about the US dollar? In fact there's no limit on that one. With the fractional reserve banking in place as todays standard the Federal Reserve just print more notes when needed to bail the banks. The whole system is based on trust. Trust does not scale well.
tobiaswk··on Fusuma – Make slides with MarkDown easily
Cool project. I'll stick with LaTeX and Beamer.
tobiaswk··on Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop
I simply love Flutter for Android and iOS development and have been using it since alpha. I haven't tried the web application part; I'm pretty sure I never will. Here's my opinion. I've created several apps with Flutter and every time I enjoy it. The UI is easy to make beautiful and the resulting code easy to read. It feels like all what the current Android SDK is missing. The current Android SDK is old and quite frankly painfull to work with. You just can't create beautiful apps with ease; it's always a hassle. It's also messy and not easy to read the resulting code. The way the whole way the framework is structured entails ugly code in my opinion. This all becomes evident when you use different apps on Google Play. You get the sense that every app reinvented their UI; there is no real UI continuity. Google became a freeloader after JetBrains created Kotlin and marketed it will. The thing is Kotlin made just a little better; in terms of boilerplate stuff; the framework I still hate compared to Flutter. What I really like about flutter is the framework and “it’s all a widget” idea. You can basically do crazy things in UI with ease and on the other hand just use the standard UI components with a great result.

As an example I've created an alternative to Nissan's Connect EV app. It's basically a way to control and monitor your electric vehicle from Nissan. The official app is I’m very disappointed by; it’s slow and full of wrong decisions. My alternative is called "My Leaf" and its available on Google Play and the App Store; https://play.google.com/store/apps/details?id=dk.kjeldsen.ca... https://itunes.apple.com/us/app/my-leaf-for-nissan-ev/id1436...

It's completely open source.

tobiaswk··on Java 12
I love Dart and Flutter. I actually think it was a good idea not to use Java. Dart is much more modern and nice to work with in my opinion. There are many reason and I won't dwell into it here. The biggest-ish project I've built with Flutter is an alternative to Nissan's ConnectEV app; it's used with the electric vehicles Nissan Leaf and Nissan E-NV200. You can see statistics, battery status and control climate control and charging of your vehicle. My alternative is called "My Leaf" on the Play Store and "My Leaf for Nissan EV" on the App Store. It's completely open source; https://gitlab.com/tobiaswkjeldsen/carwingsflutter

It consists of the main Flutter app and a Dart library for communicating with Nissan's API.

tobiaswk··on PureOS is convergent
Was very interested in their stuff. I was very disappointed when I saw a demo of the current state of Librem 5 running on development hardware. It did not look good. Laggy and slow. Very bad UI/UX.
tobiaswk··on Tippin.me – Micropayments on Twitter
This is a beta project, just like the Lightning Network itself, so losing small amounts is a possibility.

I just love the lightning network. Years of development and it still doesn't work.

tobiaswk··on A Go Custom Flutter Engine Embedder for Desktop
I have made a couple of applications with Flutter. Mainly for Android and iOS. I really think Flutter is great. It's my favourite framework currently. It feels like a modern Android SDK and frankly how the Android SDK should feel like. My "biggest" project currently is an alternative to the official NissanConnect EV app for controlling Nissan electric vehicles. You can find it here if you're interested; https://play.google.com/store/apps/details?id=dk.kjeldsen.ca... It's also open source; https://gitlab.com/tobiaswkjeldsen/carwingsflutter

I think the Flutter team takes accessibility quite seriously; https://flutter.io/docs/development/accessibility-and-locali...

tobiaswk··on Emacs Rocks
You should try Spacemacs; best of both worlds. It's amazing.
tobiaswk··on Google's cross-platform Flutter UI toolkit goes 1.0
I've been following and using Flutter since release 0.2. I think Flutter is an amazing project. It makes writing concise and beautiful apps very easy. I've come to love Dart and the whole Flutter framework. I really think it is the best framework to write Android applications. It also works great for iOS were you can either choose to use Material or Cupertino components. It is a huge improvement over the old Android SDK; which is quite outdated in my opinion. It's too hard to create a beautiful app with the current Android SDK. To many hurdless. Flutter feels like what developing an Android app should be like today. Another thing about Flutter is that it's also ready to work with Google's (upcoming; maybe) Fuchsia OS. One loose end is still the plugins for native features on either iOS and Android. There are many community driven plugins which aren't really maintained. Fortunately there is also a large set of plugins maintained by the Flutter team itself.

I've tried Xamarin, React Native and Cordova (god forbids) and native development on iOS and Android. My preference is Flutter.

I've done one big(ish) project with Flutter and it's called "My Leaf" and it is a third party alternative to the NissanConnect EV app. It's used for controlling the Nissan Leaf and Nissan e-NV200 (both EV's). It's open source and available on Android and iOS;

https://play.google.com/store/apps/details?id=dk.kjeldsen.ca...

https://itunes.apple.com/us/app/my-leaf-for-nissan-leaf/id14...

I've seen some of the comments in this post talk about developing plugins for Flutter. I actually think it is easy and does not require much boilerplate contrary to what people say. My guess is that they really haven't tried writing a plugin but only peeked at the documentation.

tobiaswk··on Microsoft Wins $480M Army HoloLens Contract
I remember reading that the U.S. Army is the single largest installed base for Red Hat Linux. Guess it only covers a little part of the infrastructure.
tobiaswk··on Kessler Syndrome
Great show.
tobiaswk··on WireMock
Very similar to https://getsandbox.com/.
tobiaswk··on IncludeOS – A minimal, resource efficient unikernel for cloud services
Every time I see this project pop up I think about how awesome an idea it is. Not sure about the practical side... but the project is very cool indeed.
tobiaswk··on Bitwarden – Open Source Password Manager
Great tool. I use it together with keybase.
tobiaswk··on Mobile Airbag Deploy When Device Is Dropped
It's there to save your life potentially. €299 seems cheap in that regard.
tobiaswk··on Cool Retro Terminal
Tried it for what it's worth some time ago. Pretty novel and cool looking. Ended up removing it again; I found it too novel even after fiddling with settings.
tobiaswk··on Apple Leaks Video of MacOS 10.14 Showing Xcode 10 with Dark Mode, News App, Etc.
There are so many other problems with Xcode that this dark mode is completely irrelevant to me. AppCode from JetBrains is lightyears ahead and has been for a long time.
tobiaswk··on Japan Fights Crowds of Crows (2008)
Not really. The Corvidae family of birds are widely known as some of the most intelligent animals.
tobiaswk··on Bitcoin Gold Hit by Double Spend Attack, Exchanges Lose Millions
Great points. The thing is though that a double spend would harm both the attacker and all others on the network. It would weaken the trust. It is a double edged sword. You would have to do the double spend without anyone noticing and then liquidate your earnings as fast as possible. With more combined hashing power this would become very hard to do.

There are a lot of problems other than double spend with the Bitcoin. Transactions fees rise very quickly because of the block size limit of about 1MB. You can't really rely on 0-confirmation transactions. The saviour lightning network in my opinion is the wrong solution to the scaling problem. It changes fundamentally how bitcoins are exchanged and steers away from the original white paper by Satoshi. Not that this is wrong... it just becomes another project altogether.

tobiaswk··on Bitcoin Gold Hit by Double Spend Attack, Exchanges Lose Millions
Well it was scamish to begin with. 100,000 coins were premined when it forked. With a lot less mining competition a double spend attack was just waiting to happen. It is possible to also do a double spend attack on Bitcoin and Bitcoin Cash. It's just not very feasible because you would need A LOT of hashing power. So this comes as no surprise to me at least.
tobiaswk··on Bitcoin Sees Wall Street Warm to Trading Virtual Currency
That's my point. BCH did not include some technical innovations like you stated. It simply increased hardcoded block size limit. Simple as that. Even Satoshi himself mentions this in his whitepaper. Other stuff has also changed. The difficulty adjustment (DAA) algorithm has changed to allow are more stable difficulty for miners. Segwit just changed what parts of a transaction counted as size in a block. In reality we're talking about 200KB or thereabouts extra space in blocks. Lightning network is based on a mesh-network. Furthermore it completely changes the bitcoins fundamental clockwork. Suddenly you can't receive payments if you don't hold any coins yourself. Even more detrimental; you can't receive payments if you are not online on the lightning network. It has several other flaws that are very hard to fix; https://medium.com/@jonaldfyookball/mathematical-proof-that-....

I suggest you see this presentation on 1GB blocks (tested on test-net) by Peter Rizun; https://www.youtube.com/watch?v=5SJm2ep3X_M And his talk at "Satoshi's Vision" (here he talks about what is called "weak blocks" and how it can improve scaling and wasted PoW; https://www.youtube.com/watch?v=yXFuNkaYcPQ

It's totally feasible and does not require super computers albeit a Raspberry Pi won't do no more. Scaling to VISA level of transactions is possible. I don't think it's really going to change too much in computing power with bigger blocks. The size of the merkle root won't change just because blocks are larger which means the block header size won't change.

Why do you suspect a second-layer is needed?

tobiaswk··on Bitcoin Sees Wall Street Warm to Trading Virtual Currency
In all fairness the Bitcoin, BTC, is currently close to unusable and scales very bad. It quickly gets oversaturated with transaction and transaction fees rise quick. I think the conspiracy has come full circle. Those who slowly "threw sand in its engine" has done a great job. Why are transaction fees low today? Because no one, or a lot less, is using BTC. I know some will label me as a conspiracist. I've been following this project since early 2011 and it has derailed badly. The community is a toxic mess. On both sides to some extent. I'm interested in how they will do this trading. Off-chain or on-chain.

Bitcoin Cash, BCH, though is very interesting. It conforms to the original idea (whitepaper) much better in my opnion. No second layer nonsense "solutions". A simple block size limit increase (again) and enablement of Op-Codes (again). All coming 15th of May. The very reason to why Ethereum was created by Vitalik was because Op-Codes usage was too limited on BTC. This changes with BCH; Op-Codes will be back and open for smart contracts. Lots of merchants and people are beginning to use BCH. Because it is fast (0-conf works again) and has close to zero transaction fees. It's the project I began following early 2011.

tobiaswk··on Google bans cryptocurrency ads
Good. The amount of crazy ICO's I've seen is staggering. Most of them are surely scams in some sense. Reddit is filled with them.
tobiaswk··on Why Is It Taking 20 Minutes to Mine This Bitcoin Block?
With bitcoin (not bitcoin cash) the difficulty is adjusted every 2016 blocks. If too many blocks were mined in this period the difficulty will decrease and vice versa. This means that many blocks could be mined faster or slower in this period. Until of course the difficulty adjustment occurs again. You use what is called the nonce in the block header. Each time you do a hash of the block you increment this nonce. If your hash is under or equal to the difficulty the block is valid. The difficulty essentially means how many zeroes are in front of your hash.

What big mining operations do is to slice this nonce into appropriate ranges for each miner. So no miner is hashing with the same nonce. So miner 1 starts at nonce=0 and miner 2 on nonce=2000. The nonce range depends on how many hashes each miner can do in a ten minutes span. By doing this each miner is not doing hashing with the same nonce. That would be wasting hashing operations.

Now bitcoin cash changed the difficulty adjustment algorithm (DAA). Instead of adjusting the difficulty every 2016 blocks this is done after each block has been found. This was done to stabilize the difficulty. So miners stay mining bitcoin cash instead of switching between the most profitable chain (bitcoin or bitcoin cash). This was a problem before the new DAA was implemented for bitcoin cash.

There has been times in recent history were no new block was found for 20 minutes on bitcoin. For bitcoin cash around 2 hours. This was in November 2017. It has been 10 minutes stable ever since.

You can check this yourself on bitinfocharts.com for each blockchain under Block Time.

tobiaswk··on Why Is It Taking 20 Minutes to Mine This Bitcoin Block?
With bitcoin (not bitcoin cash) the difficulty is adjusted every 2016 blocks. If too many blocks were mined in this period the difficulty will decrease and vice versa. This means that many blocks could be mined faster or slower in this period. Until of course the difficulty adjustment occurs again.

You use what is called the nonce in the block header. Each time you do a hash of the block you increment this nonce. If your hash is under or equal to the difficulty the block is valid. The difficulty essentially means how many zeroes are in front of your hash.

What big mining operations do is to slice this nonce into appropriate ranges for each miner. So no miner is hashing with the same nonce. So miner 1 starts at nonce=0 and miner 2 on nonce=2000. The nonce range depends on how many hashes each miner can do in a ten minutes span. By doing this each miner is not doing hashing with the same nonce. That would be wasting hashing operations.

Now bitcoin cash changed the difficulty adjustment algorithm (DAA). Instead of adjusting the difficulty every 2016 blocks this is done after each block has been found. This was done to stabilize the difficulty. So miners stay mining bitcoin cash instead of switching between the most profitable chain (bitcoin or bitcoin cash). This was a problem before the new DAA was implemented for bitcoin cash.

There has been times in recent history were no new block was found for 20 minutes on bitcoin. For bitcoin cash around 2 hours. This was in November 2017. It has been 10 minutes stable ever since.

You can check this yourself on bitinfocharts.com for each blockchain under Block Time.

tobiaswk··on Flutter doesn’t need Kotlin (or anything else)
I absolutely love Flutter! It feels like what Android development should be like in todays day.

No XML or descriptive interface mumbo jumbo. You write your interface purely programmatically and it's easy to read afterwards. It also looks very good and supports most of Material Design's components. Great built-in library. Dart has some very neat features. I especially love the handling of asynchronies operations. Either use promises or the async and await syntax.

tobiaswk··on IOTA: The Brave Little Toaster That Couldn’t
A mesh network that requires YOU to be online to receive funds. Also you must have funds to open a channel. So in order to receive funds you must have funds already.

It seems like a really big step backwards in big big scheme of things bitcoin. All of the above problems can be solved by increasing the block size. I'm not saying it's the definitive solution... but right now it is a better solution.

A good talk about really big blocks on bitcoin and what the ramifications are; https://www.youtube.com/watch?v=5SJm2ep3X_M

Page 1 of 2Next →