HN user

memracom

1,196 karma
Posts47
Comments646
View on HN
news.ycombinator.com 11y ago

Ask HN: Could you 3d print 1950's car?

memracom
4pts5
vineyardsaker.blogspot.com 11y ago

The ultimate in global open source systems

memracom
1pts0
news.ycombinator.com 12y ago

Ask HN: Which VPS hosting providers supply native IPv6?

memracom
7pts3
impactmapping.org 12y ago

Make a big impact with software products and projects

memracom
1pts0
manifesto.softwarecraftsmanship.org 12y ago

Manifesto for Software Craftsmanship

memracom
2pts0
deliberate-software.com 12y ago

Quality Is Future Speed

memracom
2pts0
www.euractiv.com 12y ago

Berlin urged to step in over EU's relations with Ukraine, Russia

memracom
1pts0
leanpub.com 12y ago

Functional Reactive Programming on iOS

memracom
2pts0
topromotetheprogress.wordpress.com 12y ago

When asked, vast majority of businesses say IP is not important

memracom
1pts1
forgetfulprogrammer.wordpress.com 12y ago

Groovy Console: Python like REPL for Java

memracom
2pts0
codeblog.shape.dk 12y ago

ReactiveCocoa Essentials: Understanding and Using RACCommand

memracom
2pts0
slashdot.org 12y ago

Why Reactive Programming for Databases is Awesome

memracom
1pts0
blog.sigfpe.com 12y ago

Monads in C

memracom
2pts0
news.ycombinator.com 12y ago

Groovy Legacy Code and You

memracom
1pts0
www.ibm.com 12y ago

Characterizing code for refactoring to avoid unwanted side-effects

memracom
1pts0
guntherpopp.blogspot.ca 12y ago

How to Mavenize big, monolithic legacy Java projects

memracom
1pts0
blog.newrelic.com 12y ago

Reference Graphs or 'Feature Sketches' as Tools for Refactoring Legacy Code

memracom
1pts0
www.pixelmonkey.org 12y ago

Groovy, the Python of Java

memracom
80pts41
www.mauronewmedia.com 12y ago

Why Angry Birds is so successful and popular

memracom
1pts0
catless.ncl.ac.uk 12y ago

Forum On Risks To The Public In Computers And Related Systems

memracom
1pts0
blog.8thlight.com 12y ago

Clean Architecture

memracom
1pts0
queue.acm.org 12y ago

The Essence of Software Engineering: The SEMAT Kernel

memracom
1pts0
alistair.cockburn.us 12y ago

A Detailed Critique of the SEMAT method

memracom
1pts0
alistair.cockburn.us 12y ago

Why Alistair Cockburn withdrew from SEMAT

memracom
1pts0
lifehacker.com 12y ago

The Adafruit Trinket Is a Tiny, Versatile Microcontroller

memracom
1pts0
micro-nova.com 12y ago

Mercury FPGA Development Board

memracom
1pts0
sean.voisen.org 12y ago

Functional Reactive Programming with Bacon.js

memracom
1pts0
tonyarnold.me 12y ago

Reactive Lessons

memracom
1pts0
leanpub.com 12y ago

Functional Reactive Programming on iOS

memracom
2pts0
csxstatic.ist.psu.edu 12y ago

CiteSeerx is a search engine for papers in computer and information science.

memracom
2pts0

I like that one. Doing well in school is seen as a point of pride. If that attitude ever takes hold in the USA then you will know that the MAGA movement has succeeded, utterly.

Will Trump's America be able to overcome the deep seated American cultural attitude that being stupid is being superior?

My 10y0 daughter wants to get this.

She is busy dreaming up genetic experiments, mostly inserting features of one organism in another, and has a theory that there will be a future movement like the Amish that will have rules as to what technology they will use, and which they will forbid. Of course she thinks CRISPR will be one of the things allowed.

A great real-world example is the Russian Federation's program of new and improved military aircraft produced by several suppliers. Westerners constantly vastly underestimate the capabilities of Russia. Probably because Russians are smart enough to encourage this kind of thinking.

But when you look at the history of Russia who went from an agricultural peasant nation in 1917 to the WWII powerhouse that beat the Nazis in 1944, followed by an encore in rebuilding their country to the point where they had the first TV network in 1950, first space satellite, first man in space, detonated a hydrogen bomb only 10 months after the USA, you can see that these people are not dummies.

After decades of studying the Russians, I think the clearest way to explain who they are, is they are a nation of builders. Of course they are human and not perfect, but overall they know how to build all kinds of things and they fearlessly push forward with project after project all over their vast expanse of territory.

99% of what people say about Russia is wrong and rooted in ignorance because too few Westerners will learn Russian and get their info direct from the source. This means that Russia has not had to worry about keeping secrets from the USA because the USA does it for them. Electronic warfare capabilities are a case in point. And when you learn how the Soviets defeated American stealth aircraft capabilities even before they were deployed, you wonder why the USA spent the money to develop it.

When you compare the speed and effectiveness of Russia's military renewal (including planes like the Su-35) with the chain of fiascos in the US defense sector, one really wonders whether the Soviet Union's KGB campaign was a success. The KGB wanted to place deep cover agents within the US establishment (political and defense) in order to subvert the USA and damage its ability to threaten the Soviet Union. Normal KGB practice for this was to set up agents, but then let them run free with no control from Moscow or any requirement to send info back to Moscow. This made them virtually undetectable and when the Russian Federation disbanded the KGB, those deep cover agents continued to function. Soviet defectors in the 70's and 80's warned about the KGB campaign but nobody seemed to listen.

So when we see so-called "bad decisions" resulting in useless aircraft, useless stealth ships, and a whole chain of military equipment fiascos (up to and including $10,000 hammers) you really have to wonder whether the KGB won the cold war after all. We now know that the USA ran a decades long campaign to subvert the Soviet Union by sowing corruption deep within the Soviet system. How could the KGB not have done the same? Also, the Soviet Union disbanded itself quite abruptly and unexpectedly. Students of the KYB and of Russian strategy seriously wonder whether this was done to prevent the ultimate endgame in the US plan which would see Russia balkanized into a dozen small squabbling countries. Watch the film "The Turkish Gambit" to get an idea of the kind of chess games that Russians are capable of playing.

The problem is that this independence movement is not really an independence movement. In the modern world, no political entity can truly be independent. All are dependent on their neighbors.

True independence became extinct when people stopped living subsistence agricultural lives.

So the Catalan issue is more about how the EU is structured and whether nation states are the appropriate level of division for the different territories in the EU.

Even outside the EU, nation states like Ukraine cannot be independent because they have too much dependency on Russia, the USA, China, Turkey and so on.

Sovereignty is another question, but confusing it with independence is wrong.

This is why the post office model is superior. The local post office receives the parcel and keeps it safe until you come to pick it up. Nowadays (at least in Canada) these post offices are colocated in pharmacies and other businesses that can spare a bit of space and are open outside of 9-5 hours.

If a Fedex or UPS would buildup a network of similar business partnerships in residential areas (or just rent some space in a shopping mall) then people would use then in preference to this expensive key gimmick.

Why hasn't anyone ever thought of that before? Delivering goods to people in their local shopping mall?

Maybe because Silicon Valley is hung up on disruption and replacement so they never noticed that simply taking over existing businesses could be a lucrative model.

If this kind of technical creativity (way outside of the box) was possible in Russia under the Soviet yoke, then what kind of things are they capable of creating today?

Perhaps a whole bunch of electronic warfare devices like those used against AEGIS and the USS Donald Cook? And what about the fact that NASA and the US space program are so dependent on Russian rocket engines? Or the Russian jet that can hover or reverse in mid flight?

We know that the Russian system of higher education is very rigourous and places a lot of emphasis on mathematics Could this be the root of it? Or is it something else in the culture of Russia?

One of the biggest mistakes of the USA after the Cold War was to stop taking Russia seriously and to stop watching what Russians were doing. The west accepted the views put forward by Ukrainians about Russia, instead of going direct to the source. Now we know that neo-nazi forces within Ukraine were spreading misinformation about Russia in order to benefit Ukrainian oligarchs.

It is time to move beyond this. More of us need to learn Russian fluently and analyze Russia based on direct knowledge of the country and people. Russia isa powerful nation and it has a rich and vibrant culture. There is a lot to learn there, not just about technology but also about how to approach and solve impossible problems.

That is thinking out of the box, something that military forces have great difficulty doing. Number 2, 4 and 5 quite publicly caused a collapse in the victory of the first Gulf War.

It is too bad that there are not more Soviet and Russian WWII movies overdubbed in English, because the NKVD and the KGB really mastered this stuff back in the 40s and 50s. Not in all departments of the organization but in enough of them to become the masters of the Cold War.

Most interviewers who use torture do that because the believe that the evil criminal deserves a punishment, and the interviewer derives great satisfaction from doing the torture.

But you have to admit that criminals are not normal people. They are in fact, insane, in a specific way that our laws will not give them diminished responsibility. It is dangerous to think that the criminal is not a sadist. You have to maintain control over the criminal and over the interview. And you must maintain full control over your own psyche and emotions. Never be bored or frustrated. Have infinite patience. Map out the criminal's psyche to learn what makes them tick. Listen to your own intuitions because as you learn more about criminal psychology, your subconcious becomes a more powerful tool.

I have noticed a change in the interview techniques portrayed in some police shows. Gibb's team in NCIS is one of those but the British TV series Scott and Bailey really comes closest to what is discussed in this Guardian article. Sometimes Soren in Law and Order comes close as well.

Any police officer who wants to try this could get started by learning some basic psychology and watching a few episodes of these TV series. And also, you need to fix your own psychological issues because these techniques work best when you are not choked up with hate or other emotions. They require empathy for the criminal and to do that, you need to have firm control of your psyche otherwise it will break you to try it.

I am reminded of one of those Sales empowerment books of the 60s and 70s written by a luxury car salesman. He said that you could not be successful unless you genuinely liked your customer, and only then could you help him to spend his money on what you are selling. Part of the book was exercises on how to turn on that "genuine like" within your own psyche.

Let's face it, it takes years of daily practice to become a skilled musician, or a skilled skateboarder or a skilled parcour athlete or... Humans can do amazing things if only they apply themselves with a few years of daily practice. Stage magic is even more so because those folks never stop practicing the most impossible actions.

If the takeaway is that companies should seek out more older candidates to hire, then your comment reinforces that takeaway.

The point is that software development companies are missing an important element of diversity when they fail to hire older workers. Suret the younger ones can learn new tricks, but who is there to teach them?

Lots of the knowledge that older workers have is not taught in books or university programs. Knowing what not to do, what to do first, how to properly prioritize the work, and where to find bugs and eliminate them. This is stuff that you only learn from exp;erience unless you have an older guide to light the way.

Sounds like a good reason to emigrate to Canada.

Canadians would never tolerate sidewalks in such horrible condition. And governments in Canada (municipal, provincial, federal) are used to spending money on the wellbeing of citizens.

Let's face it, the USA is broken and even if Trump does manage to fix it, the repair work will take many years.

I think it is great that PostgreSQL is strong enough to allow people to build robust queuing systems, but I still think that you are better off in the long run to use a real message queuing system like RabbitMQ to do this job.

Start out by running RabbitMQ on the same server as PostgreSQL but do limit its use of cores and RAM. Then when your business grows you can easily scale to a separate RabbitMQ server, to a cluster of MQ servers and to a distributed RabbitMQ service using clusters in multiple data centers with global queues synchronized using a RabbitMQ plugin.

The benefit of using RabbitMQ is that you begin to learn how message queuing fits into a system architecture and that you will not run into corner cases and weird behaviors as long as you heed the advice of moving to a dedicated RabbitMQ server when your usage gets large enough.

An additionally benefit is that when you learn how to integrate functionality by using a message queue (actor model) rather than a link editor, you can avoid the monolithic big ball of mud problem entirely and easily integrate both monolithic functions and microservices in your app.

Background jobs are just one part of what a robust message queue gives you. In my opinion, the desire for background jobs is a design smell that indicates a flaw in your architecture which you can fix by adding a message queue system.

The Future of HHVM 9 years ago

I think that these changes mean the death knell for PHP in any version, for small companies. There is still a place for Hack or PHP7 in very large operations, but startups, and businesses that run at smaller scale, really should walk away from PHP entirely as soon as possible.

Two reasonable directions to choose are Python Three with a framework like Flask (lighweight) or Django (heavy duty). Or go to the JVM with something like Grails framework (heavy duty) on the Groovy language. Ratpack is a lightweight framework for Groovy and there is also an interesting option to use Vaadin 8 which lets you put your GUI code into the main app rather than writing separate Javascript code.

When making your decision, be sure to consider the huge JVM ecosystem that integrates quite easily with Groovy including development tools like Jenkins and SOAPUI that can be scripted with Groovy. And the Python side also has a fairly extensive ecosystem of libraries as well.

The skill level of Python and Java/Groovy developers tends to be higher than PHP which has always attracted people who would learn just enought to get by.

The software dev community has gone through an explosion of diversity in the past 2 decades and that has enabled a lot of experimentation with new ways of doing this. There is a lot of good in this. But now we are in a period of contraction. Some of this is manifested in the spread of functional capabilities via libraries such as reactive extensions and functional features being added to languages like Java and Javascript. Another manifestation is the fading of PERL from prominence, and this is now happening to PHP as well as Ruby.

This is evolution. Embrace it or face your personal extinction as a software developer.

At one time the USA discovered that the Soviets were bombarding their Moscow embassy with radio waves. Decades later it was learned that a genius names Theremin had built a device that acted as both microphone and transmitter, when bombarded with a specific frequency of radio waves.

There has been some writing on how it used wave guide effects to transmit, but not so much on the microphone part. Some of you may know that many speakers can be wired up as microphones. One wonders whether a device intended to be a microphone, might in some circumstances act as a speaker as well.

If the Cubans are following an evolutionary path from the device concealed in the Great Seal in the 50's then one could easily imagine something built into the structure of the building itself that is accidentally generating sound energy.

As a thought experiment, imagine that you could build a window frame that would pick up sound from inside a room, shift it to an inaudible frequency and then emit that sound. Furthermore, what if a double pane window intended to block sound from leaving the room, had a pickup attached to the inner glass pane and emitted the high frequency sound from the outer pane so that an external laser could pick it up. Then further imagine that the window was installed wrong way around so that the constant street noise was broadcasting high frequency sounds into the building.

I expect that the Russians don't do this stuff anymore because they get better results from HUMINT, especially deep cover agents.

Likely because they have monitored ever North Korean missile launch and they know these are ballistic missiles. That means they follow a parabolic trajectory, and that means that before they go very far, a reasonably accurate landing zone can be calculated.

The USA and Japan (and China and Russia) likely knew within seconds that it would land in the sea and they even knew how high it would fly over a low population area in Japan.

It's like a car full of young punks stopped at a red light beside a police cruiser and when the light goes green they burn rubber and peel away from the intersection first, but never exceed the speed limit. Very provocative, but the police have real crime to deal with, so they ignore it.

You could take a look at a small project that I did a few years ago to create a portable CPython build for Linux. https://github.com/wavetossed/pybuild The basic idea was to make a CPython binary that did not use any system libraries. Instead, all dynamic linking was to local files within the directory tree of the application. That way you could zip up (or tar up) a directory tree containing this portable Python, its binary libraries and any Python modules/libraries that you needed. The result was a self=contained app that could be copied to any Linux server, unpacked and executed. No prerequisites on the server except a new enough Linux kernel because the Linux ABI changed at some point around 10 years ago or so.

By updating the build script in the Github repo, you could update this to a newer version of Python 3.

To make a Windows binary doing the same thing would require a reasonable amount of knowledge about object files, linking, and Windows DLLs. It might be easier to use the MINGW GCC compiler rather than Microsoft, so consider that possibility. First thing to do is to understand how the CPython binary on Windows works and loads DLLs before actually executing Python code. The key is to intercept this process so that you have total control over all object files and do not rely on anything else being preinstalled on the target system.

This is a bad move. More than ever we need Linux standards and this goes in the opposite direction. It would be OK for SUSE to support btrfs as a first class choice of filesystem but the extfs family should be the standard one.

And ZFS works just fine on Linux. If people want to use it, then the distros should not put roadblocks in their way and that means, ZFS should also be supported as a first class choice for servers.

Note that "support" is different from licensing and from "included in our install repo". It is OK to have different licensing for things like this and to install it from a non-distro repo. Look at PostgreSQL for an example of how you can install a mission critical tool from a distro-compatible repo that is run by the upstream project, in this case, PostgreSQL.

But even though it comes from a different repo, it should be "supported" by the distro to the extent that they make a best effort to help people resolve problems. It doesn't mean that you need to be experts in every nuance of the tool and the best way to do that is to maintain a good working relationship with these upstream projects.

Something like ZFS or PostgreSQL are mission critical tools that use Linux as the interface to the hardware, My comments do not apply to any random app or utility that someone wrote for Linux. Perhaps btrfs belongs in this class but I personally don't know since I have not used it.

Probably the asteroid Apophis, due to hit the Earth in 2029, will cause enough cooling to prevent most clathrate from melting. If that works we have a nearby supply of small asteroids that we can fire at the Earth to deepen the winter effect. It works best if you hit a shallow coastal shelf area with lots of limestone rock. Maybe we will sacrifice the Caribbean?

Personally, I don't think the GIL matters. First of all most of us run apps on Linux which has reduced the overhead of processes so much that threads have lost much of their advantage. Secondly, people understand that locks are generally a bad thing to use unless you really are a threading/locking rocket scientist. Most mere mortal developers are better to use message queues. Even the Java world has mostly given up locks in favor of java.util.concurrent which was implemented by serious experts to handle all of the corner cases that you would not think of. Third, using an external Message Queuing system like RabbitMQ gives you other benefits. And fourth, writing distributed apps glued together by message queues helps you avoid the dreaded Big Ball of Mud.

At this stage in Python's evolution, I view the GIL removal as a computer science project that some people will implement again, and again, just to learn or to exercise their chops. Great idea! Just don't demand that the entire community of Python developers goes down your road.

If CPython never gets rid of the GIL that suits me just fine. GIL free programming can be done on other implementations of Python like Jython and IronPython. As far as PyPy is concerned, as long as it does not disrupt the use of PyPy as a means of speeding up a CPython app from time to time, then have fun.

I think you are correct in regards to the people who are currently using C/C++. They already have done the hard work to make it usable for their systems. But newer developers will look at the complexity of C/C++ development and choose anything but.

Maybe it is like politics, rather than attacking your opponents you should offer something that they do not. Then you will build your own constituency and gain influence. It will take a long time, but if you keep on providing benefits to users, then attrition might take you to the top. When someone attacks your camp, ignore them. You do not need a better way to attack them, you just need to stick to the knitting and make your offer provide benefits to users. External forces will likely decide whether or not you overwhelm your opponents.

1. Rust is not C/C++ 2. Lots of software is already written in C/C++ 3. Rust follows the same convention as C/C++, that you integrate functionality by writing a library, compiling and linking it into a monolithic binary 4. Systems that rely on a monolithic binary are NP hard to replace with something different 5. Replacing a monolithic binary works best, in practice, when it is done by refactoring into services that are integrated by something other than a link editor. Although the buzz is all about web microservices, the reality is that message queuing to tie together microservice, macroservices and monolithic binaries, provides better performance more consistent with the linker/monolithic model. 6. Go with its channels and packages may be a more advanced model, and is also competing with Rust. In other words, it is not just a question of comparing Rust to C/C++ 7. The JVM with its JIT has in many cases equaled or exceeded the performance of C/C++ monoliths, but languages like Clojure and Scala take it well beyond mere Java. 8. It may be that replacement of systems is driven more by economics than by technology. In other words it is not Rust that will determine the fate of Rust, but the economic sucess of companies using Rust for mission critical systems. In 20 to 30 years, the businesses that have succeeded will determine which technology is better.

When will people stop trying to build queuing systems on top of a database and use a queuing service. Amazon's SQS or RabbitMQ or one of dozens of other tools that are specialized for message queuing. A job queue is just a message queue in which the messages hold a job.

ZeroMQ is the thing to use to roll your own queuing service, not a database server whether SQL or NoSQL. Databases are not queueus and database servers are not designed with queues as any kind of important priority when features are implemented.