HNHacker News
TopNewBestAskShowJobs

kensoh

144 karma · joined February 18, 2017

Hi :) I'm Ken from Singapore - https://github.com/kensoh
submissionscomments
kensoh··on St13 Python package for trend analysis of financial markets
Link to a few sample outputs of different assets that were not used during its development - https://www.linkedin.com/pulse/technical-analysis-62-st13-py...
kensoh··on Show HN: TagUI – Automate web interactions using different native languages
Thanks @triangleman, the multi-human languages feature has just been added in the latest release. There'll probably be edge cases which I couldn't encounter during testing. The tool is essentially like a macros library to minimize writing code and make automation of UI interactions easier. Appreciate feedback from the community!
kensoh··on Show HN: TagUI – Automate web interactions using different native languages
Hi! I'm Ken from Singapore. TAGUI FEATURES • automate Chrome, Firefox, PhantomJS • visual automation of websites and desktop • write in 20+ human languages & JavaScript • Chrome extension for recording web actions • unzip and run on macOS, Linux, Windows • run by schedule, command line, API URL • advanced API / command calls to services

I left banking to do these open-source automation stuff full-time a year ago, partly out of interest and partly to dedicate time for self-directed learning. Tomorrow, I'll be moving back to full-time job at AI Singapore (https://www.aisingapore.org). It's a government initiative to build up AI capabilities locally. During my role there, integrating the tool (in its current form or a new form) with AI and ML capabilities will be part of my job scope.

kensoh··on Show HN: TagUI – Automate web interactions using different native languages
Thanks Ben, it's been a while since we last spoke :) Yeah it's probably ok, I've extended the language parsing engine so that users can write automation scripts in their 21 different native languages. The language definitions can be easily improved or added by users.

Here's the current set - Bengali, Chinese, English, French, German, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Romanian, Russian, Serbian, Spanish, Tagalog, Tamil, Thai, Vietnamese.

kensoh··on A Berkeley View of Systems Challenges for AI [pdf]
My background is in test automation (on user interfaces). Is it correct to say in ML the concept of test automation is irrelevant? Because during training and predicting the model is already being validated for accuracy and correctness.
kensoh··on First web automation company in Singapore – automate your repetitive tasks
Hi HN folks, I'm from Singapore and starting a company specialising in web automation.

Web automation basically reproduces manual interactions you have with websites so that the computer can do it repeatedly for you. Common use cases are automating manual workflows to improve business productivity, gathering data for business intelligence, and web testing for agile development.

Rates are competitive at $18, €15, S$24 for a simple automation project. The automation can be quickly developed off-site or live on a call / video. More details in the link. Competitors are welcome to post here to share their services or tips, and help bring the web automation domain forward.

My goal is to offer another option to the RPA (robotic process automation) industry practice which takes a top-down approach. Too much bloat in the production and delivery process which gets passed on as high costs to customers (and arguably over-promised expectations). That makes it only possible for very large companies to enjoy benefits of RPA.

kensoh··on Puppeteer: Headless Chrome Node API
Hi bluepnume, if you are ok, can you share how you manage iframes and popups? I'm using DevTools protocol through websocket directly to communicate with Chrome. Have to do a lot of context handling (frames) and using Target.sendMessageToTarget (popup windows) to deal with them. These 2 features seem to be the harder to handle parts of the interaction layer when doing automation with DevTools Protocol. Thanks in advance!
kensoh··on Puppeteer: Headless Chrome Node API
This's the Puppeteer issue tracking downloads - https://github.com/GoogleChrome/puppeteer/issues/299
kensoh··on Puppeteer: Headless Chrome Node API
Thanks ghetzel for sharing, nice work! I saw that you've made your own scripting language to make it user-friendly :)

Just went through your Friendscript syntax, the amount of work going into defining that language is impressive....

kensoh··on Puppeteer: Headless Chrome Node API
There was still some commits in early July but haven't seen new updates till date. Maintaining a browser project is mammoth task. Even for an established startup such as Segment you see that NightmareJS has lots of issues unreplied for months. I guess it's primarily because of a potentially large user base and all kinds of edge cases requirements from different users. And add on to that, suppose to work on all OSes. Nightmare.
kensoh··on Puppeteer: Headless Chrome Node API
I didn't follow that development. Can you share why Selenium maintainers chose not to implement headers? Is it that they want to restrict the tool to simulate what a normal user can do with a browser and not hacks such as overriding headers? Thanks in advance!
kensoh··on When did software go off the rails?
Thanks Jason, enjoyed your thought-provoking post. I'm reminded of Parkinson's law that "work expands so as to fill the time available for its completion". It's as if the software bloats up to fill up the available hardware capacity.

From a fundamental level though, my hunch would be how modern development takes modularization / abstraction to a type of extreme. Imagine a popular Node.js module and how many dependencies it has and how many dependencies its dependencies have.

It's not hard to imagine a lot more computing power is required to handle this. But that's ok to decision makers, computing power is cheap. Saving developers time by using modularized developments brings more cost/profit benefits, like what Dan said.

PS: the link on Visual Studio. Oh wow, what fond nostalgic memories it brings me :)

kensoh··on Puppeteer: Headless Chrome Node API
I just recently got to know WebPageTest. It even has scripting abilities! I'm just surprised why the project didn't enter into mainstream (in the sense that an average test automation guy like me will know).
kensoh··on Andrew Ng is raising a $150M AI Fund
Thanks Chuck for sharing, I enjoyed your sharing these details :)
kensoh··on Puppeteer: Headless Chrome Node API
Actually the release of Puppeteer is a really exciting development. I've been waiting for some time for something like this to happen. We've seen what happened to PhantomJS (almost 2k open issues and main maintainer stepping down without a successor), NightmareJS (lots of unreplied issues for months, probably the project is not a strategic part of Segment) and so on. In theory it is great for an individual or an established startup to drive a web browser automation project. But in reality, the scope of web browser automation simply gets out of hand very quickly. There are just too much edge cases to support for a fast-changing domain.

Being driven by a large commercial entity actually has a chance of making it work out. With the browser automation tool and the browser dev team being one team, there can be synergies not possible otherwise. When I spoke to CasperJS creator some time ago, I can understand why there will be burnout. Referring to the popular Chromeless project launched less than a month ago, there are already 150+ new issues and 100+ still open, and they already have enough pipelines for a few releases ahead. It can be a nightmare to manage.

There's just too many needs from a large user-base for such projects. I'm speaking from the context of test automation and general browser automation.

kensoh··on Puppeteer: Headless Chrome Node API
(Hi Tim, I use your GitHub corner :) thanks for making it) - There are still some differences between Chromium and Chrome, for example the case of playing back MP4 video due to paid licensing. But Puppeteer being easily configurable to use Canary or an existing Chrome installation addresses this gap.
kensoh··on Puppeteer: Headless Chrome Node API
Puppeteer automates headless / visible Chrome today. However, the foundational way it does this is through DevTools Protocol. I believe it might be browser agnostic in time to come. There are various (some successful, some failed) adapters for bridging DevTools Protocol to IE, Edge, Firefox, Safari etc. So I really do think supporting cross-browsers is not an impossibility.

But resonated with your point that there are just so much codebase / automation assets already written. Usually exploring new tools happens when a new project happens, rather than recoding entirely an existing project. For the existing code base, unless contributors from the community writes a parser to translate those to Puppeteer API?

kensoh··on Puppeteer: Headless Chrome Node API
This issue is being tracked here and moving along fine - https://bugs.chromium.org/p/chromium/issues/detail?id=696481

Default behavior by design is to block automated headless downloads for security reasons. But above issue tries to address this important use case.

kensoh··on The digital native is a myth
I'm born 1981, so according to the article I've just made it to be a native? What I do observe is this (this is over-generalization but seems true to me) -

Pre-internet era - people know little but do a lot and deeply

Post-internet era - people know a lot but do little and shallow

kensoh··on Testim – stable, self healing, end-to-end test automation via machine learning
Just got to know this, I have not tried it personally. It looks to be addressing a key pain point for test automation - the maintenance of existing test set to stay relevant to changing interfaces / identifiers etc. The part I really hate about test automation is the maintenance to always stay up to date with changes in the underlying webapp.
kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
There's a section in the readme which I'm not sure of - "Running integration Tests for example is much faster." I guess that gains is from the parallel executions. But for the integration testings, there is still work to be done to make a central controller / runner to distribute various tests to different Lambda instances, correct? If that's the case, is loadtesting using Chromeless be another use case? Just initiate in parallel and blast the app infrastructure. It won't be efficient in terms of costs as using non-real browsers but this is probably as realistic as simulating real users load through real browsers.
kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
I'm really excited for you guys, it looks like your implementation through AWS Lambda has struck a chord. I really can't wait to see how Chromeless maintainers & contributors give back to the open-source community by challenging existing ways to do stuffs and introduces new innovations in this space.

Yes perfectly, I believe for any one very serious about test automation or browser automation in general, they will make their own tool and bring it to market if there isn't already one that meets their needs. :)

kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
Wrote a post with the list of new entrants to browser automation using headless / visible Chrome -

https://medium.com/@kensoh/chromeless-chrominator-chromy-nav...

kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
This is a really cool project, but looking closer at the API and issues raised it seems that the features are being over-promised.

- "Do pretty much everything you've used PhantomJS, NightmareJS or Selenium for before".

The main features of those tools plus their ability to handle a large range of edge cases are built up over the years in production use and do not seem to be already in Chromeless. Also, Lambda costs can be a significant point of consideration for professional test automation with large volume.

Nevertheless, there's no turning back as flood gates have been opened and many developers are noticing Chromeless. I believe, with enough dedication from Chromeless maintainers, they may be able to channel the attention and contributions to shape Chromeless to be the main challenger to existing test automation approaches. That will really be a blessing to the open-source community!

The only catch I believe, is it may be easier for those existing tools to be made working in Lambda or implement a similar form of parallelism while still having their mature API, than for Chromeless to catch up to the state of maturity of those tools. But as they say, growth solves almost every problem, so issues like these may be ironed out through collaborative efforts from contributors/maintainers.

kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
[1] Chrominator looks interesting. jesg/gowan is the maintainer for PhantomJS GhostDriver, so the API looks extensive. Another project that I heard recently is Navalia [4], which uses GraphQL type of queries to run headless Chrome. Also worth noting is Chromy [5] by a Japanese developer; it's one of the earliest to market (released in early May). BackstopJS maintainer also looks to be in active development using Chromy.

[4] https://github.com/joelgriffith/navalia

[5] https://github.com/OnetapInc/chromy

kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
Looks like Google releasing headless Chrome is really shaking up the test automation domain. This is a really cool project :) The other day I saw another interesting and refreshing implementation using GraphQL - https://github.com/joelgriffith/navalia (not affiliated with the project, just got to know from a PhantomJS issue).
kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
By design, headless Chrome disables file downloads. This is being tracked at this issue to offer a way to enable that, and the issue seems to be moving along =) https://bugs.chromium.org/p/chromium/issues/detail?id=696481

EDIT - above is assuming downloading a file by simulating a click event to perform the download. there may be other workarounds by script injection etc to use XMLHttpRequest() for downloading a resource directly.

kensoh··on Show HN: Chromeless – Headless Chrome Automation on AWS Lambda
Really cool collaboration and project! :)
kensoh··on Alfred – AI home assistant – My domestic butler
You're welcome Erik, I really like how you put together all the stuffs in Alfred :)
kensoh··on Apollo – An open autonomous driving platform
Interesting, surprised that this isn't submitted yet. This is the project by Baidu. Thanks OP!
Page 1 of 3Next →