The Artistic Way of Programming

12 years back, when I started my formal classes in computer science, the first thing I learnt was “data” means “information”. A few days after that, we started conventional programming, where code and data were treated separately. For example, only data can be passed as the functional arguments. It was difficult for me to digest that “code, which is also information, is not treated as data”. I strongly felt that this will increase complexity of softwares in the long run.

A system does three things – read, transform (processing data), write. In other words – the mathematics (the transform part), and the effect of that in real life (the read/write part). The data transformation is indeed a mathematical concept, and with the help of read and write we make the mathematics (the transform part) useful to the real world. Bringing the “transform” part fully inside mathematical domain has its own benefit of using mathematics without fear (possible errors) for the analysis of the system, making the system more tractable mathematically. The catch is to treat both the elements of transformations, data and functions, equally.

Initially, code used to be bigger than the data, so sending data over the wire was feasible. But with time, data becoming huge, sending code to systems over the wire becomes the need, resting the data on the systems intact. With big data, the need of the hour is to treat the code as data, so that the code can be taken as argument to another meta function on a system having huge data which expects an algorithm for transformations.

Roughly speaking, codes are algorithms, algorithms are mathematical functions, functions are in turn actually look-up tables, i.e. data. Hence with this principle, all codes or functions are data.This is exactly the cornerstone of the functional paradigm. The functional programming is programming with functions, they treat functions and data likewise. Another principle I love, to control complexity, rules should not be complex itself.

Thumb rules rewritten for the functional paradigm:

Read-write and transformations(algorithms) should be separate.
Use immutable variables. Discourage use of reassignment statements.
Discourage side-effects (input/output or changing any variable in-place), every function should ONLY return its expected result.
Use referentially transparent functions (sometimes it is called pure functions) with no side effects, i.e. if x = y, f(x) and f(y) should be same forever.
Unit testing is a must for each function.
One of the main design patterns should be followed is to use expressions instead of instructions, i.e. it should be declarative in nature. Discourage use of loops like for/while – use recursive statements as shown above to calculate sum. Tell computers what needs to be done, not how to do it – it reduces error, especially edge cases.
With the need to control the complexity of the system and the advance design, the design pattern for the functional composition can be made to follow some basic algebraic structures, which in turn becomes more robust.

Posted in Uncategorized | Comments Off on The Artistic Way of Programming

Top 5 Features Added in Revit

A building information modeling (BIM) software, Autodesk Revit, has been useful for architects, structural engineers, MEP engineers, designers and contractors, enabling them to design structures and buildings in 2D and 3D, as well as being 4D BIM capable. It’s first version was released more than a decade back and since then it has seen many updates and new version releases, some have been just incremental updates serving for bug corrections and some have been significant technological updates.

Compared to the 2017 update, the previous 2 editions did not provide any significant upgrade until their ‘release 2’ (R2) editions were released. The 2017 update brings about 50 new, refreshing features which will prove to be immensely useful in creating BIM models. All the new features within the update are equally important and will be useful during the life cycle of a project, but out of those let us discuss the 5 most important features from Revit 2017. 1. Text Editing:

The most awaited feature in Revit since the time it was introduced, text editor has been included in the latest edition of Autodesk Revit. This provides a completely redesigned text engine which is compatible with imported files such as AutoCAD DWG files. The text editor in Revit 2017 also brings corrections to the flaws of text editor from earlier editions and lets users seamlessly switch between text editing mode and viewing mode without causing any unexpected disruptions in text.

2. Global Parameters:

Global parameters feature which was introduced in Revit 2016 R2 version, has received a much needed update in the 2017 edition. The latest update brings in the power of parametric families into the project environment. Applying global parameters to multi-segments is possible in this version, also grouping the parameters becomes easier, as does filtering and reordering. Even though the upgrades do seem to bring a lot of additional features, they do come with their limitations, such as the parameters can only be assigned to certain system family categories and only to user defined instance properties.

3. View Template:

View template is a very simple yet powerful feature added in Revit 2017 which enables the user to share data and reuse schedules. This feature automatically updates all the schedule changes whenever they are affected within their respective templates.

4. Calculated Values in Annotations:

An essential and a long overdue feature introduced in Revit 2017 is Calculated Values in Annotations. It is a useful feature that allows the user to document projects with annotations that allow calculated values and which obey pin restrictions maintaining consistency and accuracy of the project. A tag created with calculations in it can be used with any tag type and pinned to an element allowing the user to reposition that element without actually moving the pin position.

5. Railing Host:

Railing Host or Hosted Railings, is another valuable feature introduced in Revit 2017 (SHOULD THIS SAY 2017?) along with Calculated Value in Annotations feature. With this feature it is now possible to host the railings on Walls, Roofs or Slab Edges and the railings will adjust with variations in slopes and surfaces.

There are a host of other additions and updates in Revit 2017 apart from the ones listed above. It remains to be seen what if any flaws exist during real time use or if they truly result in the enhancements promised. Although, considering the supposed flaws that may exist, Revit 2017 is a huge step forward.

Posted in Uncategorized | Comments Off on Top 5 Features Added in Revit

Economic Cycles, Stock Market Crashes and the Scary Scenarios

Here we are ready to inaugurate a new president in 2017 and our stock markets are at all-time highs after a huge ‘Trump Bounce’ after the election. Many that study stock market history admit that we are in a need for a pull back as the DOW is almost ready to break 20,000 pts. What does all this mean?

Well, many analysts are suggesting it is very possible we could get a market correction in mid to late 2017 and that it could be 10-20% by the time it is done, the longer this nonsense goes on, and the bigger the bubble builds then the bigger the drop, we are over bought, almost everywhere. Then all that money printed that ended up inflating emerging markets will look for safe haven, coming back here in the short term. As those go one-by-one, that money flies out, because the money is looking for the nicest looking house (for now) in a majorly bad neighborhood, look at the EU, Japan, Middle East, India, and who knows what the hell China’s real numbers are, they have one thing going for them, they own our debt – but that might not be worth much if things go on. All that money coming back to safe haven in the US will cause inflation here, but at what cost?

Cheap loans, another bubble burst and look at the Student Loan issues 35% in default (past 90-days) and cheap car loans is only producing higher repo rates which are hidden by increased sales figures. It’s all lipstick on a big pig, socialism doesn’t work and you can’t have utopia unless you build it, and that takes capitalism which we are crushing into next week for the falsehood of cronyism. But I digress.

If we don’t get a back pedal on the stock market soon, it will all come at once, and 2008 was 8-years ago remember? That wasn’t a recovery that I’d be bragging about – basically we’ve increased regulations, size of government, and cut our military – all very stupid things to do in the present period. We are digging a hole, and I assume when if it starts to fall apart the left will blame capitalism and get their people back into power – and they will just make things worse – this seems to be a repeating problem with humanity doesn’t it? That is what socialists always attempt to do, but it all collapses anyway – Venezuela, Argentina, Greece, Spain, Italy, Portugal, Zimbabwe, hell, how about that Arab Spring a few years ago, still in shambles – Libya, Egypt, Tunisia, Syria, Yemen, who’s next? Jordan, Turkey, Saudi Arabia? Civil unrest, food shortages, people will demand what was promised and take down their governments to get what’s left. Beware the socialist mobs. But I keep digressing.

Posted in Uncategorized | Comments Off on Economic Cycles, Stock Market Crashes and the Scary Scenarios

How Can I Set Up An Online Business?

If you’ve been considering setting up an online business you’ve most likely been motivated by sheer volume of buying and selling that is now taking place on the internet.

More and more people are buying products and services online. And if you set up your own online business you can claim your cut of this expanding marketplace. Here are the 5 steps to follow to set up an online business.

1. Pick Your Market

If you’re going to set up an online business your first task is to determine what type of business it’s going to be. Are you going to sell products or services? You can sell your own products or you can sell products produced by other businesses who will pay you commissions on your sales. Or you may choose to set up a membership website or offer teaching and coaching services online.

Getting a website online isn’t as complicated as you may think. Initially you’ll need to purchase a name for your website (known as a domain name). Next you need to ‘rent’ some space on the internet (known as website hosting). Lastly you’ll need a software package that will make it possible for you to put written text, images, videos etc onto your website. There are many website building programs available that make this whole procedure very easy.

3. Get Visitors To Your Website

When you website is online you have to get potential customers to visit it. There are two main ways to do this. You can use free website traffic techniques or paid website traffic techniques. Both have their pros and cons and the most effective traffic tactic to use a mixture of both.

4. Develop A Customer List

It’s doubtful that your website visitors will want to buy anything from you on their first visit to your website. They may visit your website and never return. But obtain a visitor’s email address with a special email capture form, you can remain contact with them via email. Your emails can keep them informed about your business and encourage them to return to your website. If you offer something of value for free in return for someone’s email address they are more likely to give you their email address. This can be something as straightforward as a free report or eBook that is relevant to your industry.

5. Provide Value

The content material on your website and in your emails, articles or blog posts has to be more than continuously trying to sell. When you provide high quality, useful information to your target audience will come to know, like and trust you. Your prospective customers will then be more willing to buy from you and continue to be as loyal customers for many years.

Posted in Uncategorized | Comments Off on How Can I Set Up An Online Business?

Tips For Buying And Maintaining Shoes

Choosing a good pair of shoes and taking good care of it is an art. This article has some basic tips for you to maintain the quality of your favorite shoes. Hopefully, this will help you make your shoes stand the test of time.

1. When buying shoes

When should you try your shoes before buying them? Well, ideally, you should try them in the evening. This is because your feet are slightly bigger in size in the evening. Go to your desired store in the evening, put on the shoes you want to try and then walk around to see how you feel in them.

If you have to move around a lot during the day, we suggest that you go for instant heels as these shoes distribute your weight evenly and you feel comfortable.
2. Posture and gait

What is the right way to walk? Proper gait can make your body appear slimmer, especially if you are a woman. The idea is to keep your feet straight when walking. For each step, you may want to hold a bit long striding. Keep in mind that improper gait and posture will make you feel less comfortable while walking and it may also make your shoes wear and tear faster. Usually, the biggest reason why people don’t feel comfortable while walking is that the shoes are not the right fit for them.

3. Cleaning the shoes

For wiping stains from your leather shoes, you can use banana peels. Actually, banana peels contain certain ingredients that make it easier for you to remove stains from your shoes. On the other side, you can also go for milk to wipe the surface of the shoes.

Another good cleaning agent is vinegar. It will clean your shoes and make them shine. The great thing about vinegar is that it is better than most of traditional cleaning methods.

4. Leather shoes Upkeep

Shoes made from leather tend to get stiff. In order to soften leather shoes, you can opt for a quality absorbent pad. However, keep in mind that this method should be used occasionally as the regular use may reduce the life of your shoes.

If your leather shoes are stiff, you can cut a potato in half and dip it in the lemon juice and then clean the surface of the shoes with it. Keep in mind that placing the shoes near fire is not recommended after the application of the cleaning method.
5. Drying Wet Shoes

If your shoes get wet, lime powder is a good agent to dry them out. Lime power will also give your shoes a sweet smell. For fur shoes, you can try a dryer, and this is an ideal method for drying shoes in winter.

So, these are a few tips that you can use to buy shoes pair of shoes and then take care of them so that they will stand the test of time. Keep in mind that buying expensive shoes is not a big deal. The big deal is to take care of their maintenance and make them last longer.

Posted in Uncategorized | Comments Off on Tips For Buying And Maintaining Shoes