Bài đăng

Đang hiển thị bài đăng từ 2018

Chuyển qua nhà mới - Medium

Hi All, Qua thời gian sử dụng thì thật sự thì mình thật sự rất thích Medium: - Tính năng vỗ tay độc quyền để like bài viết. - Responsive tuyệt vời, đối với cả người đọc và người viết. Blogger không thể bằng, đặc biệt khi post bài mới bằng Blogger. - Cơ chế hoạt động hợp lí, UX quá tốt. - Theme màu xanh hợp ý mình. - Khả năng quảng cáo khá tốt. Giờ mình search toàn ra bài đăng trên Medium. - Kiếm tiền từ Medium cũng dễ và cơ chế hợp lí hơn. Tuy Blogger khá tốt, free, có nhiều thiết lập nâng cao giúp mình dễ tùy biến và quản lí Blog. Tuy nhiên vì những hạn chế trên, khiến việc tiếp cận người đọc khá khó khăn nên mình đành phải dời qua Medium. Dù sẽ rất tiếc vì đa xài Blogger khá lâu. Nhưng công nghệ phát triển thì phải theo thôi. Mọi người xin vui lòng truy cập link mới cho blog này của mình: https://medium.com/my-sapui5-programing-pratices  Tạm biệt Blogger.

[Backend] Best practice working with HANA XS on Cloud Platform

Hình ảnh
Hi, I will share some best practice that took me hour to figure out what's solution. Perquisite: I follow the tutorial series here , so things are basically set up. 1/ Cannot add more column to table  After I completed all the tutorial series, I've got a XS service expose table data as OData service. And I can use the service to bind onto UI in SAPUI5 application. Then I come up with idea to add more data & relation so that I can do more with my application. That's when I got error: Even I add one column to my table, added data using SCV import. The 2 files are saved & activated successfully. But the data didn't returned in the Data service. When I check in the catalog of the service, it look like this (the new column "INSTOCK" does not have data): Issue with "INSTOCK" column I've thought that I cannot modify the structure of table during the database is up & running. So I tried to restart the database but it didn&#

[AngularJS] pain point for new commer: camelCase directive & snake-case HTML markup

Hi all, I'm new with AngularJS in one project. The different of a directive in Javascript code & HTML markup has caused me lots of trouble. It took me one day of work just to found out the reason is the type of one HTML markup. The story: I used the library of the material table from  https://github.com/daniel-nagy/md-data-table#api-documentation Things are good. Only one thing not work is that pagination total number. I've checked everything correctly with the document in that link. After a long time investigating all the possible reason, I end up finding out that I'm using an HTML markup in camelCase  as mdTotal (which get from the documentation ), instead of writing it in s nake-case as md-total . I shall remember this forever when working with AngularJS, and so do you. ---V---

[hardward] Test & Review Multi-devices Bluetooth Keyboard Logitech K480

Let’s try the performance of this keyboard. Well, to be honest, the keyboard is not really good at typing. The keys go no really smooth. The feeling is hard. Don’t know why Logictech can create such keyboard with best key feeling like this. Is it because they try to put the window & Mac keyboard inside one? That have different ASCII code & require more electronic board under to control it? I guess it’s the only reason. This keyboard is not cheap. Which mean it should deliver great typing experience, but I didn’t get it. The keyboard seem like a old keyboard which have a really not good feeling when type.  Shall I return? The responsive is OK, not really fast. Ah maybe the responsive (time from key pressed till it display on screen) affected by the key typing experience. Since the keys are hard to press down (unlike Mac keyboard or chipset keyboard), I feel it take more time to me to type the text. But anyway, it’s far more cheaper than a genuine Mac keyboard, so

[JS] [npm] Run npm behind the corporate proxy

I've just had a very similar problem, where I couldn't get npm to work behind our proxy server. My username is of the form "domain\username" - including the slash in the proxy configuration resulted in a forward slash appearing. So entering this: npm config set proxy "http://domain\username:password@servername:port/" then running this npm config get proxy returns this: http://domain/username:password@servername:port/ Therefore to fix the problem I instead URL encoded the backslash, so entered this: npm config set proxy "http://domain%5Cusername:password@servername:port/" and with this the proxy access was fixed. Note: - It's better the password has no special characters . - Sometimes, the https-proxy should use the same http :// instead of https :// Details can be found here . ---V---

[invention] Milk box of LIF - small invention but wide affect

Hình ảnh
Normally, in the past (and till now), many milk box (made by paper) is cover by 2 cord: one need spin & 1 need to cover the milk inside. With this type, if the user wants to get the milk inside the box. They need to take off 2 cords: 2 steps required. With the innovation from LIF: user needs only one step: spin the outer cord. Since the outer cord is linked with the inner paper cord by a hard plastic key. So if customer spin the outer cord, the key will spin as well, which open the inside cord at the same time. This invention now helps millions of customer save effort to open the milk box every day!!! ---V---

[UI] [network] Chrome - allow cross-origin (CORS) for dev purpose

For windows, press Window, type run,  open RUN utility window. Enter text: chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security Details can be found here . For Mac & Linux, check here . ---V---

[UI] Front end - download font on a website

Hình ảnh
You see an interesting font on a website and want to have it to test with your site? Follow below step to get it. Disclaim: For commercial purpose, kindly ask the permission from the owner of the font. 1. Open the developer tool 2. Go to source tab. 3. Find the font you need, usually, it's in folder /css  or / font 4. Right-click on the font name, find the option to download it (usually: 'open in new tab') ---V---

SAP Web IDE - How to let gitignore file ".user.project.json"?

Hình ảnh
Question: Hello everyone, I have one weird problem with git system in SAP Web IDE. As you can see in below screenshot, I have one file ".user.project.json" that has been changed. **I don't want to include this file into my git repository.** I tried several ways to add the name file into .gitignore file but it does not work. The file still added to the repository. The ".user.project.json" is used to store user data in web IDE only, no need to be added to the project git repository. When many developers work on the same project and push the ".user..." file along with the commits, it will cause conflict because each developer's ".user..." file is different. How can I surely add this ".user.project.json"? Thank you in advance, Victor. Answer: After some hour looking for the answer. I've found the solution: 1. User git panel to un-track & ignore the file you want. (in this case is ".user.project.json&qu

[saphcp] [iot] Create IoT applications with SAP Cloud platform & Tessel kit - Common Issue & Solution

Hình ảnh
Hi, You can follow the full tutorial here: https://www.sap.com/developer/how-tos/2016/09/iot-tessel.html However, you may get some issue during following the tutorial (as I did), then come to this post to find the answer: Cannot use the Ambient module: attempt update but running forever Reason : Still not sure why this happening. But based on Tessel GitHub page, the reason may come from the old firmware of the Tessel board & the ambient module. Solution: this is a workaround for now. Instead of connecting the Ambient module to Port A of Tessel board. Connect it to PORT B of the board. Remember to change the JS code in the ambient.js also. The Tessel board & module should be set up like this 1. The 'iotmms' application has status "Starting" forever Reason: The application needs to bind with one database in Hana cloud. But it seems that the tutorial did not mention clearly about this prerequisite. Solution: Add a schema name "my

[sapui5] [deployment] Error when deploy project from Web IDE to ABAP Server

Hình ảnh
1/ Cannot find index.html file  This is usually caused when you override the folder that was created by Eclipse before. Let take back a little in history, when sapui5 is new and not yet have their own Web IDE. Developer needs to use Eclipse to develop & deploy to ABAP server. And the structure of webapp in Eclipse is different than in Web IDE, this leads to the issue you're having. Solution: To fix it, delete all the configuration relating to the old folder structure created by Eclipse in configuration files (which are the " UI5..." files) . The file created by Eclipse is usually the file inside WebContent folder. ---V---

[sapui5] [list] [fragment] Fragment/Dialog binding not working

Hình ảnh
Possible reason: You haven't set model to that dialog/fragment. This is because of the ui5 framework concept: A new fragment will have its own model. If you want that fragment has the same model as the view. Please use the below command line: this.getView().addDependent(this.oPictureDialog); ---V---

[sapui5] [odata Model v2] use oModel.metadataLoaded().then instead of oModel.attachMetadataLoaded() to avoid unexpected error in runtime as Fiori launchpad

Hình ảnh
Hi, The 2 below code seem to be similar: 1/ Use attachMetadataLoaded() 2/ Use private property: promise metadataLoaded() However, they're different if you are running in Fiori launchpad, as the moment I wrote this post. The function of the first approach (using attachMetadataLoaded()) will not be called. You need to use the second at for now. And actually, the ui5 template go with the 2nd one. I've tried the first approach & it did trouble me a lot, so you should stick with the best practice template from SAP. ---V---

[cloud-platform] Deploy your first application to SAP Hana Cloud platform - Cloud Foundry envionment

Hình ảnh
Hi, First, you should go through the official Help document from SAP: (1)  https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/e3d82674bd68448eb85198619aa99b6d.html#loioe3d82674bd68448eb85198619aa99b6d When I tried following this tutorial on 1 Jan 2018, it has updated the new UI in Cloud Foundry cockpit, so I wrote this post. There's no binding service that the help document (1) above mentioned. Instead, you need to navigate to Service, choose the  PostgreSQL service . The cockpit will route you to the page to manage PostgreSQL. Once there, navigate to Instance (the item on the left toolbar). The UI that I tried: Create New Instance , you be guided through some steps to create a new database instance. When finished, the wizard will ask you if you want to connect the instance to an application. Connect the instance to the demo application (hello-nodejs) that you have done in the sap document help (1). After finishing creating the database,