HN user

sseth

403 karma
Posts0
Comments153
View on HN
No posts found.

If i remember correctly, the cards used in Jacquard looms were then used for voting tabulation in the 1920s, by a small company called IBM. When computers came around in the early 40s, they were available as a source of input. This is where I first heard of jacquard looms anyway.

Besides the Smiley novels, The Perfect Spy is one of the most beautifully crafted of John le Carre's novels. Beautifully written with layers upon layers of meaning - each time you reread a Carre you see another facet.

If there was a theme across his books - he was always concerned with the nature of betrayal. "Love is whatever you can still betray". Betrayal of country, of a spouse, and even of a parent.

UPI is growing at an incredible rate.

One important reason for the growth is the explosive increase in 4G connectivity in the last 4 years, which has data usage on mobile see a compound average growth of 93% to become the highest in the world at 11.2 GB per user / month. The rates are almost laughably cheap, at around 0.20 USD/GB.

COVID has also driven more recent growth because people don't want to handle cash.

During congress rule, CBI was referred to as a "caged parrot". The CBI did not act unless forced by the Supreme Court.

The CAG is a very different body - it is much more independent of government, and did raise issues around 2G spectrum allocation and many other areas during Congress time. I mean, the UPA had a minister running an entire TV station out of BSNL lines running to his home, so really it was pretty blatant and hard not to catch.

We should not confuse this type of corruption with doing favors to business which does not show up in government books, and is not easy for CAG to catch.

Featherweight Go 6 years ago

The talk by Philip Wadler is one of the most insightful I have heard : https://www.youtube.com/watch?v=Dq0WFigax_c

In brief, they are following a process of stripping Go to the most basic possible syntax, and then adding generics (Featherweight). Then they will add more features back and build up to the full language, ending with Cruiserweight where channels will be addressed.

The generics proposal builds on interfaces rather than contracts. Wadler sees Go occupying a unique space in terms of supporting "open supertypes" in the sense that in Go we do not have to declare a struct to be of a particular interface type it is automatically derived based on the methods defined on the struct. This allows a proposal which allows Go to be extended tp solve the "expression problem" first defined by Wadler in 98.

I really hope these beautiful ideas turn out to be workable - I am sure Go will gain immensely if they are well thought out.

I think Android is the most important version - about 95% of mobiles are covered. So it is good they are doing that first. iOS is about 3-4% and KaiOS is just 1%, so I think if it takes some more time that's not a huge impact.

My own personal experience : A close relative passed away in a large city early April (of pneumonia caused by COVID-19) complications. His entire family was interviewed for 2 hours and all contacts were screened - the family and some of the contacts were also put in quarantine and tested. The names of my relative and others who tested positive were put in the papers the next day (name, address etc) after the test, to help identify people who may be may have come in contact. This is obviously anecdotal - but i have so far seen the opposite of hiding data - some places are revealing too much rather than too little information.

But India has a federal structure, different states may have different policies. It is pointless to make one statement about the whole country, especially when the numbers are coming from states, not the center.

In some ways the real story is that the MoH cannot take a decision to let some staff keep working if they are found to bee infected - presumably because they are not easily replacable. It is easier for them to bypass the rule by not testing (or suppressing the results of tests) then having the autonomy to take such a decision on a case-by-case basis.

Seen in this light, this is depressingly familiar and universal. Seemingly strange actions basically necessiated because of bureaucratic inflexibility.

Yes - my heart bleeds for Vodafone and Airtel who kept data prices 10 times higher than they are now and sat on fat profits for years without building their 4G network. And kept milking us for "value-added" services we had not asked for.

And Jio is the bad guy for going up against the incumbents with a risky, but smart strategy of investing in the latest technology.

The reality is that there was no other way to match the incumbents except by growing the customer base quickly - as all other competitors have found. As a consumer i am very happy Jio did what it did, and I bet that no matter what happens, I will never pay as much for data as i was paying before Jio came.

Well, it's not a monopoly by any stretch. Market share - Jio - 32%, Vodafone Idea - 29%, Airtel - 28%, BSNL - 10% as of Nov 2019.

Yes - the incumbents (Vodafone, Airtel) have suffered a loss of market share and revenues / profits. Serves them right for keeping data rates high and not investing in modern technology when they had the money and market share to do so. I am sure customers in other markets would wish for real competition like this.

In go, composition has a special feature where if you include another type anonymously in a struct, the methods of that type are automatically available for the struct as well. It is also possible to "override" these methods at the struct level and call the anonymous member directly.

So you can get some of the conveniences of inheritance. The behaviour is of course different, because the composed member has no way of knowing the identity of the including struct.

Courting Haskell 7 years ago

I feel to be realistic you have to show a program with failure scenarios. That is at least where i struggle with FP. Like what happens if a user enters a non-numeric value and i want to echo back a warning and get a correction, before continuing?

Somerset Maugham wrote a great short story - "The Lotus Eater" about a bank manager who earned a lot of money, then retired to an island of Capri to live comfortably off his savings - become a "lotus-eater". The kicker is when after 25 years his money runs out, and his life of comfort has deprived him of the will to work again.

Perhaps here the author is talking of a different type of "lotus-eater" - one who has become comfortable not taking risks, and live in the comfort of their company perks and just coast along without striving hard. Their day of reckoning may come if they get fired and suddenly find they have lost the knack of living in a world without these perks and strewn with risks.

I think this should be read as a person's own story of what compels them to live as they do, and not as a judgement on other people who choose to make different life choices.

I suppose this is a little bit of peer pressure also. As a tourist having come all the way to Paris and seen the Louvre it would seem silly to not have seen the Mona Lisa. Its like visiting Florence and not seeing Michelangelo's David.

My own viewing of Mona Lisa left me a little underwhelmed as well, though i have always found sculpture attracts me more than paintings. To each his own.

I believe this is the separation of the transport layer protocol (QUIC) from the application layer protocol (HTTP/3). QUIC can be seen as a replacement for TCP. HTTP over QUIC then becomes HTTP/3 - with improvements in latency and head-of-line blocking over HTTP/2. So in that sense it will supplant HTTP/2 as QUIC gets adopted more widely.

Bureaucracy fixing software issues is quite common. One story i have heard is that in the early days of railway reservation computerization in India, there were storage issues on the servers. The solution : cut the advance booking time from 90 days to 45, where it stayed for many years.

It is best to treat the linked paper (Fibers under the magnifying glass) as a review of some implementations of fibers and not a repudiation of fibers in general. In particular, for this paper to apply to golang, several things would need to change :

Memory footprint : It says fiber user stack is 1 MB and so fibers have comparable memory footprint to threads. This is not true for goroutines which typically use a 4K stack.

Context switching overhead : gives numbers for architecture, but goroutines do not use the expensive switching instructions listed in the paper. Instead golang basically saves just the PC, SP and DX registers, significantly reducing the overhead.

Dangers of N:M model : The dangers mentioned of corrupting memory etc is specific to C++ libraries and do not apply to golang.

Dangers of the 1:N model do not apply to goroutines either.

My conclusion from the paper is as follows : Fibers are bound to fail as an OS feature, or as a library. To make fibers work you need to do what golang does i.e. make it part of the language with compiler support to reduce the context switching overhead and the memory footprint. You will however, pay a price in higher FFI cost. That may be a tradeoff which may or may not work for you, depending on the nature of your application.

Not only that, but in the context-switching overhead, the numbers provided are not appropriate to golang - because go's function calling convention assumes fewer registers are saved, thus reducing context switching overhead.

From : https://codeburst.io/why-goroutines-are-not-lightweight-thre...

"In Go, this means only 3 registers i.e. PC, SP and DX (Data Registers) being updated during context switch rather than all registers (e.g. AVX, Floating Point, MMX)"

Perhaps a better title would be "Fibers require compiler / language support to be viable"