As a part of migrating our infrastructure fo AWS, we use CodeArtifact for hosting and caching Maven dependencies as well as mirroring the external repositories. Setting up CodeArtifact repositories is not too difficult, but making it work with Maven in a local environemnt is very chalengging due to a lot of AWS security constrains.| htr3n.github.io
The Cairo-backed node-canvas has been a pillar for many Node.js based projects that need to simulate a browser canvas on the server-side. One of our recent projects uses Apache ECharts to render some graphs. We have successfully shifted the rendering part of ECharts to the server side to ease the burden on the front-end Web browsers using node-canvas and jsdom. Thing goes well until we decided to migrate the rendering task to AWS Lambda Node.js 14.x. Unfortunately, AWS Lambda runtime environm...| htr3n's
Trying Chromium in macOS Mojave (10.14), I confronted with the popular issue regarding Google API key missing. After obtaining an API key along with client ID and secret, I put it on some shell startup scripts as following. export GOOGLE_API_KEY="your_google_api_key"export GOOGLE_DEFAULT_CLIENT_ID="your_client_id"export GOOGLE_DEFAULT_CLIENT_SECRET="your_client_secret" Even more careful, I also use launchctl setenv to ensure these variables are available for macOS GUI applications (usually la...| htr3n's
After a while merely working with macOS and Linux, I have recently decided to have an additional Windows box for some Windows-specific tools and development. I could be able to secure a second-hand Lenovo Thinkpad T430s on eBay for around 130 AUD, which is quite a decent price with CPU i5-3320M (2.6GHz), 4GB RAM, 14in 1600x900 LCD and its battery could last about two hours. I was away when the seller delivered the laptop and thus unable to check anything right after receiving. It turns out th...| htr3n's
One of my past projects relied heavily on XML based configurations and JSP technologies dated back to Spring Framework 3.x. It is still working fine after upgrading to Spring 5 and corresponding dependent libraries such as Hibernate 5, HikariCP 3 and Apache CXF 3.3. Exploring further into Spring ecosystem, I decided to give a shot on migrating to Spring Boot 2 whilst keeping most of the existing MVC (e.g. controllers, validations, JSP views) working. Most of the significant information are sc...| htr3n's
I started using Spring framework few years back in 2009 to develop demo systems for some EU projects. These projects featured a number of Web services some of which share back-end databases and some other talk to external services or WS-BPEL business processes. The dependency injection implemented in Spring works so well and on top of that, many other parts like Spring MVC, data access, transactions messaging and even some third-party libraries such as Apache ActiveMQ, Apache CXF and JBoss (n...| htr3n's
TL;DR:Spring Boot does not trim off the trailing whitespaces in *.properties that in turn might lead to some unexpected errors. As the Spring development team decides to not fix this issue, we can configure code editors to avoid some similar problems. The fun … Coming back working with Spring after few years, I was thrilled trying out Spring Boot 2 with its superb cool auto-configurations and many more. It’s a lot much more fun to work with than Spring 3 used in some of my previous projec...| htr3n's
Spring is a popular heavy-weight framework for developing Java/Groovy based applications. Its rich libraries and software stack can cover from front-end to back-end development. In 2009 I used Spring Framework 3 to develop web services and MVC + Hibernate portal for a fictious loan approval process. Despite a tad steep learning-curve, I could manage to get the services and portal up and running and integrated with third-party libraries quite smoothly. In my prevous projects, I mostly used Spr...| htr3n's
QuickLook is a simple but powerful feature of macOS that helps to preview the content of a file or folder in Finder without using any particular apps. This feature is very handy when we only want to have brief glance on a certain file or quickly examine its parts instead of opening a full-fledged app for that particular file. Even nicer, Apple provides API for QuickLook programming and enables the use of plugins that convert a certain document from its native format into QuickLook previewing ...| htr3n's
Hugo is a blazingly fast static site generator based on Go. My first experience with Hugo was truly pleasant. I appreciate the separation of contents, presentations, and site generation logics in Hugo that leads to less effort for maintenance or switching themes. On the run-time side, it’s also nice that Hugo is often delivered as a reasonably fat executable binary (about 30~50 MB). We almost do not have to install anything else to make it work (although this is not entirely true since Hugo...| htr3n's
I have experienced a number of different Mac systems, ranging from the old white MacBook 2006 to iMac and MacMini 2010 and lately MacBook Pro 13" and 15". From time to time, Time Machine has become extremely handy for transferring my data from the old to the new machine. Nevertheless, a lot of changes, mostly for software development, have often been ignored or reset to the default values. As a result, I often find myself searching around over and over for some desirable settings. Thus, this ...| htr3n's
I have used Apache CXF 2.2 to develop Web services for some R&D projects that I took part in. At that time, it was a choice between Apache Axis/Axis2 and CXF (formerly Codehaus XFire project). I eventually decided to get along with CXF due to its simplicity, quite clear documentation, good support for document-style Web services (+) and many standards, especially JAX-WS and JAX-RS. Moreover, Apache CXF also embraces smooth integration with Spring Framework (big plus for me as I was using Spri...| htr3n's
Gentelella is a very nice and gently-looking Bootstrap based admin theme developed by Aigars Silkalns (aka puikinsh). It can be integrated into several Web application frameworks. This post is one of my development exercises in which Gentelella is used to decorate a Laravel 5 based Web application. This task is part of building my PHP based framework LaraMod. Laravel can act as backend for any Web application. At the moment of this writing, Laravel includes several good supports for popular f...| htr3n's
Node.js is an increasingly popular and widely used JavaScript runtime nowadays. One of the important aspects of Node.js is to manage the dependencies among software artefacts. Better dependency management would advocate modularisation and decoupling of software components. Since the dawn of Node.js, several package managers have been developed, notably, npm, anymod (formerly component), volo, ringojs, bower, yarn, pnpm, to name but a few. In this post, we shall walk through the two tools that...| htr3n's
Yesterday I got notified from Github for two opening issues of the Hugo’s theme hyde-hyde I have ported and developed further. The newest one is reported by jdayton3 (Jonathan Dayton) on wrong dates shown up. The issue seems very strange and difficult to spot. It took me a while to research around and found some relevant reports by Paul Heinlein and Dana Woodman, that Hugo date/time formatting is internally based on Golang, and therefore, uses a smart but confusing convention. It’s funny ...| htr3n's
Webpack is a static module bundler for Web applications. It analyses and processes the input application and generates output bundles. The design of Webpack architecture is highly modularised and extendable. In this post, I share here some notes on major aspects of Webpack since I’ve started learning it. Figure 1. Webpack overview [source] Main Concepts Configuration Webpack’s configuration is conventionally defined using a file webpack.config.js. It is a JavaScript/Node.js source file. A...| htr3n's
To commence my journey in software development, I have looked for a Web framework to build my personal blog. I have started writing blog posts mainly using (Multi)Markdown and plan to migrate other posts to Markdown too. Thus, it’s rather natural to go with built-in or first-class support for Markdown to minimise the migration effort. I have not foreseen any great use of extensive backend storage and computation thus far. Therefore, I narrowed down my search to static site generators with t...| htr3n's
Laravel is an amazing emerging, well-designed and well-developed PHP framework. It is currently under active development and has been among top Web development frameworks. For a simple development project, the structure is totally fine. Nevertheless, you might not want to mix up your source code and resources with Laravel’s except some really necessary configurations. Moreover, you might also want to organise your project into submodules that are assigned to more than one team/person such t...| htr3n's
Bài viết sưu tầm trên Internet về các hình thức ngụy biện khác nhau. Thay đổi chủ đề Công kích cá nhân (ad hominem). Đây là một loại ngụy biện phổ biến nhất, nguy hiểm nhất, và có “công hiệu” nhất, vì nó tấn công vào cá nhân của người tranh luận, và tìm cách trốn tránh luận điểm của cá nhân đó. Hình thức ngụy biện này thường xuất hiện dưới dạng: Ông A phát biểu về một vấ...| htr3n's
Together, Apache HTTP server, PHP, and MySQL form a powerful and popular combination for Web development. MacOS are often shipped with pre-installed versions of Apache HTTP server and PHP but these are often outdated and merely customised for macOS. The well-known bundles *AMP (e.g. WAMP for Windows, LAMP for Linux, MAMP for Mac) are commonly used but also considered a tad bloated for the beginners like me ;). After few years of Java development, I turned myself into Web development, and in p...| htr3n's
Bài sưu tầm về cách xưng hô với họ hàng nội ngoại lưu lại đây thể tham khảo về sau. Với họ nội (tức là họ hàng bên cha) Các anh của ba và vợ của họ = bác Các em trai của ba = chú. Vợ của em trai của ba = thím. Các em gái, chị gái của = cô. Chồng của em gái, chị gái của ba = dượng. Với họ ngoại (tức họ hàng bên mẹ) Các anh, em trai của mẹ = cậu. Vợ của anh trai, em trai của mẹ = m...| htr3n's
Thói quen khen ngợi con giỏi hay khả năng sẵn có của con Mình để thấy không chỉ cha mẹ Việt mà cả cha mẹ người nước ngoài nữa thường hay con “giỏi quá” “thông minh quá” “sao con làm nhanh vậy”. Mới hôm qua thôi, mình để ý có một bà mẹ đố đứa con hơn 2 tuổi của mình “con chó kêu như thế nào”, đứa bé trả lời “gâu,gâu”, thế là bà mẹ khen luôn “giỏi quá”. Ngày trước ...| htr3n's
Một số transitional words rất hữu dụng trong việc nối hoặc liên kết câu hoặc đoạn văn trong tiếng Anh. Để tránh sự lặp lại gây nhàm chán, các transitional words tương đương nên được dùng xen kẽ. Addition also, besides, furthermore, in addition, moreover, again Consequence accordingly, as a result, consequently, hence, otherwise, so then, therefore, thus, there upon Summarizing after all, all in all, all things considered, briefly, by and ...| htr3n's
LaTeX cho phép tạo các trích dẫn (citations) để tham chiếu đến các tài liệu tham khảo tương ứng. Các trích dẫn, tùy theo định dạng (format/style) của tài liệu, có thể dạng số như [1, 2] hoặc dạng chữ như [Lamport94]. Một ví dụ đơn giản như sau \LaTeX{} \cite{latex} is a document preparation system for the \TeX{} \cite{tex} typesetting program. sẽ tạo ra kết quả LaTeX [1] is a document preparation system for the TeX [2] t...| htr3n's
Some handy and well-aimed investigations and optimisations could enhance the performance of your favourite ZSH.| htr3n.github.io