Hacker News new | past | comments | ask | show | jobs | submit | aiur3la's comments login

I did that with 2009 thinkpad and it got much worse. I guess the cheap paste I used was worse than the 6 year old paste lenovo had used :(

What _did_ help was to take out the fan, clean it and then oil it carefully (too much oil or doing so without cleaning it first will only make things worse). You can also buy replacement fans, although original fans are quite expensive.


Thermal paste shouldn't be matter much.


> ... I find the boot time compelling enough (~23sec until login, plus 2sec to open the browser) that I do not need this.

I think something is slowing down your boot, I get faster boot on a 2008 thinkpad running the same OS.

OT: systemd was supposed to improve boot performance but it has actually become much worse. Upstart on a weak chromebook boots in under 2 sec, why shouldn't your current generation thinkpad with a fast SSD match that?


I find it curious that you care about boot-times. I use macbooks and just close and reopen the lid. Waking from this sleep takes less than a second usually.

My average uptime is about 22 days until I reboot for an update or something.

I used Linux for years, and I understood that in 2008 sleep/resume on notebooks didn't properly work, but now we have 2017 - 9 years later!


I don't really care about boot times, but as a tech guy 23 seconds sounds like an error to me and I want to find it and fix it :)

Also, old laptops with dieing batteries (or new ones with always-on sensors such as fingerprint readers) have some leakage during sleep so it may be better to turn them off if you are not going to use them for a few days.

edit: resume/suspend in linux works just fine and has done so for many years (in response to eltoozero)


I have disabled the UEFI Network Stack (updated the article to reflect this) and now the BIOS boot time is down to ~2seconds :) !


Mac is my daily driver for this very reason, I'm a consultant and I need to frequently grab and go.

I've had Linux on mobile for ages and have yet to have reliable sleep/wake behavior on a dozen machines over the years.

Sleep on Linux works reliably if you run it inside a Mac VM though, FWIW! ;)


Important difference: sleep usually works and is fast. What often does not work is hibernation (recover from disc)


...which is crucial since you don't want to lose your data when closing the lid. (Non-tech-term is on purpose here, since users shouldn't need to know about the difference. Also I believe OSX uses a hybrid approach).


You do not loose your data with both methods as power is used for suspend to RAM.

BTW: OSX has not a "pure" suspend to disc anymore and the default method is suspend to RAM when closing the lid


Parent poster stated "What often does not work is hibernation (recover from disc)".

Which means the user loses data.


Parent poster was me and you do not loose data. Instead it just does not go into hibernation in my case :)


According to a comment in the post it fails when the swap partition is encrypted. However why enable swap with 16 GB of RAM? I've been running without swap for almost 3 years and never had any trouble. If I start approaching the limit I'll buy another 16 GB.


The comment also talks about suspend to disc.


Exactly, the comment in your blog is "suspension to disk does not work if your swap partition is encrypted. This is due to how Ubuntu encrypts your home (ecryptfs) but not due to Linux itself."

I was reporting that.


I use whole drive encryption to protect data in the event I leave my old X220 (Fedora) on the bus.

I don't mind boot times in the 20s range (X220/Fedora/cheapo SSD) too much, but I do need to close down/reboot a couple of times a day otherwise no point in encryption.


> but I do need to close down/reboot a couple of times a day otherwise no point in encryption.

Given, I'm not a Linux user, but I don't understand this at all.

On Windows, encrypted is encrypted-- the lock screen is exactly as secure as the login screen. Are you saying that in Linux the lock screen is easily-bypassed? So you have to keep your computer logged-out when you're in a place it might get stolen?


> On Windows, encrypted is encrypted

Wasn't there a recent story about how Windows is storing keys so that it can wake up in the middle of the night and apply updates? I thought that the conclusion was that locked isn't as secure as logged out.


I believe that would be 'encrypt my home drive' on Linux, then you basically log out to protect files. Not sure though.


What I'm not understanding is why logging out or rebooting is required to keep a computer with full disk encryption secure. That's certainly not the case on competing OSes like Windows.


Usually in Linux the system is installed on an encrypted filesystem (cryptsetup, LUKS). Only kernel and so called initrd image (early boot stuff) is outside the encryption. The disk is opened at very early stage in boot when just about the kernel is loaded. Thus, the encryption is open whenever the operating system is running. Everything is of course still transparently encrypted on disk but the "lock" is open. One must shut down the computer to close the filesystem's encryption.


"Then click Install Now, and follow the rest of the instructions until you get to the “Who are you?” page. Make sure to choose a strong password — if someone steals your laptop while it’s suspended, this password is all that comes between the attacker and your data. And make sure that “Require my password to log in” is checked, and that “Log in automatically” is not checked. There is no reason to check “Encrypt my home folder” here, because you’re already encrypting your entire disk."

Above quote is from the section titled 'How to encrypt your disk in Linux' on the page at

https://theintercept.com/2015/04/27/encrypting-laptop-like-m...

I'm just a bit confused about how Windows can remove keys without messing up file handles &c when suspending to RAM.

The level of security I have now is adequate to my purpose but certainly something for others to take into consideration. Thanks for posting.


Would be nice to have a faster one, yes :) ... some recommendations?

Just fyi: I measure boot time from the time I press the power button. The BIOS logo appears a staggering 8sec or something although the BIOS fast boot is enabled. (Maybe the sync with NSA or something ;))


8 seconds for the BIOS sounds ridiculous; that should take less than a second. Check that you've booted and shut down successfully on the prior boot; with those, the boot should take much less time. (On an improper shutdown, the BIOS may do some extra work that takes longer.) Also check that you don't have some option enabled to make it wait around a while for a keyboard key.

For the Linux portion of your boot, try running "systemd-analyze plot > /tmp/boot.svg" and looking at that. (Also note that "kernel" includes any time spent waiting in the initramfs for you to type your disk encryption passphrase.)


Unsurprisingly UEFI didn't change much about vendor firmware shittiness. There's also still firmware around which just takes 5-10 seconds of black screen before doing shit.


I haven't tested any of these myself, but this page contains some great suggestions:

https://askubuntu.com/questions/10290/how-do-i-improve-boot-...

The initial boot delay is VERY annoying. I wish libreboot was supported on my laptop, then I could ditch lenovos ancient BIOS (and the NSA ping) once and for all:

https://libreboot.org/docs/hcl/#supported_laptops_x86intel


Check that PXE boot is disabled.


When I disabled UEFI Network Stack ipv4 and ipv6 it is indeed much faster: just ~2seconds


Oh yeah, with Arch linux and some tweaking I got under 10 seconds on my X240. But I switched to Fedora, which is still under 20 seconds.


I don't think this is a problem with systemd. On Archilinux using it - it's quite simple to get < 5s boot times.


Different people have different needs. This laptop despite its minor flaws was in the end the best option for his particular needs

...or as a HN user said a while back:

    tuananh 42 days ago | parent [-] | on: Why the MacBook Pro Is Limited to 16GB of RAM
    
    all of this largely depends on personal preference.
    
    to me, i value battery so much more.
:)


maybe it's just me.

it seems when people recommends stuff that has many flaws like this, it seems they set the standard pretty low and i find it hard to take the recommendation.


Serious question: why is this on HN front page? Am I missing something?


I feel it's kind of interesting as a minimal Unix program that does something useful without linking to the C library, just with syscalls.

Even for echo, this one is extremely minimalist: first argument only, and a maximum of 255 characters.


I don't understand why it is limited to 255 chars. The kernel copies the string(s) into the programs memory so it would be a kernel bug if the program got a non null-terminated or too long string.

More importantly this program has a bug in that it doesn't check if there is an argument passed to it at all.

Good effort but can improve a lot. I would praise the documentation but it is rather imprecise. All in all i wouldn't put it on the front page of HN yet.


This is great feedback, which I plan to use to improve the echo program. I'm just learning (on my own), and I figured I would just post my progress and I would get some feedback; it worked!

echo is far from finished, and it's safe to say "I don't know what the hell I'm doing", but hey, I gotta start somewhere.


That's the spirit Kelsey! keep it up.


Maybe the 255-char limit is a feature? If this "fast echo" is meant to be used in a script that writes entries to a log where you wouldn't want long text anyway, or something like that... So having a known upper bound for the output size can be useful.


> I don't understand why it is limited to 255 chars. The kernel copies the string(s) into the programs memory so it would be a kernel bug if the program got a non null-terminated or too long string.

But you can also pass arguments to execve(2) which are not null-terminated.


The kernel copies the strings you pass in the array of pointers. (haven't checked though, but it is better then the alternative of not copying and dealing with the mess)


The memory mapping is the same before and after execve(2), so I don't think it needs to be copied. I'll take a look though.


Maybe only a few pages remain as programs don't inherit memory from their parents. It could be done for those strings but consider that mappings are in 4k pages (so the rest of the page would have to be cleared to 0).


Serious answer: Because many developers regard assembly as some sort deep magic only understood by elder gods. This, of course, comes from some vague (and not entirely correct) understanding of "assembly" running beneath everything else, and thus being fundamental, yet not immediately useful to a large category of developers today. Hence it seems important but archaic. Archaic + difficult = elder knowledge.


I've actually had a few coworkers think I'm some sort of elder god when I find the root cause of subtle bugs that would've either required deep knowledge of the C++ standard, or not-as-deep knowledge of Asm. These are bugs that others have spent many hours staring at the source and stepping through in a debugger without any better idea of why they occur, but are solved in minutes by a glance at the Asm. IMHO if you are working with native code at all, it's a very useful skill to have.


Even though it was a bit of a "sufferance", I enjoy having been full circle somehow. Starting with Java OOP in college, then went lisp maniac [1], then ml/FP. Which were all somehow further away from the machine, in a way. But at the same time lisp model seems a fairly thin layer over raw asm. And you realize that primitives of computing: arithmetic, logic, iterations.. are very similar whatever the language or paradigm. I then learned a bit about continuation, non determinism, compilation and now I'm almost free. A language is mostly an encoding. Most of them speak about the same things but in a different clothing.

Not 100% free, I think I need to finish my compiler training and forth bootstraping before I can claim that.

I can't really suggest others to follow the lisp, ml, prolog road though, so I'll just state what I wrote above.

[1] SICP especially, with its gradual pedagogy. From substitution, to environment, to register machines. You can see the relationships up close.


Everyone who works with native code, not just C or C++, should at least understand how linkers and loaders work.


Once you are tired being praised, teach them some valgrind. It will solve most of their problems.


I'm pretty sure the bugs I found would not have been valgrind-able as they were unrelated to memory errors.


From my experience most of the hard to trace errors come from uninitialized variables and they are usually valgrindable. It is VM-based so it can cache jumps and other conditions that depend one uninitialized vars via taint analysis.


Cool ! perfect explanation.


Yes. From experience, many developers, namely newly-graduated college students from not-so-rigorous programs, have little idea of Assembly. The same applies with theoretical computer science (Turing Machines, FSMs, PDAs etc.), algorithmic analysis and fundamentals of computing hardware (flip-flops, half/full adders, basic CPU design).


I think this is a pretty interesting piece of code. Something trivial via non-trivial (something that we don't do everyday) set of calls.


I agree, nothing special. For comparison, "colpinsky" draws color changing Sierpinski Triangle in only 16 bytes, less than this echo :D

https://www.youtube.com/watch?v=Qw5WLk9IeX0

https://www.pouet.net/prod.php?which=62079


I am sure it is a great laptop, but it also looks like a X1 with larger bezels. Why would you want that instead of X1?


The X1 does not offer docking stations nor does it offer the port range that a T460s offers (full ethernet, card reader, etc). The T460s is a few mm thicker than the X1 and about 200g heavier, but it shares a lot of hardware with and can use the same dock as the X260, T460 and T460p which is interesting if you're a business customer that wants to support a range of options from ultra-portable to powerful.

If you're a single freelance person or consumer, the X1 may be the more appealing choice.


The X1 does offer the OneLink+ docking station and soon will offer a TB3 docking station.


The X1 has soldered on memory. And non-user-serviceable batteries and hard drives. (My 1st gen X1 carbon used a very non-standard hard drive.)

The T460 has hot-swapable batteries, real memory slots, and standard SATA disks. (but I wish is was a NVMe disk)

I picked a 460 over a 460s because it seems a lot more servicable in the future and I can easily replace worn out batteries.


The X1 has strange RAM config options and was way more expensive I think.


I think the title should be "Designing as a web Developer".

There isn't really much in that post for you of you are not HTML guy.


Link to source without the malware packaging (?):

https://github.com/HTTPSChecker/


OT: Krita and others are doing great things for content creators who want to use FOSS.

BUT most of their work is lost to us due to the way distros handle external software. If you install Krita, gimp, darktable in debian you will get really ancient versions (unless you use a PPA from a mostly unknown source, but even then you can get quite old versions).


While Pino is busy packaging Krita 3.1.1 for Debian, you can easily run the latest Krita by getting the official appimages that I prepare myself. (Being the Krita maintainer and project lead.)


Thank you, I was hoping to get an answer like this!

I also noticed that 3.1.1 is available on ubuntu snap. At this point I am not sure if I should go with snap or appimage. Either way, it is great to get packages directly from the developers!


Thanks for Krita!

Chrome has its own deb repository -- maybe more active projects need this too. (Maybe there's a service to be had hosting and configuring repos?)

I'm on Xubuntu 16.4 and I have 2.9.7 installed. I missed the entire year of developments. 16.10 has 2.9.11 released Feb 4th. 17.4 has 3.1.1 but won't be released for ~4 months. Maybe we should blame Ubuntu for 6 month release cycles, or me for not upgrading, but regardless of the cause, Krita users don't have the new version.


> we should blame Ubuntu for 6 month release cycles

16.04 and onward can now have apps decoupled from the OS release for apps that provide snaps, like Krita does. `snap install krita` will get you 3.1.1.


Thanks! I noticed the /snap directory, but didn't know snap was installed and usable.

Worked on 16.10 and I'll use this on 16.4 too.


Isn't that more dependent on your distro than anything else? On openSUSE Leap 42.2, my default is 3.0.1.1, and I could add the less-tested but realistically fine KDE:Extra repository for the latest version. Fedora seems to be shipping 3.1.1 as well. Arch and openSUSE Tumbleweed are also on 3.1.1.


> BUT most of their work is lost to us due to the way distros handle external software.

Distributions put a lot of work into making sure that software they package is managed and handled in a way that their users like. Your example, Debian, is a distribution that favours stability above all else -- so is it a surprise that features are not merged into packages that often? There are many distributions (openSUSE Tumbleweed, Antegros, Arch Linux) that are far more rolling release and have newer packages.

If you want new software, use a distribution that gives you what you want. Don't blame the distribution for providing what the majority of its users (and community) want.


Hopefully Snap and FlatPak would change that :)


It seems it is already available for appimage and snap:

    $ snap find krita
    Name   Version  Developer  Notes  Summary
    krita  3.1.1    krita      -      Krita: the free digital painting studio

For the record, the latest apt version on ubuntu is 2.9.7


What do they do?


As far as I can tell, they are "fat" distribution packages which are independent (within reason, I guess) of the Linux distro. The aim seems to be to get rid of dependency hell and dependency on exact Linux distro versions, at the cost of larger packages. They also sandbox the app. I'm not sure I understand the disadvantages, besides the larger package size due to redundant libraries.


Hmm, so something like an LXC container? That's interesting, I'll look into it. Thank you!


Serious question: this is the third time a exploit of this kind is publicly revealed for this app. How comes we don't see a global hack outbreak?

I mean, script kiddies would love to break millions of phones. What has stopped them from doing that so far?


The motivation is pretty weak. If people found a way to make money by doing this, it would be massively exploited. But the reward for breaking a bunch of phones is... self satisfaction? ok.


I don't know that people were seriously making money on most of the script kiddie shit that was going on on the internet back before ransomware and bitcoin and such (other than AV vendors), and yet it was rampant anyway. I imagine there are still people out there who do this sort of thing "for the lulz".


I'm not so sure. Nowadays they can focus their energies on profitable activities like ransomware or adware. If you're going to break the law to cause grief anyway, why not make some money while you're at it?


Because extortion is a separate crime.


It's really just a temporary and pretty easily reverted DoS, so it's more of an annoyance than anything of a serious security exploit.


Sending texts isn't free. Not many people are going to be willing to pay 5 cents a pop just to piss people off on a large scale.


Sending iMessage is 'free'


You can quite easily purchase unlimited outbound SMS from just about any local carrier in any part of the world for less than $20, either one time or monthly.

It would be very easy to mass message this to an entire country in a matter of weeks.


Even the best script kiddie would get bloody fingers trying to type in every possible phone number or iCloud address

There's no API. No real way to automate.


Messages on the mac can be automated with applescript.

    tell application "Messages"
      send "This is an iMessage" to buddy "foo@bar.com" of (service 1 whose service type is iMessage)
      send "This is an SMS" to buddy "+1234567890" of service "SMS"
    end tell


A robotic auto-dialer could fix that. Perhaps an app on a jailbroken phone could inject numbers into the input field?


It'd be easier to automate the Messages app on an OS X device.

Another concern would be that Apple is likely to deactivate an ID used to send this kind of malicious spam at any sort of scale.


> Another concern would be that Apple is likely to deactivate an ID used to send this kind of malicious spam at any sort of scale.

Apple IDs can be easily remade. ProductIDs can be faked on a Hackintosh.


The part you missed was: "at any sort of scale."

I'm pretty sure you would encounter ever-increasing levels of countermeasures as you tried more and more tricks at scale.


But users will just update to the latest version if a few days, and then the juvenile fun will be over.


There are a number of ways to automate text messages. That's how a lot of commercial text notifications work.


This project looks very interesting!

And it seems they have addressed many of the issues with Chisel (of RISC-V fame) in Spindal: http://spinalhdl.github.io/SpinalDoc/chisel/


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: