think tank forum

technology » Rants on technology

lucas's avatar
9 years ago
link
lucas
i ❤ demo
I feel like I'm constantly fighting battles against crappy technology:

1. My Samsung Galaxy S4 is unusable when I receive text messages. It demonstrates a UI lag of 5-10 seconds. See video.

2. I live on campus, but my Internet connection in my apartment is unusable. They queue at 8/1 Mbps, and I don't think that they prioritize DNS or ACK packets. When I fill up that 1 Mbps upstream bandwidth with a Youtube upload, I get DNS timeouts every time I try to load a website. Anytime I watch Netflix, with nothing else using the connection, I have to refresh constantly. See video.

3. TTF was offline because I tried upgrading Ubuntu on my Rackspace VPS, and the upgrade failed half-way through. As a result, it had a variety of quirks which made data migration troublesome. I had been wanting to migrate to AWS EC2 anyway, so I tried setting up a new EC2 instance to serve as my production web server. Well, I struggled to get multiple IPs working on the same VPS. The AWS EC2 console was a problem, hidden AWS EC2 IP/if limits were a problem, Linux IP routing with multiple IPs was a problem. Finally I got it all resolved with a nice install of Debian Wheezy. One network interface, a second IP on an if alias. I needed two IPs to run two SSL/HTTPS websites.

And some are my fault:

3. I had two SSDs in my Lenovo Thinkpad x220, an Intel 311 20GB SLC mSATA SSD and a Sandisk Extreme 240GB MLC SATA SSD. I was planning on replacing the Intel SSD with a Crucial M550 256GB MLC mSATA SSD. I bought the Crucial SSD, but it sat around because I was too busy/lazy/ill to install it and migrate everything. As that Crucial SSD sat around, the Intel SSD failed. Sadly, it had my Windows install and my user profiles, and I didn't have a back-up of my EFS keys. So I also lost all the data stored on the Sandisk SSD! I tried every tool I could find to recover the keys from the Intel SSD, but none could read the sectors. So I installed the Crucial SSD, added a Samsung 850 Pro 256GB SATA SSD, and started over from scratch.

The most reliable technology I have is probably my file server (atlas) running FreeBSD on RAID-1 with two enterprise HDDs. I bought an NEC PA272W which is very nice. I thought about using atlas as a desktop with the monitor, but the motherboard doesn't support such a high resolution. Sigh.
andre's avatar
9 years ago
link
andre
1. Have you considered CyanogenMod? I was about to replace my S3, but CM gave it some new life. Still far from perfect, but much better than Samsung's slow crap.

3. Do you guys have any experience with Digital Ocean vs. Amazon EC2?
lucas's avatar
9 years ago
r2, link
lucas
i ❤ demo
I don't know how to root my phone. (Samsung SCH-I545, Android 4.4.2, VRUFNK1)

I've never used Digital Ocean.
DaGr8Gatzby's avatar
9 years ago
link
DaGr8Gatzby
Drunk by Myself
I did Android for a while. I thought I was the bee's knees rooting/imaging/romming. Then I woke up one day and picked up my old iPhone and it was vastly superior. I then bought 2 iPhones. CyanogenMod is the best of a bad situation.

Never used any cloud infra. I have no need for it. I have FIOS now so I run everything locally.
lucas's avatar
9 years ago
link
lucas
i ❤ demo
hey guys, my freebsd box is struggling to write to disk. i'm seriously sitting here waiting for vim to write a new rc.conf. it's happening on both my SSD (/) and my two HDDs in RAID-1 (/home). i don't understand it at all. D:
andre's avatar
9 years ago
link
andre
Lucas, you could try the installer: http://beta.download.cyanogenmod.org/install

It's an automatic process then (that's how I installed it in my phone). OS updates are not very frequent though.
lucas's avatar
9 years ago
link
lucas
i ❤ demo
i'm not on a build that has been broken, i think. ref
lucas's avatar
9 years ago
link
lucas
i ❤ demo
chrome auto-complete: the worst thing ever
lucas's avatar
9 years ago
link
lucas
i ❤ demo
finally freebsd is telling me that one of the disks on atlas is dead:

$ sudo smartctl -a /dev/ada2
smartctl 6.3 2014-07-26 r3976 [FreeBSD 10.0-RELEASE-p1 amd64] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org 

=== START OF INFORMATION SECTION ===
Model Family:     Hitachi Ultrastar 7K3000
Device Model:     Hitachi HUA723030ALA640
Serial Number:    MK0331YHGB86PA
LU WWN Device Id: 5 000cca 225c51eec
Firmware Version: MKAOA580
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Mon Apr 20 17:32:41 2015 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (  38) The self-test routine was interrupted
                                        by the host with a hard or soft reset.
Total time to complete Offline
data collection:                (28081) seconds.
Offline data collection
capabilities:                    (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 468) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   136   136   054    Pre-fail  Offline      -       82
  3 Spin_Up_Time            0x0007   139   139   024    Pre-fail  Always       -       497 (Average 617)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       57
  5 Reallocated_Sector_Ct   0x0033   001   001   005    Pre-fail  Always   FAILING_NOW 1983
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   133   133   020    Pre-fail  Offline      -       27
  9 Power_On_Hours          0x0012   096   096   000    Old_age   Always       -       29742
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       57
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       207
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       207
194 Temperature_Celsius     0x0002   153   153   000    Old_age   Always       -       39 (Min/Max 19/47)
196 Reallocated_Event_Count 0x0032   001   001   000    Old_age   Always       -       5721
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       26
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Interrupted (host reset)      60%     29488         -
# 2  Short offline       Completed without error       00%     29461         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

$
Carpetsmoker's avatar
7 years ago
link
Carpetsmoker
Martin
Docker is a piece of shit.
DaGr8Gatzby's avatar
3 years ago
link
DaGr8Gatzby
Drunk by Myself
Jesus Christ 3 years later and docker is STILL a POS.

Jessie Frazzle be pissing me off with her containerization.
phi_'s avatar
3 years ago
link
phi_
... and let the Earth be silent after ye.
Docker: for when you want to "self-host" without putting in the effort.
lucas's avatar
3 years ago
link
lucas
i ❤ demo
care to rant about why docker sucks?
phi_'s avatar
3 years ago
link
phi_
... and let the Earth be silent after ye.
My rant below, though I don't have to use Docker daily so my rant is more about what I see in the communities I'm involved in where it's become the way du jour to do everything.

It's another bullshit venture-backed company. They repurpose existing ideas (eg, FreeBSD jails or Solaris zones) and wrap them in proprietary nonsense. And they split features depending on how much you pay them. And the higher tier stuff is locked up in a private license. And while they made a novel way of launching applications ... it only makes configuring them and maintaining them more difficult. I'm all for making things simpler for users, and I'm not trying to gate-keep people out of *nix by keeping the learning curve high, but this just seems to be a way for a company to introduce a need, finance the online word-of-mouth, and then extract profit-- all before people move on to the next big tech thing. Plus I fail to see how using containers is easier on hardware resources than running bare-metal.



Admittedly, I don't use it hardly. The few times I've dipped my toes into it I just found myself groaning and opting to run on bare-metal instead of some nonsense "container."
Carpetsmoker's avatar
3 years ago
link
Carpetsmoker
Martin
> care to rant about why docker sucks?

It's massively overcomplicated for what it does. At its core Docker is little more than: chroot, setting up limits with cgroups, some mounts, and network forwarding. That's it really: just using Linux features to set up a "container".

It's actually a lot less complicated than it might seem once you start looking in to things. I prototyped a CI system (without Docker) in about 500 lines of code. It works quite well. Runc does more or less everything Docker does in ~10k lines of code, instead of hundreds of thousands of lines.

At my last job they switched the local dev environment to Docker at some point; I had so many weird problems in all their abstractions layers. We also had a server where the host machine's disk became full at some point, resulting in some of the log files (stored as binary JSON) becoming corrupted. I tried very hard to restore it but eventually gave up and just set up a new server and power that one down. It's not very robust.

Containers have some value, but you don't need Docker for that. The biggest innovation that Docker brought is "docker push" and "docker pull" and some other UI niceties, but if you know even a little about how it works then you quickly realize that Docker is massively overcomplicated.

> They repurpose existing ideas (eg, FreeBSD jails or Solaris zones)

Docker doesn't really "containerize" anything; they just use existing Linux kernel features for that. It's just a UI for it, similar to some of the scripts that exist to set up FreeBSD jails.
phi_'s avatar
3 years ago
link
phi_
... and let the Earth be silent after ye.
> Docker doesn't really "containerize" anything; they just use existing Linux kernel features for that. It's just a UI for it, similar to some of the scripts that exist to set up FreeBSD jails.

Yeah, I know. They were just references of older tech that do the same things I hear people praise Docker for is all.

> resulting in some of the log files (stored as binary JSON)

wat.
Carpetsmoker's avatar
3 years ago
r1, link
Carpetsmoker
Martin
I don't think the older tech did *exactly* the same thing though; setting up FreeBSD jails was (is? I haven't used it in a long time) a pain: you had to manually extract a base image, do the entire mount thing, set up stuff in /etc/rc.conf, etc. I think the Docker concepts of having an image and containers based on that image is definitely an improvement. Setting up a FreeBSD jail was >1 hour of work. Setting up a Docker container is "docker pull" and 10 seconds of work.

I think it's a great example on how you can have the best technical innovations in the world, but if the UX is a pain then few people will actually use it.

It's just a shame everything else in Docker is so meh.

> > resulting in some of the log files (stored as binary JSON)
>
> wat.

Yeah, it keeps these binary log files and once they go corrupt it's really hard to recover. I've had some other cases where they didn't work right either; at some point one of my coworker had this file that was just all NULL bytes and Docker refused to start as it was corrupt. So you remove the file and it refuses to start as it's missing. So then what do you do? Blowing away /var/lib/docker was the only solution I could come up with after trying many different things. Maybe there was another solution, but it was very non-obvious if there is one.

I've had to blow away /var/lib/docker more than once to "recover" a broken Docker install. This entire dockerd was a bad idea; when it works it works, but when it goes wrong it's almost impossible to divine what's going on or to recover things (and sooner or later things always go wrong).

If you want to run containers on Linux then my recommendation is to just fetch them from DockerHub manually (or build your own, they're just tar files) and use runc. It works much better.

Aside: I really like Go, but a lot of these "cloud tools" written in Go that made it famous are some of the worst examples of Go code.
phi_'s avatar
3 years ago
link
phi_
... and let the Earth be silent after ye.
Jails and chroots and what not have come a long way. They are more complex to configure, but I wouldn't say it's commensurately more difficult. I get Docker's appeal, but it just rubs me the wrong way. I'm also not a sys-admin, so I'm not going out of my way to learn to love/deal with it, lol.
Carpetsmoker's avatar
3 years ago
link
Carpetsmoker
Martin
I pretty much completely stopped using FreeBSD around 2014, and the last time I used jails was a few years before that: so my knowledge is about ten years out of date.