Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

Comment Re: Short of memory? (Score 1) 165

Is there any easy way to tell where one grapheme cluster ends, and another begins? With UTF-8, it's easy to count the bits to see where one codepoint begins and ends, I hope there is something equally simple for grapheme clusters. Or perhaps it's all complicated and is different for each language?

As I understand it it comes down to table lookups. The details of full unicode support are unfortunately not trivial and theres a reason libraries like ICU are as big as they are.

Also, if I do accidentally split a grapheme cluster in two (while respecting codepoint boundaries), what will happen? If I attempt to display the two strings, can I expect a sensible result, or will the result be garbage?

As I understand it normally the base character is first and then things added to it follow.

So if you cut the end off a string and cut in the middle of a cluster then the last character may be missing some bits but the string is likely to be otherwise OK.

If you cut the start off a string and cut in the middle of a cluster things get messier. You then have combining characters at the start of the string with nothing to combine with. If you just ask a display library to display it then it's going to be down to the display library what happens but I expect the combiners will either be not displayed at all or displayed with no base. If you add the cut string to the end of another string then the combiners will combine with whatever was at the end of the string you combined it with.

All in all you will probablly end up with something "ugly but usable".

Comment Re:It doesn't have to get it right (Score 1) 489

I find this quit interesting as Win7 has officially gone EOL [slashdot.org].

No it's moved from mainstream support to extended support. Still nearly 5 years left before EOL.

You don't get any free support incidents with OEM copies anyway and most crippling bugs will have been fixed or worked around by now. So for most users the transition from mainstream support to extended support isn't really a massive deal.

Comment Re:Curiously familiar (Score 1) 248

My understanding was that the long term plan was to return most first stages directly to a landing site on land. When they don't have enough fuel to do that they would land it on the barge then partially refuel the stage and fly it back to base. Of course this relies on them managing to convince the powers that be that it's safe to land falcon 9 first stages on land.

Comment Re:Wait a minute (Score 1) 248

I would imagine that anything that goes to mars will either have separate ascent and descent stages or some kind of CO2+energy->fuel conversion setup on the mars surface.

AIUI the "red dragon" sample return proposal from spacex had an unmanned dragon capsule landing and then a much smaller ascent craft to take the sample to mars orbit (where presumablly it would dock with a craft for return to earth).

Comment Re:Shoddy journalism (Score 2) 130

Microsoft isn't sharing the pain because they didn't drop their per unit monpoly winnings... for now.

MS recently introduced something called "Windows 8.1 with Bing". Basically they are giving away windows free for low end laptops and tablets on the condition that the PC vendor doesn't change the default search engine.

Comment Re:Any experienced teacher already deals with this (Score 5, Informative) 388

Until very recently computer education in the UK was heavilly focussed on "ICT" which to a large extent ammounted to "pushing buttons in MS office". There was an attidude that permated the computing world (both inside and outside schools) that "you don't need to understand how it works" or "it's too complex for you to understand". Microcomputers that started up at a basic prompt where replaced with PCs were the ability to program was hidden if it was there at all. Systems that curious kids could fiddle with were replaced by systems locked down by network admins.

The result of this attidude persisting for a long time (a couple of decades afaict) was a decline in the number and skill of people applying to university for computing related programs. This decline got the attention of people in high places and there is currently a push to move away from "ICT" to a computing syllabus that actually includes programming and learning about the fundamentals of computers.

https://www.gov.uk/government/...

Hence teachers pushed into teaching an area in which they have little knowlege and confidence. Combine that with the availability of material on the internet and through various other outside-school sources and it's not going to be difficult for the top pupils to legitimately overtake the teachers and the mediocre pupils to give the impression that they know more than the teacher.

Comment Re:Nostalgic for Windows 7? (Score 1) 640

MS has one of the better support lifecycle policies in the desktop OS market. Mainstream support lasts 5 years from release or 2 from the release of the successor whichever is longer. Then extended support lasts another 5 years or 2 from the release of the second successor, again whichever is longer.

The problems are that they sometimes turn out turds, often vendors of other software can sometimes be very slow on getting it to work properly with the new OS and often people are too cheap to upgrade their other software even when a compatible version is release. The overall impact of this is that people kept commisioning new windows XP machines right through the time when windows vista was the current version and into the time when windows 7 was the current version until they were pushed to windows 7 by a combination of security worries from the end of extended support and hardware vendors dropping driver support.

I would expect the same to happen with windows 7. Lots of people/companies will stick with windows 7 until windows 10 has been released and got through it's teething problems, then they will have an upgrade panic while windows 7 is in the last couple of years of extended support.

Comment Re: Short of memory? (Score 3, Insightful) 165

What does "character" mean?

Something represented by one unicode codepoint? (making your statement a tautology)
Grapheme cluster? (what most users would consider a character)
A position in the character grid of a console?

Which brings us to the real question. to what extent do you want to support unicode? do you care about

* Grapheme clusters that take multiple code points to represent? (letters with multiple diacritics, unusual letter/diacritic combinations etc)
* Right to left languages? (hebrew, arabic etc)
* Languages where chracters merge together such that computer output looks more like handwriting than type? (see above)
* Languages where "fixed" width fonts use two different widths giving "single width" and "double width" characters? (chineese, japanese, korean)
* Characters outside of the basic multilingual plane? (rare Chinese characters, dead languages, made up languages, rare mathematical symbols)

Once you have worked though that design decision it will help you make others. What you find is that "length in unicode code points" and "unicode code point n" really aren't much more useful than "length in utf-k code units" and "utf-k code point n". Either is fine for sanity checking string length or iterating through a string looking for delimiter. Neither is much use for anything more than unless you are doing a very limited implementation.

UTF-32 seems enticing initially but turns out to be fairly pointless, by the time you get to caring about non-BMP characters you are probably also going to be caring about combining characters etc and it will massively increase the size of the vast majority of text.

UTF-8 vs UTF-16 is something of a tossup. UTF-16 lets you get away with treating each unit of the string as one "character" much longer which may be considered either a blessing (because you don't care about the cases where it doesn't work) or a curse (because you realise your assumptions were wrong much later after basing much more code on them). UTF-8 is smaller for text with lots of latin chracters, UTF-16 is smaller for text with lots of CJK characters. UTF-8 is the usual choice on *nix systems and internet protocols. UTF-16 is the encoding chosen by windows and Java.

Comment Re:Shrug (Score 4, Interesting) 161

ways in which IPv6 sucks or sucked.

1: mechanisms for interoperability were bolted on later, not included as core features that every client and router should support and enable by default. The result is that relays for the transition mechanisms are in seriously short supply on the internet and often cause traffic to be routed significantly out of it's way.
2: the designers were massively anti-nat, as a result we don't have any interoperability mechanisms that go with the flow of NAT, instead we have two incompatible interoperability mechanisms one of which doesn't work with NAT at all and the other of which makes itself unnessaceraly fragile by fighting the NAT rather than going with it. The company behind the latter mechanism also disabled it by default for machines on "managed networks"*, presumablly because they were afraid of annoying corporate network admins.
3: there was lots of dicking around with trying to solve other problems at the same time rather than focusing on the core problem of address shortage. For example for a long time it was not possible to get IPv6 PI space because of pressure from people who wanted to reduce routing table size. Stateless autoconfiguation and the elimination of NAT seemed like good things at the time but they raised privacy issues and added considerable complexity to home/small buisness deployments.
4: there was little incentive to support it and so the time when you can use an IPv6 only system as a general internet client or server without resorting to transition mechanisms seems as far off as ever.

* Defined as any network with something windows thinks is a domain controller.

Comment Re:If you don't want to upgrade your box (Score 1) 100

BS.

Ramdrives have several advantages.

1: they are explicitly volatile, application developers don't know your usecase and therefore often err on the side of preserving your data over power failures and so use calls like fsync. Even when the app doesn't use fsync the OS will usually try and push the data out to disk reasonablly quickly. If you know you don't care about preserving the data across power cycles and you know you have sufficient ram then a ramdrive can be a much better option.
2: operating systems don't have precognition of what data you will need, when and on what timescales, they can only make educated guesses based on the accesses that have happened recently. If you know you will be accessing a particular set of data a lot and you want those accesses to be low latency then manually bringing it into memory in advance can be a better option than letting the OS fetch each peice as it needs it.

Comment Re:Well it also depends on chipset (Score 1) 100

Hence you can have a situation where for things like PCIe and USB the high end stuff is behind.

USB? yes, SATA? yes, PCIe? no.

None of intels chipsets has PCIe 3.0 on the chipset, not even X99. The only PCIe 3.0 lines on intel systems so-far have been those from the processor and the lanes on the processor have been PCIe 3.0 since "sandy bridge e" on the high end and and ivy bridge on the mainstream. So high end got PCIe 3.0 before mainstream did. Furthermore the high end platforms have a lot more PCIe lanes. One lane of 3.0 is equivilent to 2 lanes of 2.0 or 4 lanes of 1.0 so in terms of total PCIe data rate even the venerable X58/ICH10/LGA1366 setup (which offers 36 pcie 2.0 lanes and 6xPCIe 1.0 lanes which adds up to the equivilent of 78 PCIe 1.0 lanes ) is comparable to current upper-mainstream Z97/LGA1150 (which offer 16 PCIe 3.0 lanes and 8 PCIe 2.0 lanes which adds up to the equivilnet of 80 PCIe 1.0 lanes).

If we look back to the transition from PCIe 1.1 to 2.0 then again it seems the high end X38 chipset was the first desktop chipset (not sure about server ones) to feature PCIe 2.0 (note: at that time you could mix and match a high end chipset with a low end CPU or vice-versa) and it had 32 lanes of it which is more than any mainstream chipset ever had.

Slashdot Top Deals

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...