DevKini
265 subscribers
40 photos
5 files
559 links
Info and Updates on software development and general computing.

Info dan maklumat terkini berkaitan pembangunan perisian, programming serta IT/Komputer secara umum.

Untuk sebarang maklum balas, boleh hubungi @devkiniadmin.
Download Telegram
So two of our fellows take a look into Dartlang and here are their comments:-

* Dang. Futures and streams are literally everywhere in dartlang.
* What I like about Dart core libraries is that async/await is built into the libs from the start. So all the API seems very natural.
* In .NET, when async/await was introduce, there would be 2 version of methods, like ToList() and ToListAsync(). It was just so not pretty. And some library do not play well with async/await, then we need to wrap some async code as sync etc.
* I'm looking at dart:HTML, dart:io, the builder code, etc. Everything has async/wait, futures.
* And asynch behaviour is very consistent. I got tripped a bit when I found out dartlang has two event queues.
* The wrapping seems to be very straightforward (referring to wrapping async code as sync above).

FYI, Dart also the primary language being used in Google Flutter mobile framework.

Join this channel @devkini for more insight on programming and software development tools by our experienced fellows.

https://www.dartlang.org/
Tech meetup this week:-

* Golang Malaysia - 27/03 (Tuesday) - Tuxuri's office, Unit 09, Level 12, Tower 3, UOA Business Park (https://web.facebook.com/events/951134985051141/).

* FreeBSD Meetup - 29/03 (Thursday) - Level 26-27, Menara 3 Petronas, Persiaran KLCC (https://wwcodekl-freebsd.peatix.com/)

* Startup/Developer Meetup - 31/03 - Bitspace, Cyber Jaya (https://www.startupdeveloper.my/).

//@devkini
How docker is useful to me ? I'm not doing any serious work in PHP anymore but now and then, we have customers or friends asking about problem in their PHP app. Since I don't have proper PHP environment setup anymore, having docker is super useful to quickly test issue with these PHP code. //@devkini

http://metak4ml.blogspot.my/2018/03/php-with-docker.html
One good lesson here. Never serve user generated content at the same domain of your main website. This is very common practice actually.

Let your website is www.easyphone.com, and you allow user to upload a profile picture, probably you'll serve the profile picture from something like www.easyphone.com/images/user/xyz/profile.jpg. That's wrong.

If users can upload HTML documents and have them hosted on your application’s primary domain, that’s an excellent way to setup phisihing opportunities for attackers. Serving user content from your domain can also fool users into thinking malicious content is actually legitimate content from your company, as the FCC found out last fall.

Users could upload malicious javascript that would be run by the browser with the same trust level as your application’s javsacript code, allowing it to tamper with your site’s cookies and potentially steal user’s credentials, sessions or other data.


Always serve the uploaded files from different domain like www.ep-content.com/images/user/xyz/profile.jpg. //@devkini

https://blog.hartleybrody.com/startup-security/
Few days ago my friend released new golang library, called gubrak. A weird name isn't it?

This library is useful for solving common programming task, very similar like lodash or underscorejs but for golang, I think you might find this library useful.

Currently there are around 46 available functions. I'll keep adding more functions during spare time.

One thing special from gubrak, it has very detailed api documentation.

Creating modular functions that accept various type of data is pretty hard in golang, since this language is statically-typed. but it's still possible using interface{} and reflect. And that's the first reason that triggers gubrak creation.

While working on this library, he learned 3 things:

1. laws of reflection; read more about it at https://blog.golang.org/laws-of-reflection

2. Vue JS; he use this library to build the landing & documentation page from scratch. vuex, vue-router, He started to fell in love with it haha

3. TDD; He did follow TTD paradigm, and it's fun! He can say this library has the most intensive test compared to other libraries created (around 2600 line of codes just for the tests!)

Please, have a look :D https://gubrak.github.io
Daily git command - show all changes to a single file:-

git log --color=always --follow -p -- filename | less -r
Forwarded from Ahmad Syazwan
4 Jenis bug yang biasa dihadapi oleh programmer:-

Bohrbugs - Ini yang biasa. Biasanya dengan hanya ikut step yang dinyatakan oleh pengguna yang menemui bug ini, programmer akan dapat "reproduce" bug ini dengan mudah.

Heisenbugs - Bug jenis ini biasanya hilang, atau berpindah ke tempat lain bila programmer cuba errr ... debug program tersebut.

Boleh baca artikel ini untuk mengetahui 2 lagi jenis bugs yang biasa ditemui. //@devkini

https://opensourceforu.com/2010/10/joy-of-programming-types-of-bugs/
"Software developers should be willing to turn down jobs that pay little and also be willing to improve their own skills and move onto positions at other companies that pay more."

We talked to Daisuke Horie (Dice), VP of Engineering at Peatix and asked few questions related to software engineering career. Read the full interview at Xoxzo's blog https://blog.xoxzo.com/2018/05/15/interview-with-daisuke-horie/.

//@devkini
Forwarded from Kamal
Q: What is Microsoft doing with Go?
A: Microsoft is using Go internally to power pieces of the Azure infrastructure, like AKS [Azure Container Service]. For customers, Go is definitely a first-class citizen on Azure – you can use Go to make calls to the Azure SDK and provision services and infrastructure. You can also use Go to call into those services and consume things like Cosmos DB, other databases, message queues, any of the services that Microsoft provides. The Azure team has been investing in a great experience for Go developers.

https://open.microsoft.com/2018/02/21/go-lang-brian-ketelsen-explains-fast-growth/
Stop disabling SELinux, please.

https://stopdisablingselinux.com/