Blog

Gearing up for Black Friday

Black Friday is only a few days away. The Wife already went on her spree on Singles Day (11.11), but I much prefer Black Friday sales as the things sold on Black Friday is more aligned to what I shop for as opposed to 11.11. The former is more “Western”, and platforms that I enjoy shopping at like Amazon and Steam will inevitably be inundated with all sorts of sales.

I think the difference between my Wife and I is that she likes to go for clothing such, whereas I prefer shopping for electronics. Also, the AliExpress/Taobao platform gives the best deals for clothing, but Amazon and Steam has been proven the best for electronics / digital games.

Despite Amazon Prime dropping in Singapore, the catalogue is a lot smaller than Amazon USA, and in case you didn’t know, if you spend more than $125, delivery to Singapore is free for anything shipped and sold by Amazon (not a third party seller). Just be mindful to keep each transaction under $400 or you may end up getting taxed. This is particularly so when getting things like PC Components.

Don’t forget that in the end it’s best to be prudent and it does not mean that just because something is on sale it is a “must” to buy. Assess your financial situation and really think if you want/need it.

Now, here are a few things I’ve done to prepare myself for the coming weekend:

Fill up your wishlists

Most shopping platforms (Amazon and Steam included) have the wish list functionality. Use it. Categorise the things you are looking at and sort them if you like.

On Amazon, I created a category for “PC build” as I was looking at getting individual components. Come Black Friday / Cyber Monday, I can see which components that I wanted will be on sale. Amazon also does a neat job of informing you if the price drops, and by what percentage from the time you added the item to your wish list. This ensures you are really getting the best deal.

On Steam, they do the same thing except they do not allow you to have different lists. I think having the notifications for items which you are not sure you want to buy unless it is really discounted helps you make the best out of the deals.

Do your research

It is best that you do your research on any item you might consider getting. The last thing you want is an impulse buy which you regret later even if it is heavily discounted.

One thing I do is research an item (read reviews, check detailed specifications etc) and then sort them into categories. For example, I might be very sure I want that SSD, but not so sure about the CPU. I put the SSD in the “very sure” list, and the CPU in the “maybe” list. This allows me to easily say I should only get items in the “maybe” list if it is very heavily discounted, and avoid it if it is just a token amount. It also helps if you check some sites that show historical trends and prices for each item (use camelcamelcamel for Amazon and SteamDB for Steam) to make sure you are really getting a good deal.

Manage your expectations

The last thing I need to prepare is myself. The thing about Black Friday sales is that it used to have such amazing deals that I am now hard pressed to think what I see is a “good deal”. Sometimes, despite the discounts, I cannot bring myself to pay that kind of moolah. 10% or 15% don’t seem to do it for me unless it falls into single digit range for something that is usually double digit.

I think the biggest rush is when you find something at a steal, and it’s something you can enjoy and would have gotten anyway. Sadly, ideal situations like that don’t happen all the time. However, I think by preparing for Black Friday, the chances of getting that rush is certainly a lot higher.

Now, I wonder if my Wife would let me buy all these…

Challenges and benefits of setting up your home network

In an effort to make my home a more comfortable and enjoyable place, I’ve endeavoured to make the best of technology. I’ve previously posted about setting up my home network, and the experience was enlightening, but at the same time disappointing, as I realized that the current home solutions don’t quite work as well together as I would have liked.

LAN issues

Firstly, despite trying my best to plan out the entire network, it is not possible to plan for every contingency. Unfortunately, one of my LAN connections had issues which can only be attributed to a problem during the cabling. Now that everything is nicely hidden, it is simply not possible to replace / repair it without major hacking and rework… all for just one piece of wire.

The sad part is that this end point was exactly where my desktop is located, and so the most important piece of hardware that requires a LAN connection ended up without, which was truly frustrating for me.

Thankfully, my multiple wireless access points approach worked well, and I simply connected my desktop to my 5G network by getting a USB Wireless Access dongle (because desktops don’t come with that built in usually). I ended up with at least a solid Wireless AC connection for my desktop. Since my UniFi Wireless Access Point sat just outside the door, the results were more than satisfactory.

Having too many devices

I started adding more and more devices to my network, starting with my new Samsung Smart TV. Smart TVs are advanced enough now that they have built in software that covers Netflix, DLNA playback and even a web browser. However, after using it for a while, I discovered that the built in options were less than ideal as I had problem streaming some videos that don’t support mobile browsers. The thing that did work well was Plex streaming, but that required me to keep the Plex server running (and in my case it was my desktop which is not exactly power efficient).

I also had my Mio TV Set Top Box courtesy of Singtel, and it had to be connected directly to me router as there were special settings for IPTV to work. Thankfully, my router came with those settings built in, and I had to use up one of the LAN ports for my router.

I also added a few CCTV cameras, but because I wanted to record what was captured, had to get a device to store what was streamed.

I still have a PS3 in my TV console.

To make it easier to stream stuff, I decided I needed a laptop as a central hub connected via HDMI to my TV.

Despite having 8 LAN ports on my router, I was already maxed out. I had:

  1. One used to connect to my second Wireless Access Point
  2. One reserved for my phone (router settings – can’t be changed if I have #3)
  3. One connecting to Mio TV in the living room
  4. One connecting directly to my living room TV
  5. One connecting to my master bedroom TV
  6. One for my CCTV recording device
  7. One for my PS3
  8. One for my Laptop hidden in the TV console

I had to get a network switch to alleviate the issue of too many cables running from my TV console to router, and free up a few of the LAN ports at my router to make room for future expansions. I haven’t even factored in the LAN points around the house, and some are currently not connected to the router, which is fine for now since it’s not used. I managed to find a TP Link 8-port switch for $35 from Amazon Prime Now, which I think is a pretty good deal, but they, sadly, no longer sell them.

One System to Rule Them All

In my setup, I was trying to make the living room TV the focal point. Whether it was games, watching a show, accessing CCTV footage, all of them required a system to manage, and so the best way to do everything was to have an actual computer connected directly to the TV. Thankfully my company gave me an old laptop, so I set it up as the system in the TV console that could do everything, from streaming dramas and movies to gaming.

Of course, the system was not really powerful and was more so not built for gaming, but thanks to Steam Home Streaming, I could run games from my desktop to the TV, allowing me access to my entire catalogue of Steam games at my TV. Suddenly, I could enjoy many of the X-box to PC releases, and Steam even allowed me to connect a PS4 controller directly, making it a perfect setup! Games like Final Fantasy 7/8, Tomb Raider, Broken Age, Lego Marvel Super Heroes, and the Bioshock series, all played on my couch!

What’s Next

I really wanted my place to have an awesome system to enjoy both solo and with others, and as a gamer, it is obviously exciting for me to be able to build it!

Building a small form factor PC is what I’m looking forward to next to enhance my current setup. Replacing the laptop with a powerful system that runs a GeForce 1080 TI would make the setup VR ready! Plus, 4K resolutions for games and movies are would be no problem!

And then there’s the NAS drive to keep data available on the network. It would lessen the need for my wife to worry about space for her photos and videos.

But until then, at least I know that the time and resources invested into setting up my current network and systems have been worth it. If nothing else, I’m enjoying this aspect of making my house a better home.

(Re) Learning how to code in Python with Django – Part 2

Django Apps

A Django project is typically formed from several Apps, each pertaining to a certain function within a website. Usually, I would expect to create one App for say, site updates and announcements, another App for commercial transactions with a shopping cart and checkout functions, yet another App for a forum etc.

Django comes with a built in Admin Site App, allowing trusted site administrators to quickly create, edit, delete and otherwise manage content. This is considered a common function that is required for just about ANY website, and covers things like management and authentication of users, display and management of forms, input validation, and translating all that into SQL statements for updates into the database. Having this by default really saves a lot of hassle when building a website and is a key feature available in the Django Framework.

Overall, since Apps can be made up of other Apps, it is easy to take a top down approach in designing the overall website functions, as breaking them down into Apps (or smaller Apps within an App) would make it much easier to architect the entire system. The team can then focus on individual Apps which will generate the functionalities required.

Key things for Apps:

  1. Use “python manage.py startapp name_of_app”
  2. Edit “settings.py” at the INSTALLED_APPS line with name_of_app.apps.Name_of_appConfig

Every App typically embodies the MVC structure which is what makes Apps so powerful because it is “self-sufficient” and can thus be replicated and utilized in different projects, with some minor tweaks done to the settings.

The MVC Structure

One of the coolest things about frameworks, is the ability to manage data separately from the logical layer, as well as the presentation layer. The MVC structure really makes things easier as you can split the management of all three layers making it cleaner and faster to make changes.

Models

Models are the foundation for data that drives your website. Every piece of dynamic data has to be defined in a model and stored in the database. Being able to manage how data is structured is quite typical in a framework, and Django does this very well by providing migration functions. Changes to the database level structure can be affected by using the “check”, “makemigrations” and “migrate” commands. This ensures consistency while developing where you can choose to update a column of a table for example by simply running these commands.

Of course, Django’s models can also have additional attributes which is on top of the database layer, making them extremely flexible.

Recap

So just a few key things for me:

  1. In models.py of an app, use following syntax
    class Name(models.Model):
     field = models.TypeField()
  2. Add this to Model Class to display human readable objects in models
    def __str__(self):
     return self.field
  3. To add a model to Django Admin, in admin.py, use following syntax
    from .models import Modelname
    admin.site.register(Modelname)
  4. For date, time and numbers data types (non-string), to allow blank fields, use
    field = models.TypeField(blank=True, null=True)

Having a growth mindset

I've been thinking recently about how I haven't been progressing as much as I would have liked to these past few years. Part of it could simply be attributed to the fact that I've had a pretty eventful few years getting hitched, getting my own place etc. However, a conversation today triggered my memory of how I told myself I would keep growing and keep improving, and I need to make sure I get all the help I can get to do that.

One of the key factors for growth (and I mean the kind of growth that includes the expansion and maturity of your mind and soul) to me, is actually what you constantly feed your mind with. This is one of the reasons I love reading. It expands your thinking and mind, and encourages new ideas, new perspectives. I love it so much, that I quite often hear complaints from the wife that I'm too engrossed in reading, and "neglecting" her (and I assure you I have absolutely no intention of doing so).

The challenge with reading, though, is that once you reach the end of the article / book / text, you are usually stuck with the "what now?" question. For example, block chain is the newest topic that's hot everywhere, and reading up about it is really interesting and insightful, but after you have read and understood it (at least a bit more than before you read it), what do you do now?

To me, I always reflect on how this can impact me. In the case of block chain, the obvious answer to "what now", is "so should I start investing in Bitcoin / Etherium?" Coming to this point is something that I can definitely do fairly consistently, but it's the next step that stumps me quite often.

You see, I have done a lot of introspection, and knowing myself, I always need to talk to someone about these new ideas, and gain further perspective on how / why we can consider pursuing them further. The problem, however, is that you can only have those levels of sharing with someone who has the same level of interests or thinking as you do, and that requires you to have a group of forward thinking, worldview challenging, and matured people around you, consistently interacting and influencing you. It's very true that you should choose who you hang out with because they will either challenge you to grow, or cause you to stagnate in your thinking.

In a way, I seek assurance in any new venture by bouncing my ideas off of others, and it is therefore crucial and essential for me, as a person, to always have people to talk to who can elevate my thinking and perspectives. I need mentors in my life to be able to help me grow in many areas. It is this understanding of myself that leads me to feel fairly frustrated at this point because I feel I don't really have many people like that in my life now, and it is not for the lack of trying.

Just to clarify, I'm not talking about getting someone to tell me step by step what to do, but in any kind of mentoring or discipleship, a lot is imparted simply in the constant interaction because the reinforcement of new ideas happens then. For me personally, I need a certain level of reinforcement to induce an action on my part – again because I understand myself not to be someone who can throw myself into something just like that. A lot of thought needs to go into it first.

So now comes the most difficult part: Actually finding the right people with the mindset and thinking who can, and more importantly, are willing, to build that relationship and connection. It might sound a little selfish, but I'd really like to be able to find someone to encourage me and help me grow. All I can say is that on my part, I think I can also help others grow and sharpen their minds and thinking as well, assuming we can find that common ground.

It would be an investment of time and effort from both sides, but I do believe it is well worth it, if growth is a priority.

(Re)Learning how to code in Python with Django – Part 1

So I've decided to try (again) to learn how to code a full Web Application in Python using Django as the framework.

The number of false starts in my endeavour is enough to make me discouraged, but I just can't totally let it go and I seem to keep coming back to it. Somehow, the desire to actually build something is still there, and I'm just hoping that this time I get somewhere. I'm blogging this experience in part to keep myself in check, and to also document some of my learnings so that I can always come back to it.

I would've loved to be coding on a MacBook, but I don't have one and until I reach a stage where it would be more productive for me to get one, it would make more sense for me to continue using the existing Windows based laptops I have.

First, a few things I've (re)learned:

  1. Use pip to install virtualenv in Windows Subsystem for Linux (WSL or Windows Bash). Using Virtual Environment to manage Python Environments and versions are essential to making sure your development environment is consistent. It should essentially be part of your workflow.
  2. Context syntax for multiple variables is as follows: { 'var_name': 'value', 'var_name2': var}
  3. Context syntax for dictionary is as follows: {'dictionary_name': {'var_name': 'value'}}
  4. Use "django.shortcuts import render" and then "return render(request, 'template.html', {'context': bar})"

Ok that's about as far as I got. Considering it's only a few hours in, with so much more to go, I really needed to put this down so I can make sure I keep going. At least it's a start.

Next step is Apps and Migrations within a Project.

Setting up my home network

One of the cool things about doing up your new place, is the opportunity to plan out how you would like your home to be. This applies to the look and feel, but I think also the functionality that you can get out of it. When we purchased our place, I wanted to also try and fix some of the prevailing problems I’ve had ever since I started renting my first room – namely how to minimize running wires around the place. I decided to seriously explore how to go about setting up a home network.

The first thing I did was to think about what I actually needed. I definitely wanted to wire up my desktop directly to my router to minimize latency. I also wanted to make sure I could access the internet anywhere around the house as it was a persistent problem at my previous place. To address these main points, and future proof the house, I decided to try and setup structured cabling at my new place.

Image from Singtel Website
Image from: http://info.singtel.com/personal/internet/broadband-at-home/fibre-broadband-installation/

When I was planning all these out, I tried to find some references or research others with similar experience in Singapore. Most resources online seem to cater more for large houses, or for locals, BTO units which come with structured cabling already more or less setup. I struggled to find points of references for my HDB resale flat. Here are a few things I learned from my experience which will hopefully help others exploring the same path.

The hub

The first thing was deciding on where to place the “hub” or heart of the network. This will be the place where the main router would be setup in the home, and would be where most of the network points end up. A good setup would be something similar to an office network.

I decided on placing my hub near my TV console, keeping the main router exposed for WIFI coverage, but hiding most of the other devices (ONT, switches, power sockets etc) in the built in cabinet. Once this was decided, I had basically decided the “end” point of all my cables to be laid.

Cabling

Image from: http://premiumwires.blogspot.sg/2016/07/cat5e-vs-cat6-vs-cat6e-vs-cat6a-vs-cat7.html
Image from: http://premiumwires.blogspot.sg/2016/07/cat5e-vs-cat6-vs-cat6e-vs-cat6a-vs-cat7.html

Next is the simple part which you can work with your contractors on: cabling. Most contractors at the bare minimum have Cat6 cables, and although there are even Cat7 cables now, it is not worth the price as the additional isolation for a Cat7 cable isn’t really relevant for home use.

Most contractors charge cables by the number of termination points, rather than by foot run, and as mentioned, the cool thing about doing up your house is you can choose how to conceal and run the cables. In my case, everything is largely nice and hidden, so I only see the RJ45 sockets on my wall.

Termination points

Choosing where and how many points to get depends largely on your needs. You have to look at your layout and determine where the points will be in each room depending on your needs. It is best to have as many points as you can afford, but in my case, I opted for just one point in each room.

There are two end points for each cable, and you will plan for the end points from each room, but the other end should be right at the hub. My contractor initially had RJ45 female points for each of the rooms, and gave me male points at the other end, which I was not too happy about.

While it is definitely “easier” to just plug all the male points into the router / switch, the fact remains that I have that moving cable running through the house concealed, and if that moving part were to spoil (unlikely I know but I didn’t want to take the chance) I could not re-run the wire unless I was to hack the concealed ceiling and replace it.

I made some noise and they eventually replaced the male points with a wall mounted RJ45 female plate which housed 4 points each. This was fixed to the wall, making the chance of each point failing due to cable movements much lower. I just needed to get a regular Cat6 patch cable to connect each of the points to my router, and I was set!

WIFI considerations

Another key thing to think about your setup is the kind of devices you will be using in your home. If you have more devices that will be connected by WIFI, and they are spread out in the house, then you will need to cater for them.

In a city like Singapore, it is unfortunate that your WIFI signal will get constant interference from other WIFI devices. Due to how saturated the WIFI signals are, it seems that there will always be “dead spots” in the house with a standard WIFI router. Of course, you could opt for a wireless mesh network solution like EeroOrbi or if you can get a parallel import, Google Wifi, but that doesn’t help to reduce the traffic.

Instead, I would highly recommend you get an additional access point (unless you are staying in a studio sized unit). Every WIFI device will then connect to your network via the access point(s), preserving the bandwidth of communicating between your main router and the access point. I did this by running an additional data point to the ceiling where I wanted to place my other access point.

Router selection

The new routers from most service providers are pretty good, although they lack the flexibility and configuration options that some power users might need. Still, as long as you are just intending to have a decent connection and are not looking to setup a VPN, remote file server etc just stick with the router provided. I use Singtel and the new wireless AC router works just fine.

A key thing note is the number of ports you might need for your cables. Most routers come with up to 4 ports, and if one of them is used for your secondary Wireless Access Point (WAP), then you are left with only 3 which you could use to connect to the other rooms in your unit. If you also want to connect your TV / Game Console / NAS / HTPC via cables, then you would likely need to invest in a switch. This is the main reason you would want to plan out the kind of devices you would like to use.

ASUS routers can be quite expensive, and there is one model that has up to 8 ports (RT-AC88U). Asus routers in general are not too difficult to maintain and there is a lot of support available, but I would say most users would not need to go there unless you have a specific need for your network.

You can also explore Ubiquiti products, which is very powerful, scalable and provides the most options, but it is pricey and typically meant for business / commercial use, so it may not be worth it for home use. That said, they do have a powerful WAP that is affordable and can save you the hassle of an additional power socket, because they make use of Power Over Ethernet (POE) which allows your data cable to also power the WAP. I personally went for the Unifi AP AC Lite which came with POE adapter which makes the WAP positioning much cleaner.

Summary

Overall, while I am not the most network savvy person, I am quite happy with how my network is now setup and can kiss goodbye to cables running across my house. Having most devices hooked up by cables ensures that I do not get as much signal interference, and gives you more options to expand your network usage. As we are moving towards the age of the Internet of Things, having a better connection at home would be very helpful as more and more smart devices can be effortlessly connected to your network.

If you ever want to make your home somewhat smarter, and you have the opportunity to do up your place, then consider the points that I listed above. Or, drop a comment below with your questions and I will see if I can help.

Gadgets and gizmos

It’s been a while since my last post. Life has certainly kept me busy enough. Getting married, starting my new job, finding a home and settling in are but a few items in my list of recent accomplishments. Now that the dust has settled, I can finally find a few short minutes to just put down some of the things that have got me thinking.

Ironically, it’s not the marriage, job, or house that is spurring me to write this, but a combination of discovering Carousell, my trip to Guangzhou (now not so recent but really spiked my interest on cool gadgets), my daily dose of Lifehacker, and recent Facebook posts that got me interested in some really cool pieces of technology that has me drooling. I’m so interested to get my hands on these, to tinker with if nothing else.

  1. Raspberry Pi
  2. Oculus Rift / HTC Vive
  3. Myo

This is by no means exhaustive, and there are many other interesting products out there. A quick glance through Kickstarter or Indiegogo should give some indicator of the crazy stuff people come up with, and a lot of them are awesome!

1) Raspberry Pi

I remember my first foray into electronics back when I was about 9. I didn’t know too much about it at the time, but I found it really cool to be able to build stuff using LEDs, transistors, resistors, and capacitors. I also learned that there was so much you could do with breadboards and soldering iron, and I begged my parents to get me a kit (which they eventually did) so I could try my hand at it. Of course, I didn’t learn how to build a full computer, but I think the foundation for electronics was something I picked up and enjoyed learning. I also did take a course on computer architecture in my university days, so I at least understood the theory behind it, but there was never an affordable way to actually practice any of what I learnt since it was in the realm of research, and there was never a space for hobbyist’s to play in.

Then came the Raspberry Pi. The Raspberry Pi is a shrunken down minimalist computer. It has the basic things you can find to connect a storage device (memory card), USB ports for expansion, display output, power and can run more or less a full operating system. This makes it perfect for projects like intelligent home appliances, home theatre PCs (HTPC), hand held devices (think old school game boy via emulation), robots, and more. It’s small, and light, and cheap, making it a hobbyist’s dream.

The Raspberry Pi was originally a tool for learning, and there are many schools using it to teach children how to be creative and exposing them to engineering and programming from an early age. A lot of the projects are really cool too (imagine creating your own mini robot or device that can turn on or off the lights at home by talking). This is something I wished I had the opportunity to do when I was younger and while I did get some exposure thanks to supportive parents, the current landscape is such that there really shouldn’t be any excuse not to encourage everyone to try making something. It’s rewarding to be a producer!

You can check out a number of cool projects to get started here.

Oh and if you are in Singapore like me, you can pick it up fairly cheaply from Lazada.

2) Oculur Rift / HTC Vive

Virtual reality is the new cool kid of gadgets and it’s finally coming to your living room. That said, the price still seems a bit out of my range at the moment, but the concept of being able to play in such an immersive environment has me feeling super excited about the potential that the technology brings!

There are enough articles on the internet comparing the two, but if I had to choose I would be leaning more towards the Vive as it ties in with Steam, which means a large catalogue of games!

3) Myo

Imagine being able to send control signals by gestures. Sounds pretty cool right? I am keenly interested in technology that allows for augmented reality, like Sixth Sense and the Myo Gesture Control Armband seems to be one of the first commercialized solutions available. It may not be as great now with Microsoft Kinect-like technology, but I think a wearable is always more sensitive and accurate, and would love to be able to play with it.

Right now, I find the price of the Myo the main restriction. It costs US$200 and is a little pricey for a controller in my opinion. I’m hoping I can get it at a discount sometime soon.

There are plenty of cool ideas being converted into actual products now, and it is scary for me to browse through Kickstarter because it is so tempting to jump onto the bandwagon and hype of cool new ideas and products. There’s Father.io and Lily to name a few. Suffice to say, I’m excited to be living in the age of crowdfunding, where so many cool ideas can get off the ground, and we have an unprecedented ability to explore new and cool gadgets for the future.

Now if only I could get my hands on all these gadgets…

Integration of the Web

Image by OSTI {http://www.osti.gov}
Image by OSTI {http://www.osti.gov}

If you are like me, you would be sick of having to sign up with an email, username and password for every new web service that you would like to consume. It’s also a pain because almost all of these services require a verification of your email as part of the process. I am thankful that more and more services are adopting single sign on, allowing you to sign up for their services using either your Twitter, Google or Facebook accounts. By doing so, it really saves me the hassle of that whole process since I’m likely to be already signed on to some/all of these accounts. You just click Sign in with Google, authorize the web service, and voila, you have just established a link between Twitter, Google or Facebook to this web service.

Welcome to the integration of the Web!

Historical context

The Web has evolved from being a huge encyclopedia of information, to now a medium for services to be delivered to every corner of the world. What used to display only static webpages, now delivers fully interactive applications allowing everyone to communicate, attend classes, conduct financial transactions, organize and host meetings, and provide interactive entertainment and more. With the smartphone, this has extended even further, transforming it into your personal trainer, navigator, organizer, and informer, anywhere, anytime. We call this new marketplace of services “the cloud”, where we can consume web provided services such as email and office productivity suites, all with just a web browser.

Image by prn.fm {http://www.prn.fm}
Image by prn.fm {http://www.prn.fm}
It is inevitable that the cloud, with all the services available to anyone and everyone, would touch many areas of our lives. This diverse ecosystem raises an interesting conundrum: how do we manage all of them in our online interactions and transactions? I believe that as the market is made more diverse and complex, we will eventually need to reduce the complexity of having so many different services by collapsing into a few focal points in the ecosystem, simplifying and unifying where possible. Right now, that appears to be the likes of Twitter, Google and Facebook.

Expanding the idea
The integration is not just limited to logins. Web services enhance their capabilities by integrating with other web services. For example, my very first encounter with web service integration was when I connected my Twitter account with Facebook, allowing me to update both simultaneously by posting on Twitter. This essentially reduced my maintenance and usage of two different web services to one.

Image by AVLView {http://www.avlview.com}
Image by AVLView {http://www.avlview.com}
How this is done, is through what we call Application Program Interfaces (APIs). Both Twitter and Facebook have built external facing “hooks”, which any developer can make use of to leverage its services, and it is in the web services best interest to build these as it further ties down users onto their platform. By opening and allowing everyone to easily post and “like” things Facebook ensures it does not go the way of MySpace and Friendster. After all, if the service is already so entrenched into your life, it is unlikely you will ever think of migrating to another platform.

APIs really make the web much easier to manage and navigate as it brings together web services to make them work better and more efficiently. There are even services like IFTTT that serve mainly to do this.

Conclusion

As I type this, I get excited about the prospects of the future. As more web services hit the web, they are going to be tied and integrated to some other services we are using, making the web seem like it is evolving and expanding features rather than trying to get you to go with “new” stuff. We would start seeing new services as adjustments of usage rather than whole new adoptions, and it makes the learning curve less steep. I look forward to all the cool new stuff that 2015 and beyond will bring to make our web experience that much sweeter.

Taming the Mammoth

Taming the Mammoth

This article really struck a chord with me. To quote the article, we all have “an irrational and unproductive obsession with what other people think of us.” Especially in Asian culture, inclusiveness and minding what others think dominate so much of what we do. It’s a really good article and I’m not going to repeat it here. You should go read it. You should read it, now.

Plus, the cartoons are cute!