HN user

muks

207 karma
Posts6
Comments24
View on HN

I wish well-done XMPP/Jabber clients that do voice come up. If you are an XMPP protocol developer / implementer reading this, thank you for what is there so far. Please don't stop.

If you have been watching the news this week about Jeff Bezos.. I don't like that someone can share a message/picture/video on WhatsApp and crack into a phone. There are too many closed source vendor components in an Android phone even if you're using an open source phone OS like Lineage OS, and these may go stale over time or have something vulnerable in them on purpose.

WhatsApp always seems to need a phone. It works in a web browser in an inconvenient manner that still needs the phone to login. It is a centrally controlled system. While Signal is open source, it is also centrally controlled. I prefer and hope Jabber implementations get much better. Spam for Jabber can be managed the way it is managed for email. Some spam would get through, but it does on WhatsApp too.

Email hasn't gone away or lost its place because it's federated (distributed). It works on multiple platforms, and if you don't like a particular way of doing email, there are a lot of choices. Jabber is similar for instant messaging, but it can do with a renaissance. (I use Jabber at work and home, but the clients I use such as Conversations don't have the features and experience that WhatsApp/Telegram do.)

The oldest and most used services are federated - HTTP, email.. and at the start of a communication - DNS.

WhatsApp, Facebook, etc. are very entrenched services. It's not enough that you move from WhatsApp - your family, friends, businesses that you work with, all have to use the new service you are switching to, so you can chat with them on that other service.

It's easier to switch your search engine. :) DuckDuckGo has worked very well for web search for me. I use it about 95% of the time and Google Search the other 5%.

This isn't true for India. Until last year, all the cards I'd seen in India were either Visa, Mastercard or AMEX. This year my bank tried to send me a "Rupay" card which is an Indian processor; on speaking to the bank staff, it appears that the central bank (RBI) are asking banks to promote Rupay by default to avoid transaction data from leaving the country. But it's still possible to change to a Mastercard or Visa card.

Many businesses and individuals would still prefer to have a Mastercard or Visa at this time as most international websites that sell services and goods don't accept Rupay.

Uber Lays Off 400 7 years ago

Here's an example of the quality of Uber's customer support: https://twitter.com/muks/status/1137237193657868289

This was after I reported that my 72 year old mother was asked to get out of the car by the driver after sitting in it, because he learned of the destination after starting the trip and did not want to take her there. Uber does not show the destination to the driver before starting the trip.

I was probably speaking to a bot, or nobody had the patience to fix the problem.

Edit: I haven't used Uber since that incident.

Wow.. wow.. there are others who have read the same things. :)

The hydro pneumatic rocket!

I tried to find Mir publishers books about 10 years ago. Apparently Mir got bought out and publishing ceased.

Another gem is "Fun with maths and physics" by Ya Perelman. It's available in a cheap reprint now, nothing that matches the original Mir publishers book.

LineageOS 16.0 7 years ago

I can give you a link to download my build if you want (which is a pristine unofficial build with Android security patches till February 5, 2019), but in the end, it depends on whether you'll trust a binary build from some random person: https://mukund.org/tmp/lineage-15.1-20190214-UNOFFICIAL-whyr...

It is neither difficult nor very slow to build it from source, but it can do with a fast internet link (~fiber speeds) as the build process initially clones from several git repositories (but later syncs just fetch the changes which is very fast). Unfortunately not everyone has access to fiber.

With fiber, the clone and build ought to complete in about a day depending on your machine's performance. I recommend that you build your own (let the initial build run in the background even if it takes more than a day to finish). If you do it once and use the built OS, you'll not search again.

LineageOS 16.0 7 years ago

Same device here (whyred). If you want an "original" build, you can still build an up-to-date Lineage OS with the latest Android security patches from source from their repo. It is very easy to build it on Fedora or Ubuntu and it doesn't take more than a few minutes to do updated builds once you do the first complete build.

Follow the build instructions: https://wiki.lineageos.org/devices/whyred/build

An additional thing you may have to do (on Fedora at least) is to export LANG=C.

You'll also need a vendor tree for whyred from somewhere, like your own phone or from a public repo such as this: https://github.com/Sweeto143/vendor_xiaomi_whyred/tree/oreo

(Getting the tree from an existing Lineage OS phone per the build instructions did not work for me.) Note that the latest version of whyred vendor tree for Android Oreo is from last year. I suspect this is because Xiaomi has moved on to Android Pie for whyred.

What all this gets for you is a build with the latest Android security patches applied (February 5, 2019 as of today).

Good luck. I can report that it builds and works well and it is straightforward to build it (more so for a programmer).

But we do need a gatekeeper

Having observed this area for 18 years now, I'll say that gatekeeper (a party which has unwaveringly observed and stuck to delivering the principles of software freedom) is the Free Software Foundation. This is the only reason why users gravitate to "open source" - not its sexy name, but the freedoms such software provides when a user wants to use/apply it.

Back in the day, the founding president of OSI justified VA Linux making the "alexandria" project closed source (the software that ran Sourceforge.net back in the day - back when sourceforge.net was a good citizen). The remains of "alexandria" was forked to form other projects such as GNU savannah, and there was a later fork named GForge IIRC.

https://www.linuxtoday.com/infrastructure/2001082501120prbzc...

There is only one organization that has unwaveringly sought freedoms for users of software. I've firsthand heard it being accused of promoting communism, and sometimes have wondered if it went too far. At least, they haven't wandered in their principles.

The result, however, is that at this moment, MongoDB is under a non-approved license and therefore IS NOT OPEN SOURCE.

Perhaps you meant to say "is not OSI Certified", because the OSI don't appear to have a right to restrict use of the phrase "open source". See what's on your own website: https://opensource.org/pressreleases/certified-open-source.p...

On the other comments in this thread, even though MongoDB have "submitted" to having the OSI review their license, OSI still aren't capable of restricting anyone's rights on the use of the phrase "open source" including MongoDB's.

I can see your organization tries to make sure that there is an approved set of principles that identify libre/free software which is good. The phrase "open source" has been used in myriad ways since its early days, and not just for software.

I'm a programmer who has written open source since 2000. I would defend you when it comes to the benefits of libre software, but you can't restrict others over using something that you don't legally own.

I've been a Hetzner customer for several years. I'm yet to have a faulty disk experience with them, but that's not what this post is about.

This month I "purchased" another EX41 server. Something made me wonder if the hard disks on the machine allocated to me were old ones previously used for some other customer, so the first thing I did after installing Linux was to look at smartctl output. Not only were the disks new (power on hours) but as part of provisioning the machine, they seem to have performed a "long" self-test on the disk (see smartctl -t in its manpage). I was impressed by this, because they seem to have checked that I didn't get bad disks on arrival. This is probably expected of such a service provider.. but I've seen worse.

It would take someone with reasonable technical skills to install LineageOS as it involves unlocking the phone's bootloader (depending on the choice of phone hardware), working around any anti-rollback features by flashing, flashing TWRP recovery, and then boot into TWRP and install LineageOS, GApps and Magisk (if you want root). But the OS once installed can be used by all. Take my non-technical cousin for example who looked at what I was doing and bought the same phone and made me put LineageOS on it and now uses it.

It isn't advice or suggestion BTW.. just my experience. :)

Waiting is inconvenient to buyers and to explain it away, Xiaomi provide some silly reasons such as saying they are trying to thwart sideloading of apps and custom ROMs by resellers, that does nefarious things like steal data... it's a silly excuse, and the wait time inconveniences buyers who want to unlock and install custom ROMs.

Edit: I suspect Xiaomi do this to keep you using MIUI as long as possible because they make money from showing ads in various parts of the system, and also sync your data back to their cloud which probably is resold in some derived form to advertisers. In my opinion, MIUI sucks. MIUI vs. LineageOS proved it is the phone OS (software) which influences how much a person likes a phone, rather than the hardware.

They've recently increased the wait time from 2 weeks to 2 months which had buyers complaining loudly on forums. So for their newest device (the Pocophone) they reduced the wait time to about 3 days. But I think the long wait times still exist for other phone models.

The wait time depends on Xiaomi's mood-of-the-day. They keep fluctuating it.

After my Samsung Galaxy S7 phone started having hardware issues, I looked to see if a phone running open source software was available, one that also could run the Android apps I currently use.

I've had sucess with LineageOS 15.1 on a Xiaomi Redmi Note 5 Pro (codename "whyred"). Unfortunately the phone's LTE bands don't support every country, but it works fine here in India. The phone hardware costs USD 210 and buys a lot of hardware: https://www.gsmarena.com/xiaomi_redmi_note_5_pro-8893.php

The phone comes with Xiaomi's Android fork called MIUI. It comes with the bootloader locked, and Xiaomi makes you wait for about 2 weeks to 2 months to be able to unlock the bootloader to install a different phone OS (called a custom ROM). Until then, one has to either put up with MIUI or leave the phone sitting on a shelf.

https://wiki.lineageos.org/devices/whyred/install

Once you unlock the bootloader, you can install LineageOS on it which is fully open source stock Android with some minimal tweaks and extra privacy features. The current version for this phone is 15.1 which is based on Android Oreo. This reminds me of my old Google Nexus 5's phone OS, but it is far more tweakable. You can build the LineageOS ROM for your phone from source code: https://download.lineageos.org/whyred

You can install a subset of Google Apps depending on what your preference is: https://wiki.lineageos.org/gapps.html https://github.com/opengapps/opengapps/wiki/Package-Comparis...

Or you can avoid Google Apps altogether by using microG instead: https://microg.org/

After 2 weeks of using LineageOS, I am so impressed that I'm willing to shill for it^w^w^w describe about it here.

For your country, if the "whyred" phone's LTE bands are not compatible, you should be able to find a similar phone that is.

I appreciate that this is a work in progress but this section is misleading. As all too briefly mentioned elsewhere on the page, EDNS allows extending this. In practice most of the resolvers I connect to do support EDNS and a buffer of 4096. So yes 512 may be needed as a fallback (depending on what you're doing) but you'll almost certainly have more room to breathe than that. IPv6 and DNSSEC practically make the extra space a necessity.

EDNS is fundamental DNS knowledge that any DNS server implementer knows and Bert is one. He's talking about "when DNS was created" in that context, i.e., the current DNS's RFC 1034/1035 times.

verysadpanda: You may be feeling low right now, but believe it, the low feeling will go away and things will get better. If you are at the bottom of the barrel, the only way you can go is up.

Most founders of companies that are successful -- not the five star Googles and Facebooks and Microsofts, but the dark matter companies that you never hear of, but are very prosperous and do cool things -- tried several times before they succeeded at one of their ideas. Being successful is not just doing work. There is quite a bit of luck (non-determinism) involved. Many good engineers are not successful at everything. You had the confidence to try it.

Look back at your life, at something difficult that happened some years ago. You may have regretted it at that time, but you may not regret it now because it led you in another way to something better. These are stepping stones. Life will not be satisfying if there is nothing bitter in it. The more bitter, the better I say! Everybody has ups and downs. It's how we deal with them that sets one apart from the other.

When you're older and you look back at life, you will think about all of these. It won't be about how much money you made or lost, but about all the people you met, all the interesting things you did, all the fun you had.

Hi antirez

C doesn't have a destructor that gets called when something goes out of scope. That's taken advantage of in C++ (RAII) to implement various things (like scoped_ptr that helps avoid leaks).

Refcounting is also not perfect for every case.

But I like and prefer C. ;) Just pointing out one thing different in C++.

Unix as IDE 14 years ago

Try cscope and xrefactory for emacs.

cscope is very good for searching through C codebases. You can use this with vim too. It has emacs integration using xcscope, and you can use sequences like C-c s g to quickly jump to a symbol.

xrefactory (though non-free) is very good with C++ navigation and can do refactoring. I have used IntelliSense with VAX and xrefactory is much better. This less known program is something incredible for C++.

SEEKING WORK (telecommute) - Chennai, India.

I'm an M.Sc. in computer science, and a member of ACM and the GNOME Foundation.

I'm good with C, POSIX programming environment (esp. on Linux), the GNU toolchain and other development tools like automake, valgrind, etc.

I like computer graphics, so much that I've been a GIMP developer for nearly 10 years now. I also write code for GEGL and Raster.

A sample graphics article: https://banu.com/blog/6/flower-disk-sampling-for-the-thin-le...

I also have experience with network programming (bsd-sockets) and the POSIX programming environment in general. Some articles which made it to Hacker News frontpage:

https://banu.com/blog/2/how-to-use-epoll-a-complete-example-... https://banu.com/blog/7/drawing-circles/

I have been creating websites for various things (remember the GIMP splash competition?) for many years. I use PHP and PostgreSQL. It serves me well and I write neat code. Sometimes it needs going further: https://banu.com/blog/40/arithmetic-fun-with-mod-rewrite/

My Ohloh page: http://www.ohloh.net/accounts/muks

My first computer experience was on a 8088. I learned BASIC, then found a book on assembly language and learned 8086 assembly. (The nop opcode 0x90 is the same as the opcode for xchg ax, ax). Like it or not, Jurassic Park got me interested in UNIX and because we only had 8088 DOS machines, I got to buy the MINIX 1.0 Tannenbaum book, read it cover to.. well quite a bit of code at the back :), and _learn_ about UNIX before I could sit at a tty. Eventually when we got to senior year they let us use SCO UNIX via dumb terminals. That sucked. Thankfully, it was not long before a magazine shipped a copy of Slackware and I got a 486 to run it. Back then, you had to configure X by hand. But once things were configured, it was steady and fast. There were so many programs. Jurassic Park also got me interested in graphics and I learned a lot from magazines. :) On one CD, they shipped a mirror of portions of sunsite with a ton of graphics programs (source code). But many didn't compile on Linux and it required patching C code..

I have to live in India on account of my family being settled here. But I can work on anything, have telecommute experience, and you can talk to references about work quality.

What would you like me to do for you?

What's discussed in the article depends on the capabilities of hardware you are targeting. :) Filling is typically a bottleneck as you are writing to a lot of memory. Square roots can also be rather slow, esp. when there's no hardware implementation of it. Square roots, divisions, multiplications, additions and subtractions, and shifts perform in order of slowest to fastest. Some processors have no floating point hardware. Some processors do shifts, additions and subtractions much faster than multiplications and divisions.

Think of the article as a bunch of ways to draw circles, and you can make up something based on what device you write your code for. :)

Drawing the circle as points using the last function in the article, rather than 2 concentric fills would be faster unless you have some unique hardware for it. :) Disk filling can be implemented in a fragment shader by testing each point against the implicit equation. Such testing is easily parallelized.

You are a clever thinker nevertheless. :)

Nice to hear. Go ahead and do write a program. If you have any issues with it, or have trouble following anything that is written in the article, send me an email and I'll be happy to help you out.