Hacker Newsnew | past | comments | ask | show | jobs | submit | ratstew's commentslogin

,


I got a chuckle out of the binary diff. :)

http://i.imgur.com/OmFHELl.png


Why?

[Edit] Just saw it. This is why I shouldn't read HN on my phone.


i don't get it


If you look at the textual representation of the hex sequences, you can find the string "SHA-1 is dead!!!!!".


Try looking for the actual font name with "fc-list | grep -i source", maybe it is not what you're expecting.

A few months ago I was having trouble with getting some TTF BIOS fonts recognized by urxvt and fc-list made me realize that I should've escaped a couple dashes in the font name.


Since you're interested in the implementation of synchronous languages you could also take a look at Quartz [1]. Their book is a fantastic resource about the topic.

[1] http://www.averest.org


What are the advantages of Céu over other synchronous programming languages such as Esterel and Lustre?


In comparison to Esterel:

1. Dynamic abstractions with lexical scope (vs. mostly static language). You can dynamically spawn code into a lexically-scoped pool.

2. Internal/fine-grained determinism (vs. external determinism). All statements execute in a deterministic order. E.g., if you have two printf's in parallel awaking from the same event, they will execute in lexical order.

3. Safe integration with C. When calling a C function that returns a pointer (e.g., "malloc"), Céu forces you to write a finalization clause (in which you can call "free"). If this code is somehow aborted, the "free" is called automatically.

4. Timers as first-class events (e.g., "await 1s"). Besides the convenience, Céu adjusts timers in sequence, e.g., if a first timer awakes a little bit late (due to system overhead), the timer in sequence will compensate.

5. Internal events are stack-based (vs. queue based). This allows co-routine-like functionality, resumable exceptions, and some other mechanisms.

6. Event-based logical notion of time (vs. tick based). A single event can occur at a logical time (related to #2).

[EDIT] Didn't mention that these are "advantages" depending on the context. Esterel targets hardware synthesis and also hard real-time systems. Dynamic abstractions might be irrelevant, fine-grained/sequential determinism in hardware might be inefficient, a tick is closer to a hardware clock, etc...

In comparison to Lustre:

Very different programming mindset. IIRC, in Lustre you define equations and the system is responsible for keeping them up-to-date/correct. It is a data-flow language (vs control-flow), closer to FRP than Céu/Esterel.


The C integration aspect sounds really neat, especially for writing concurrent code on the Arduino!

Thanks for the detailed explanation.


Yes, we can take advantage of all existing libraries in C/C++ for free.


Céu looks really similar to Esterel. The thesis (http://www.ceu-lang.org/chico/ceu_phd.pdf) has a section titled "III.7 Differences to Esterel". (edit: removed explanations, the other comment is more detailed).


Thanks, forgot to mention in the other comment that Céu is actually based on Esterel.


I just want to point out that embedding structs does not look like an afterthought at all, the Plan 9 C compilers had a feature akin to it for ages.

http://plan9.bell-labs.com/sys/doc/comp.html


newsbeuter.


Chrome will start nagging you on almost every page load as soon as the next security update goes live, I doubt you will stand it for too long. Nonetheless, I also loved that feature and see little reason to stay with Chrome on Android now.


No other browser has this feature, so I don't see a point of switching elsewhere anyway, unless out of spite to your loss.


Indeed, but some browsers have the tab switch button at the bottom, which I find much more ergonomic. Another reason for me is that Chrome bookmarks page sucks, so I got used to adding them to a folder on my home screen instead. It worked surprisingly well with the Merge Apps and Tabs feature, but with that gone Chrome just stuffs newly opened links in a new tab instead of opening a new window.


If you want some website to be in their own window, visit them in Chrome and go to 3 dot menu and Add to home screen. Basically similar as on desktop, with the taskbar/desktop icon.


That's precisely what I tried to describe in my previous post, but contrary to what you say, Chrome now adds it as a new tab.


Hm, that's odd, I've added Strava to homescreen since the Android app runs a constant GoogleNowAuth service and wasting resources. It runs in it's own window. Although I use the Chrome Beta 52, maybe there's some differences.


I guess folks with click-to-play enabled are seeing something like this: http://i.imgur.com/WLaqlXo.png

This was on Firefox by the way.


This was his more recent account on HN: http://news.ycombinator.com/user?id=luriel


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

Search: