HN user

lxcid

72 karma

Co-founder of Taskade at https://taskade.com

https://lxcid.com

Posts1
Comments30
View on HN

Hmmm, one could choose other grocery stores to distribute their products but developers can only distribute their app in one store.

If you spent months or years developing an app and apple reject it, you have no way to go. You can’t make it android or web without significant rework. Even if it is accepted, it might get sherlocked by Apple in WWDC. Not to mention your app could break every year at this time round when new iOS is released.

This is the risk of an indie iOS developers and the risk have not lessen over the years.

Here one heartbreaking post from an indie developer:

https://qnoid.com/2019/09/06/Apple-Developer.html

I Miss Rails 7 years ago

I personally don't missed Rails mostly because boilerplate doesn't really bother me. I'm more afraid of using the wrong abstraction.

Rails (v4 was my last experience) was hard for me and I think my reasoning is as follow:

- I like to dig deep into the framework I work with but Rails have so much meta programming (a.k.a magic) that I struggle real hard figuring out stuff. You often have to go into runtime, hit method and see where it lead you to and after a while, I realise that I'm not going to see the bottom.

- If you are someone who like to dig deep, the documentation wasn't helpful for me at all.

- ActiveRecord for a while discourage using foreign key. When I move away from Rails, I tried SQLAlchemy and love that its unopinionated. Then I move to node and agree its ORM are less powerful but I learnt to love SQL. ActiveRecord for me shouldn't be any more than just convenience ORM and shouldn't replace SQL, that goes against Rails' ActiveRecord philosophy which claim these constraints should be at the model side rather than DB side. https://guides.rubyonrails.org/active_record_migrations.html...

- Lastly, I firmly believe MVC is a leaky abstraction. Any variations of MVC is just shifting the complexity around, not reducing it. I worked on Rails, worked on iOS (which uses M-V-VC). The pattern I see is that almost every year, someone will get bitten by vanilla MVC, tried some variants unsuccessfully and conjure a new variant; the cycle goes on. MVC is a 20 year old pattern, it have amazing insight into how we should build application, but its implementation always fall short after so many years.

Ultimately, I don't think Rails was optimised for someone like me. I think there's just fundamental differences in philosophy between me and Rails.

I have a feeling this is not a AMD vs Intel or Apple vs Intel.

This is TSMC vs Intel. TSMC basically make the 7nm chip for Apple and AMD.

It looks like this company HQ at Taiwan provided the bragging right for Apple and AMD…

As someone who live in Singapore, yeap, pretty much the same experiences. There's a lot of FUD about Singapore strictness but many are exaggerated.

E.g. If you smoke, you gonna hate Singapore. Because if you get caught smoking in the wrong area, you will be fined. If you throw the butts on the floor, you will be fined if an officer caught you.

Drug is one thing if you cannot live without, you shouldn't come to Singapore.

I love Swift but at 4.2, its still a distance from being useable for me.

Swift is suppose to be modern, only to be burden by API compatibility work, which is non trivia.

This significantly slow certain important developments like ABI Stability (5.0), Full Generic (5.0), Concurrency (Maybe 6.0)?

A year since 4.0 release and in the coming few months, 4.2 will be release and not 5.0. This mean the timeline for 6.0 get push even further back.

While Swift is modern in area like optionality, first class immutable struct and (my favourite feature) enum with associated values, it lack many other modern features we come to expect from modern language. e.g. callback are still the way for async path control (1 of the regret of Ryan Dahl in his JSConf EU talk https://www.youtube.com/watch?v=M3BM9TB-8yA)

1.0 to 3.0 was spent getting the API right. This is a significant positive investment in the long run, but as someone who have to maintain codes, it was not pleasant at all and I still have code stuck in 1.0/2.0 eras. I have crashes with getting conditional conformance working with generic. Some wasn't crashing on 1.0 or 2.0 but crash on 3.0. Swift clearing is a WIP.

---

At the same time, TypeScript happened. TypeScript turn JavaScript into optional typed language. I see JavaScript and Objective-C in similar light. Since Objective-C start getting some syntactic sugar (generic, nullability), I wonder what if they have taken the TypeScript approach instead.

TypeScript have no choice but be pragmatic (probably after seeing how Dart was not adopted by the larger community for going the Swift way).

Apple basically act like a benevolent dictator, whatever direction they take is more or less the future, we have to figure out how to work around the new "world" order, which get updated every year at June.

The best iOS/Mac developer thrive in this environment and get handsomely rewarded (App Store ranking, recognition from Apple), I tried and failed miserably.

Had my first full year working on my startup https://www.taskade.com/

It have been challenging. I switch from being an iOS engineer to a full stack web developer. I always thought its easy to manage a team but I was so wrong. Struggling between doing and delegating.

I hope to I learn and improve going forward into 2018, trying to be good at enabling my teammates more. Hope we make Taskade becoming great.

I'm grateful I have good relationship with my co-founders though and still enjoy very much working with them. Hope we achieve great things together.

Happy New Year HN!

Cheers, Stan

2 camps:

USD 814M accumulated over a year, legit vs not legit?

You don’t really need to think hard, who is these 30 mil, 30 mil deposit? If you divide by a year, they need to have an average 2.2 millions of deposit a day. That’s just to Tether. That’s a lot. Just moving these amount of money in any country will put your account in question.

Will you do it if their T&C doesn’t guarantee withdrawal? A bank actually need a govt to issue deposit insurance for it to work? People are depositing 2.2 millions without any deposit insurance, with shady T&C?

I mean you can believe in it, but I’m definitely skeptical.

I agree. It felt like Vue is rewalking the path of React all over again.

But I think it’s good that there’s competing library, though the problem domain felt eerily similar.

JavaScript is unlike other languages, it take the big 4 (Chrome, Safari, Firefox and IE/Edge) to come to an agreement to get something done.

And standardization takes many years to reach mass adoptions. No language come close to such a mess. Even Python 2 to 3 migration wasn't as complex.

Yet, they move fast, faster than those languages that are controlled by one authority.

Frameworks are important because at the lower level, things are not as simple to get done as those language with only one authority.

They API agreed by the authorities will definitely be thin. So the community step up with frameworks.

I'm not well verse in economy but I believe much of what US is today is built on being the global dependency. It's like the JQuery of everyone's economy: too big to fail.

After Trump inarguration, the world got a shock at what a hell of a dependency they got themselves into (bigger shock than 2008). It's like the leftpad fiasco all over again. Any sane politician would by now understand the need to reduce dependency on America. Everyone else are planning a Dodd Frank fix for their economy.

US will really suffer a crisis if the world stop depending on it, if they can afford to ignore America. After TPP was canned, and Trump protectionism approach, that dependency is surely weaken.

If you think about it, China is not even trying to complain about US anymore. That's because they got what they wanted.

But US had a nuclear arsenal, its better for the world if we had this dependency. Trade and economy have kept peace for so long, I hope I don't see an end to this peace.

I stay in Singapore and used to work remote.

I want to differentiate the tech scene and start up scene.

There's a lot of noise in the start up scene just like most places. Over the years, I have definitely seen an increase of entrepreneurs. But I care only at a gossipy level.

The tech scene on the other hand is closely knitted. Running the tech scene is challenging here. We haven't have much support from companies as successful local start up don't end up paying forward as much as we hope they would, but it's improving. We often depend on some government helps and a few very passionate and committed people.

Over the years, the tech scene have grow slowly but surely. More people are contributing back in term of sharing knowledges through meetup or doing open source stuff. This is what truly make me hopeful of Singapore.

I think if we just focus on ourselves and be open to things and grow together. We can be decent together. :)

Here's some links to get a sense of how far we have come:

Events: https://webuild.sg Data: https://data.webuild.sg Talks: http://engineers.sg

I can't take anyone who promote JavaScript over any real programming language seriously.

first, people build transpiler so that they can build and maintain large codebase without losing sanity.

Then you have react that come with this great idea, immutability, so that they can have saner codebase.

Much of what happen is due to the language deficiency. Which is why some would have gone and consider language like Go.

Here's the part where I don't get it. Doesn't this happen to other industries, like banking, politic, entertainment, etc?

The framing it as “hey tech, we have a sexist problem” is making it sounds like there's no sexist problem in other industry.

I'm not supportive of sexism in the industry, but when it is framed that way, a part of me just couldn't bring myself to align with it.

We can say, hey sexism is a society issue but we tech industry can do better than others. We proud ourselves as the progressive front runner of civilization, so let's make sure we show it.

If you remove [tech] from the title, this article will still make sense, doesn't it?

Fitbit Files IPO 11 years ago

Yep! Exactly why I stop using them and will not consider them at all. It's a crowded market and they are not standing out.

This comment is why sometimes we techie are kinda delusional.

We despise existing solution thinking that we could and should disrupt everything. Tear down everything and build everything from scratch; Our way or the high way attitude.

Bitcoin definitely have some innovations here and regardless of what happen in the future, it's impact will be felt. It was a great experiment, probably the greatest social experiment of the 21st century. The best is that it's self contained and sandboxed. Allowing it too roam freely in unchartered water.

But the financial industry is not as un-innovative as we hope they are. To innovate means you have to experiments, to experiment mean there will be failures. Over the years we seen financial industry fail and fail again. In fact, the incentive to "innovate" is so high, you constantly see the cat and mouse game between the regulators and the industry players, and the revolving doors of the prison cells never really stop.

While the greed and failure of the financial industry has irked us and certainly bred a level of mistrust. Trust in the financial system is at the highest level in human history. You have to understand that they are no stranger to mistrust and throughout human history it is a recurring problem they have to solve over and over again.

The current floating currency and central banks structure which provides deposit insurance among many other things are the result of many iterations over thousands of years. This system run the global economy, it scale is unimaginable large in human scale. There's a lot to appreciates.

Sure there's room for improvements. Many people treats Bitcoin like it must replace the financial system but the problems it facing now is exactly what the financial system had solved. What I'm pretty sure is that Bitcoin's will definitely had an impact on the next iteration of the ever evolving financial system.

The Bitcoin community I have seen fails to recognized the important of trust in finance. Not just trust between computers, but trust between humans. Like the 90's and 00's software industry fails to recognize the important of simplicity and good user experience. The next Steve Jobs of the cryptocurrency is in my believe one who understand these ideas to heart.

There's a lot to celebrate about Bitcoin and what we had done, as I always like take a contrary position. Bitcoin is not a replacement of the existing financial system, it is, or will be if it haven't, part of the system. Thus, the rise and fall of its price is part and parcel. It's kinda exciting to see this great experiment in the running, although I'll dread experiencing it first hand.

As Bruce Lee once said, "In great attempts it is glorious even to fail." I wouldn't consider this a failure but it's definitely glorious.

Exactly my experience. There's so many hypothetical fixes on the Internet, some seems to improve intermittently and temporarily, some seems to not work at all. But toggling Bluetooth seems be able to get a reaction from the OS at times. It felt like a ritual and I'm praying to the OS god.

Then one day a fortnight ago, I chanced upon another solution. Some people are speculating that because the WiFi signals is clashing with Bluetooth signals as they are both in 2.4 GHz, its affecting the WiFi. I was using Apple Wireless Keyboard & Touchpad. I have friend who had similar setup who seems to have the same issue.

So the next day, I spent 464 USD just to upgrade my router, get a wired Keyboard and a wired Mouse.

I have definitely splurged on these hardwares but at this point I am so frustrated and desperate that I need to make sure any hardware issue is out of the question. These are the only variables I can control, anything else felt hopeless.

I then jumped on 5 GHz WiFi and stop using bluetooth. My WiFi situation have improved a lot since then. Not perfect, but not un-usable.

The point is that I could have saved those money. To spend so as to fix a bug felt so Window'ish. It use to just work, and glitch are bearable, now I always worry of upgrading.

Anyway, those money could have went into buying Apple stuff.

If you watch the video and wondering about the multiple subscripts prepended by '?', this technique is called optional chaining. It also work for properties and methods.

It is kinda similar to how we can invoke methods on 'nil' in Objective-C and not causing any runtime error.

Just stating if anyone is wondering.

Smashing Swift 12 years ago

This is kinda misunderstanding Apple approach to introducing technology. Apple seldom introduce a technology as intermediary solution or discard them soon after. (the last time this happen that I could remember was GC in Objective-C which is replaced by ARC) They could double down on it even if it has its algorithmic flaws, and they will attempts to fix those flaws.

One of recent technologies that fall into this category is auto layout. (The performance of auto layout in iOS 7 for slightly more complex table view cells is pretty bad)

Apple main interests is always Apple, which makes sense because they are a for profit company. Just as Rails is always Basecamp. Apple technology have a fast paced development because Apple dog food their technology. WebKit in Safari, LLVM in Xcode. They invested huge in these area. That doesn't mean that they don't open up. both technologies I mentioned are open source and have huge impact to the community as a whole.

E.g. RubyMotion make use of LLVM to allows ruby to be compiled to both iOS and Android.

People like to think Apple is a closed company (as marketed by its competitors) but people who know the company well know that is far from true. They might not be the most open of company but they had open source technologies that are awesome in their own right. LLVM is just one of them. Open sourced and won the ACM award. That by itself is a achievement hard to beat.

Only Apple 12 years ago

I agree with the notion of a single vendor for all our needs is a scary future but AFAIC, we not moving in that direction. We have experienced first hand how it was like when Microsoft dominated the desktop space and I wouldn't want history repeat itself.

That said, that doesn't mean that I should choose my allegiance based solely on the point.

Years of development although does translate to maturity of the technology, it doesn't translate to superiority. Often, it could means lots of legacy, extra baggages in the name of backward compatibility and even stifled development.

If you consider Objective-C vs C#, Objective-C is over 20+ years old and have always been the main language for the Mac/iOS Platform. How have it served Apple? Many people here wouldn't argue against it. What do you think truly make C# much better than Objective-C? If we based our criteria on years of experience, Objective-C would be hands down winner here. But no, they have their pros and cons.

Xcode might not have been as well developed as compared to Visual Studio for a long time, but thats gap is closing rapidly. Since Xcode 5, I haven't been really haven't been mad at Xcode. I'm excited about Xcode 6.

Beneath Xcode is the amazing LLVM that provides a solid foundation. Previously, it was based on GCC. In the most simplistic term, think of LLVM as the .NET of Visual Studio. It allows multiple languages interoperability with the software interface, but LLVM did it in a much lower level and isn't specific for any single software interface. (This is a very dumb down explanation of LLVM capability and might not be true to its goal) It is being open sourced which spurs technologies like RubyMotion (Ruby to iOS/Mac/Android) and WebKit FTL JIT.

This bring me to Swift. Swift is technically 4 year old and designed by Chris Lattner, the creator of LLVM. I believe, my personal opinion, that Swift is born because optimising Objective-C with LLVM is reaching a point of diminishing returns. Objective-C is my favourite language but there are things that the compiler just can't statically analyse with high degree of confidence in Objective-C. A good example is NSArray or NSDictionary; You technically can store any object in a single array/dictionary, but its hard to be specific about the class/type of the objects stored at compile time. NSArray and NSDictionary is in NSFoundation API, rather and a language feature. I see no easy way to get around it, at least with my limited knowledge.

Swift is very strict about types and it learns heavily from other languages. That can only be good thing for Apple ecosystem. Not everything Apple does is to compete with others. They did it because they have set the foundation ready for this eventual transition. This is years in the planning, not out of the whim decisions.

Its a misconception for people to think of Apple technology of being incompatible with the overall technological ecosystem. But LLVM and WebKit have shown that Apple are extremely capable of building technology that play well and improve the overall technological ecosystem. Microsoft on the other hand haven't have such a good track record.

I welcome the more open Apple and I disagree with your second half of the comment as its a too simplistic and under appreciative view of Apple's technological stack.

Swift impressions 12 years ago

Thanks! I didn't know that. Its truly interesting that many of our languages is evolving and converging.

Swift impressions 12 years ago

ARC are less likely to get paused as memory release are amortised rather than gather and swept.

Also, LLVM static analyze is so good at figuring out your code path that it could effectively retain and release your memory for you.

Cyclic reference is its only flaw but its something that can easily solved through programmer awareness.

Swift impressions 12 years ago

Swift seems to be a very pragmatic language. It borrow and learn heavily from other languages, but it doesn't try to be promise anything big. It just introduce opinionated defaults which is safe and tends to be at least 80% of the implementor's intend, while providing alternative for the 20%.

An example is the switch case fall through behaviour of C. In Swift, by default, switch case no longer fall through, but if you need that behaviour, you can always add fallthrough keyword at the end.

When you think about the above behaviour, it seems so much more natural, and wonder why we have been keeping ourselves bitten by this C language construct and developing muscle memory to prevent it by having break, sometimes with a scope (All cases in a switch scare the same scope within C switch, if I don't remember wrongly).

Part of the switch example is solved in other languages (default intends and scoping), of course. But the subtlety of the fallthrough keyword gave me a strong impression. It felt that it should always be a opt-in all these while, rather than an opt-out as it have always been.

With my limited command of english, I feels that I would do it little justice to the language trying to explains some of its concepts like optionals & mutability hints. Some of these concepts only modify the existing solution only so slightly, but meaningful enough to be impactful.

It also doesn't take a stance in the OO and functional debates. It is both OO and functional. Staying as pragmatic as possible.

Finally, Swift is like a wolf hiding under the sheep's skin. Its a very very strongly typed language. It is very specific about it type. But half the time, you can ignore the type and write it like python or ruby. The magic was type inference, its kinda weird but I like that.

You can almost feel that Chris Lattner might have felt he is reaching the point of diminishing return while optimising LLVM for Objective-C. after all, this is a very old language. He done a great job all these while with LLVM but sometimes, the problem is something deeper. Swift is kinda like Objective-C 3.0 without the backward compatibility.

(P.S. Objective-C is my favourite language before Swift)

If programming language is a sword, Swift is just another sword, albeit one that's very sharp.